We'll ask the session of congratulations. Hopefully we'll end this on a high note. So my name is John Ferris, and this is Garrett Dawson. We're front-end developers. I've been doing design web development for quite a while. I've been working with Pixel Pattons based in Denver, Colorado. I also have an office in Rochester, New York. Yeah, like Garrett said, we're doing work with all across the world. A lot of journalism, education, sites, and health organizations. What we're going to talk to you today about is custom tailored themes. Not necessarily a custom theme for a specific project, though my favorite project has one of those, but more about the tools that you use to start a project with. So in Drupal, there's Drupal sites coming in all different shapes and sizes, as do the teams that build those sites. So your team might be, I don't know, a dozen people. You might have the designer, information architect, content strategist, sysadmin, back-end developer, front-end developer. Or you might just be one person sitting in a basement doing the work at 10 people. But to say to this presentation, we'll call you a team. So what we hope to do today is just encourage you to evaluate your team, the site you build, the way you work, and then tailor a custom deeming process to that that will hopefully improve your efficiency as you work. So it's kind of important, I think, to first define our problem domain as front-end developers. So typically, as a front-end developer, things like complex systems like Drupal have a process function in front of a developer in Drupal because it's often the team where we try to insert the most influence. So teamers, we go out and hang out with each other and kind of discuss different approaches to CSS and Java scripts. And something that comes up just will ask you. They'll answer that question quite a few different times. Your answer to that question should be based upon a lot of different factors. A base theme in Drupal's got to make a lot of assumptions about your process and your workflow. So basically, the base theme that you use tailored to your process, like what's your starting point. We think that you probably know yourself better than any other super awesome, this great place for affecting CSS and JavaScript in the most complete way. It's probably like the kind of questions you want to ask yourself. We've listed a few here, but one would be what type of projects you're building. Are you working in the journalism sites? Is it like a learning platform? Do you go to commerce sites or the retail? Does your company focus on just real estate sites? Or are you working on one site and just iterating on that one site over an hour? Reach out to a lot of other front end developers and have some discussions with them about how they choose to create their theme stack or their front end tooling. That's exemplary examples, the exemplary examples that you get. So, talk a little bit about Stanford University. Has anyone heard of Open Framework? We had a chance to talk with, so Stanford University has a team within Stanford IT services called Stanford Web Services. And Stanford Web Services provides services kind of at a discounted rate to different departments, Stanford-related organizations. But as one of their services they have, called Stanford Sites. Stanford Sites is basically, you can kind of think of it I guess as sort of a Drupal garden specific for Stanford. Basically, it gives a free site to any students or faculty or departments that's a Drupal site. So basically, Stanford Web Services is seven staff members but they're managing over 900 sites right now. I'll maintain on the same code base. So that itself presents a lot of challenges, a lot of issues dealing with security, people can spend up a free site but they can't add any custom code to it. So to handle that on the theme end, they built what's called Open Framework. Open Framework is a series, a set of themes in which people can build their sites. So Open Framework itself is a base theme kind of the bottom layer base theme. It's based on Twitter Bootstrap. It basically provides just some of the basic functionality that one would need to work within the Stanford Sites. A lot of layout features, which is kind of the big selling point of that. And on top of that they have another base theme called Stanford Framework. And essentially what that's doing is just adding the Stanford branding on top of Open Framework. On top of that they have additional themes to choose from. I think they have three right now. And those just add some additional kind of customizations to the theme itself or to the Stanford Framework. So it's still branded Stanford. It follows their strict branding guidelines but it's adjusted to get people a little bit of variety. So we're not just like plugging this Open Framework or anything. We're really talking about someone had a really specific need. They know their issues and their problems, their challenges, better than anybody. And rather than rely on a system for their needs, a number of sites successfully with this code base. So another company where we had an opportunity to speak with front-end developer is CalMooner. These guys are doing that. So basically, Anakali is a distribution that's based all around panels. It adds some layouts and a lot of that baked-in functionality that if you were gonna build sites or distributions with panels, it's got a lot of that set up. So CalMooner has kind of chosen that as their, so they built, on top of Anakali, there's actually a hard dependency on it. You can't install a CalMooner CalMooner. And they've catered that specifically to one of the really interesting things that they're doing. So one of their challenges or their focus is that traditionally been a more back-end focus, Chuck. And I believe they're working to add in more design resources into their team. So for back-end developers that wanna focus on the actual functionality, they've also chosen to use Twitter Bootstrap, which turns out to work great for them because they don't need to concern themselves with CSS for the most part. Decided, and this is, I think, something that all of these organizations do all these front-end developers or just droolers do. They decide how they wanna work. They standardize it around it and they really empower themselves to continue. So, yeah, check out CalTeam. I think it's pretty interesting and inspiring how they just, yeah, so, if you're not familiar with Examiner, it's a big-ass Drupal site. It's huge. They have, yeah, they go over 12 million nodes, and they're adding 7,000 to crowd-sourced, crowd-sourced is the right, user-driven news site. So, with a site that size, you can imagine that. And so, when I was there, which was a little over a year ago, we're front-end developers working on a single site. I'm not saying anything wrong, but it's no longer correct in general. So, yeah, they have a very specific workflow and, like, very strict code quality standards and code review process. On the theme side of that, a stack of themes, and the base one is a, Al Steppen, it's called Pure, and Pure is basically, we like to call it a utility theme. Like, it doesn't add any CSS or templates or any kind of overrides. Basically, utility theme is one that just and extends basic Drupal functionality. So, what Pure is doing is it helps facilitate that code organization by automatically include directories in your template.php file. So, you can spread out your template.php file. I don't think anyone does a lot of custom development within that, but you should probably know on a large site, that file is huge. So, what this allows is and to break out their .e files into separate folders. And the way that is organized is, you have basically a module or a custom module that's written for a certain feature, functionality, whatever. Then in the theme, there's a subfolder that's specific to that module that holds all the CSS, all the alter hooks, all the pre-process functions that are specific to that module. And that comes in really handy when you have those big sites and you're on a two week release cycle. You know, say, coded something like an alert for a special event that's going on. Once that alert is done and it sends out that module and disable it, then the femur can go in and just close down that and basically un-include that folder or that CSS gets pulled out. So, it's just a way of keeping up, basically keeping your CSS, your code clean. And if you want to know more about that, I mean, I'll step out of stuff and he's right there. He's done some pretty cool stuff with it and it'll blow your mind. Yeah, so they, again, like this is an instance where this front-end approach had to address really specific needs. They, you know, really tailored their systems so that they could solve it in the most efficient, and that's something that, you know, we thought that it's just, again, like we're trying to, as front-end developers, I assume like a lot of us in this room are front-end developers, we just want to exert as much influence on that code basically to do exactly what was the thing. The example of this is, this company called Coderigma, they have like a really interesting team that has like really strong design sense. We had the opportunity to speak with some guys over there as well, and this is, you know, again, we're like relying on what they told us and hopefully we'll make it. They told us that they have this approach where they like prototyping with HTML and CSS, you know, like so many people do, but a lot of us in Drupal don't do that often because then we're getting tons of effort within Drupal. So what they've chosen to do is use a panel-heavy approach, pretty much do away with the theme lighter altogether, at least in the sense that they're not using templates that really control their markup. They're taking like an additive approach to their, I don't know if this idea of like the depth of the theme. Yeah, so I don't know if you haven't seen this talk, it was given at Drupal Camp London this year, and I believe at the front-end United, but there's a link to the session video on YouTube. It's a very interesting approach. Essentially what they're doing is kind of facilitating traditional front-end developer that can code the HTML and CSS by hand, not necessarily having to worry about the way Drupal does it. And then as we pointed out earlier, the concept of the theme is front-end developer that needs to know all this other junk about Drupal just to make that stuff work. So this approach kind of eliminates that by allowing the front-end developer to focus on the CSS, focus on the HTML, and then they can use a site builder, you know, leveraging tools like panels, and Splace Weeks, panels everywhere, basically to craft that markup that's already been written on that CSS. And through the UI. Yeah, and they've really like a lot of these people, they just empower themselves to mess with that stuff the way that they would, is that that's the kind of thing. So one of the things that we can talk about today, probably the sort of set of systems that we use, internal team that works in a particular way, and we as a front-end team have, we're using SAS that we standardized around SAS, we built a theme that really leverages SAS and sort of gives us a good starting point. So we have sorts of clients that were always, you know, like we mentioned right at the beginning, we have a certain sort of project that we're typically doing, and we created this custom kickoff form, which I think is, why don't you just like roll that into your own sort of thing. So our theme stack works like this. We start out with this utility theme called center, which, yeah, so center is basically, again it does some template overrides, but it's facilitating the use of pre-process functions to add classes to various things. So there's certain things that templates and functions within Drupal Core, where you just can't get at a certain class without overriding things. So this basically, it's a little bit further starting point for us than just using start. We've also built in some various, you know, custom-like field theme functions and custom templates that we can then use theme book suggestions to add those to our projects. So that center, it's basically what it does. It strips out some CSS as well. And then on top of that, we have Carlos, one more, the starter theme, I guess, the prototype. My prototype isn't, I know, we don't wanna worry about having to update prototype once a site's launched. Like it's meant to be, you install it, give you a starting point, and it gets a lot like something like that. You know, we did publish it to d.o. so that you guys, someone else finds it useful, but I mean, really, we're like scratching our own edge. It came out of like self-evaluation. You know, we use display sweep to control our problem sets, and we have to adapt to that problem set. So we know, like, some themes in control, they do take into account like total workloads. I think, I've never really used some mega, but I think that's how mega works. You know, it's meant to be used a lot, but that's not typically the case. So there's like assumptions made, and made it to the wrong assumptions. So we know we use display sweep, we know that we use V-Mode. So that kind of like said ways to, if you're interested in empowering yourself to have more control, and exert more influence over your front end, you really need to evaluate yourself, your team. So get your measurements. You know, and when we say that, that's just like all these companies, all these front end developers, they expect to try to create something that's really easy to work with via the UI. Examiner is trying to create something that everything's like super isolated and like just transportable. Yeah, so basically when we say get your measurements, take a look at your team, you know, what are your strengths? Try to capitalize on those. What do you do like for us? We wanna write JavaScript, CSS, we wanna write CSS the way we want to. So, CERN enables us to, you know, get that power over classes and put classes where we want.  Support is one of our offerings and we end up maintaining the sites more often than not that we launch. And so we have that benefit of, you know, we know SaaS. We don't have to worry about who's maintaining it later if they can get in at its SaaS or install a region. Stanford has, you know, the people maintaining their sites are those site builders. You know, it's a graduate student who doesn't necessarily have or need to have, they've built it so that in case there's a student that does, they can just start with open framework and add CSS via, again, they can't have custom code so they use CSS and Jacker module, which, you know, a lot of us would probably frown on that in a normal situation, but that fills their goals as a team or the goals of your projects or your skill sets. You know, take the time to do that and then just start, you know, mostly start but I know raw stuff is getting, making this agnostic, start building and so that's what we do with prototype because we projects ourselves, so we, every time we kick it off, maybe we want to adjust them. I think that some of us maybe have this sense that if we're great decisions, but that's not always the case, like they're just, you know, they're front-of-developers too, so I think that let's just like dispel that know what we want and we should empower ourselves to do it. So the way we kind of handle those continuous improvement ideas is, you know, as we're working with the project, we're kicking off a site, we're getting in there and start hacking away on it and do much styles out of the box. Let's go back and strip that out. Doing the same thing that I just did on the last project. Let's add that in. So a lot of times we'll just put my cop over to the directory and, you know, do some commits and push that up and that's it. Other times we'll actually, you know, if you're in the middle of a project, you don't have time to switch work spaces so just log in to Google.org, you know, write a quick issue and then that way when we're starting the next project and we're kind of starting at that very base again, we'll take a little bit of time, put out some of those issues, you know, we don't always get to all of them, but just continually on your base and tune it, you know, if your workload's changing a bit, then adjust it to that. And what's to be gained from, you know, spending the time to actually, like, roll this theme? You become more efficient with that theme because you're super comfortable with it. Know where things are getting generated.  Frankenstein, something together. We're just really, we're talking about it like a custom front-end tool kit, so you really like something that you just wanna slam that in and in fact, the thing that's what a lot of people do, they end up sort of like giving yourself, positioning yourself to be as efficient as... Do you guys have responses to build a new center theme? So, part of what we have, a lot of responsiveness is, has a lot to do with layout and purposely not started with too much, too many layout assumptions. As far as SAS goes and we automatically include like where's... Is there a theme that you are getting that basic information from or is this something that you built out over time? Can you repeat that question? Yeah, I mean, is there a theme that you started from and then you kind of moved beyond or are you just kind of using it for these two games to build up the proper responses? I mean, this responsive design is just, you know, the only, so if I remember correctly, the only actual media queries and breakpoints that we have when we're starting prototype and scratch is just basic sidebar first and sidebar last. That positions those off to the side and then that's it because every design is different and that's something that if we assume too much with that and prototype, it's something we're gonna have to strip out and override ends up creating more work. So the idea is just to put those tools in their place so we can just get in and use them over ready. Great, so you've got your nested divs and there's a million classes on stuff and you know, with all this logic, or CSS and stuff like that, and finding we wanna bring in all our classes and so on and so forth. What is the line where you do a lot of processing stuff? How much of do you want me to change or leave a lot of rules like that? How much do we change? Yeah, are you changing this new module? We can't really think. Yeah, that was the point that we didn't really touch upon fully when we were talking about center of prototype, but we know that we use this certain module kit to, and so we can anticipate that with our base and create team function override that we know. I think one that we have just right at the top of our template file is something that would be necessarily a good thing to abstract out, or I guess I wanted to get to expect that from contrib because then there's such assumptions being made about modules, which we do that because we can make that decision. I would say that as far as find something when we deal with what's there, it really comes down to as possible, but there's some things that we do try to get to your disk type totally. It sounds like some of the people we spoke with, that's definitely what they're trying, as strictly, you think it's less presentationally, more just like because it's an awesome system and it offers us so many things, but sometimes we feel like a little... We've tried several different techniques for putting together the front end, and one thing we found, like with Omega, for example, we were using it for a while, but we found just it would include all sorts of extra CSS and JavaScript, and same with other methods, and so what we're doing these days is we're going with a custom theme and we're literally stripping out everything as far as CSS and JavaScript and Drupal, and only including the stuff we want, and we get a huge performance boost, but what my question is, have you guys considered doing that approach, and if so, why not? Have you not implemented that in your solution? That's definitely a dream for us, like as far as the CSS goes, we are stripping out most of core CSS. We leave some of the stuff in there, and we've copied over system.css and converted it to SAS and stripped out the stuff that we don't need, and then we usually use something like 7 as an admin theme, or a lot of that CSS is really needed, and so it'll get included when it needs to. As far as JavaScript goes, that's definitely something we want to do. It's something that Garrett's been working on. We're not there yet as far as including it. That's a little harder to do, because JavaScript has a lot of fun as far as like. I think that also comes down to the resources for someone to manage all those JavaScript dependencies on every side. If you look at that dev of a theme or video there. Thank you. You said you are doing that? Yes, and part of it is basically like we, the only JavaScript we're including is the contextual links, so that like I've got it blocks on the page, and we've basically decided anywhere we're gonna use Ajax is gonna be custom.  Come on, and maybe it's a pipe dream. We haven't totally used it and a lot of our, it's pretty new for us, and so we're still kind of learning, but we've just found that it's been a lot easier. We don't have some weird CSS specifically in there that stuff. We're doing it to fix some of the other CSS that's been included somewhere else. So we're not sure that it was doing something in certain ways, but we found a cleaner solution in that way, but I'm not sure if it's the best for it, but that's kind of what we're at right now, so, cool. Thank you. I'm about to sound really ignorant because I am a public section, I don't know. I started building a triple size from scratch by downloading the Acquia bundle. This is kind of like sets you up with the fundamentals and it seemed really great and awesome and then the people I was working for wanted to use this blog press theme.  So I was wondering about the Upsility theme that you guys were talking about. Did you do that through downloading the Acquia bundle and then just adding modules and customizing it? Yeah, that's all custom. All custom. Yeah, the peer theme is, if you look at Examiner, I was there for three months before I ever saw a triple admin in the face. Everything they do is in code. There's no written by scratch. And that's, again, comes down to what are your resources and who's on your team and got a whole team of developers that can focus and maintain that code. Cool, thank you. I just want to say that I've just been on Zen for many years and then I just started to adopt this theme and then I just said, you know, let's just go ahead and do this. I'm tired of writing tabs and I'm tired of adding pagination and all that kind of stuff. This is really inefficient, but you can clean all the CSS only to overwrite it and then something sneaks through, like, gonna be the graphics on the on-a-word list and all that kind of stuff. So I recently did this and I'm so much happier for it because I know now it's giving me a new level of understanding of the theme. I know exactly where everything is and it's a lot simpler than it sounds. So I definitely copy over and start playing with it. One of the first things I did was un-set a ton of the core CSS files until it's sort of hurting like system.css. I hadn't set that. And to hear you say, oh, well, copy it over, keep what you need, where did this ask? Like, there's, of course, like when you're creating a base theme from scratch, there's definitely a tone. So how this affects the contribute space? I guess that's my question. Some of your, some of the people you talked to who looked like, had posted code Andrew Guleta where it faces. I'm wondering, is it really, like, what is the reason for contributing it back? Yeah, like, is it really practicable for other people? Like, if everyone's creating base themes for their specific needs, it creates, like, an exchange of helpers to be talking to, sharing with each other, not re-useful code, but re-useable ideas. Re-useful code, and, I mean, that's where I can, like, especially popular ones, started because they weren't happy with what was already out there. Create this specific year process. There's probably others out there that have a very similar process and can use it. That's another good reason for, like we talked about pure, you know, came out of a specific need. So, in most cases, somebody has a single base theme and then a custom theme for that project. But you can, like we saw, with Stanford, they actually have specific, as modular as modules. Those have been sandbox projects that we've been told about. So, figured actually, like I said, we've been working on, you know, internally and iterating on it. Sandbox project isn't as successful, but to answer your question, yes, there will be releases. We just haven't set that up yet. If you can, let us know, we'll start a session, if you'd like to do things. It's basically the, you can just go to our session page, there'll be a link.


Live from Stanford University, it's theCUBE, covering the Women in Data Science Conference 2017. Hi, welcome to theCUBE, I'm Lisa Martin, and today we are at Stanford University, the second annual Women in Data Science Conference. This is a phenomenal event. This is our second time here. John Furrier is my co-host, John. Tell us about theCUBE's involvement and your involvement in the Women in Data Science. Lisa, great to see you, I'm excited to be here. We got the live broadcast, certainly it's an exciting event. Women in Data Science, this is the second event. The inaugural event was last year or just almost 13 months ago, Judy Logan and Karen were running this. And it was really about getting women who were super geeks, I call them, who were really doing like programming and hardcore data science work together. And it's now grown into a worldwide phenomenon as we've been seeing in the world these days. The women are uniting and what's exciting is around, it's around something cool like tech, right? So not just you seeing on the political side the movements going on, but the Women in Data Science really is what I call the tech athlete, the inner geeks who are smart and doing great stuff. And this event has grown from baselining here at Stanford University to all around the world. So if folks are gathering 400 at a time and hundreds of thousands of people all around the world are gathering to peer up. And it's been a great event. We've been involved at the beginning of the event with theCUBE and again, it's part of our passion with women in tech and women in data science and the Grace Hopper and all the variety of events. As you know, we do and surfacing new voices is really our core mission. And I think this is the kind of event that shows that these communities are surfacing up new voices to the world, not the same old trot and doubt people who are saying the same things over and over again. There's now this community involvement where real smart people are coming together because they're all connected. So there's a positive element around being connected. So I love it. It's really at an inflection point. You mentioned attendees last year, a little over a year ago was the first annual with about 400 attendees and they livestreamed this. This is being livestreamed to over 75 locations across the country. In fact, this event's been sold out for weeks. One of the things that's really interesting, John, is in the second year, Diane Greene, the SVP of Google Cloud is the morning keynote. You were in her keynote. Talk to us about Diane Greene, Google Cloud and really some of the interesting advice that she has given the audience this morning. Yeah, it's super exciting to be also as reporting on the event, Diane Greene was one of the marquee keynotes. Honestly, she is on the board of directors of Alphabet, which is the Google now mega company. She's been on it for multiple years as a board member, but she's also a Silicon Valley legend. I mean, in my mind, she's up there with some of the big names like Steve Jobs and the Andy Grove kind of names because she's been a geek all of her life and she told her story about when she was on a beach literally in Hawaii doing windsurfing and power sailing and how she's always had an attraction to engineering, had a degree at MIT and then went to Cal for her master's degree in computer science. But she took us through her journey to the founding of VMware and how she had her first child and second child during those 10-year startup run there. And it was exciting, but the key message was that, you know, look at, there's so much opportunity around data science and she said I thought was some very interesting quotes was one was that machine learning is going to take away jobs and that's a fact, there's no debate about it. She said that directly as a matter of fact that was her direct quote and then she said, but society has to figure out how we replace those jobs and provide a path. The other thing that she said was machine learning is the new revolution and with all the hype around artificial intelligence or AI and self-driving cars, it's really the cloud computing paradigm and AI and machine learning at the center of it as the revolution. So cloud was revolution one and revolution two going on now in the tech business that's impacting all these wonderful women in tech and others is machine learning. So in the data science field, machine learning is becoming the kernel of the center of this revolution because there's unlimited potential compute power available, the software being written around data sets are available and the data sets themselves are now available. So Google Cloud's doing things for companies and their customers like Spotify for instance, doing things that used to be in the database world take 14 hours now in 16 seconds. So that was a huge thing. Another thing about Diane Greene's keynote that I thought was fascinating was that she's a data geek at heart and a lot of folks might not know this but she was an angel investor in Cloudera and Cloudera is where theCUBE was founded. That was our first office sharing with them when they had like 17 employees. They became the pioneer for Big Data and Hadoop. She was an early investor there. Her husband as a professor at Stanford, she's in the roots. But Diane Greene really is one of those executives that doesn't get a lot of press because she's not actually looking for it, right? She's just super humble and big fan of hers. And again, I think she's one of the big tech stories that really hasn't been written yet. So we're looking forward to following up with her and telling the Google Cloud story with Diane Greene. Absolutely. She gave some interesting career advice. Can you share a little bit about that? Yeah, so the question always comes up and one question here was, what advice do you give for someone who's in the data science? And she kind of took a step back and she's got these mannerisms that's like, I think she wanted to say something else but I think she kind of paused because it's really, it's a hard answer. What do you start? Because it kind of depends. Data science really comes down to where your passion is, but she said this. She said, if you go deep on something and she used her past as an engineering degree, go deep on something. Because if you can go deep on something and prove that you can do something rigorous, whether it's engineering, a physics or a degree, once you go deep, then you can then look at some horizontal opportunities and you can probably work on any project. So her advice was, try to go deep and be rigorous and disciplined in something that you can become an expert in. But that can translate to other projects. So that was one. The other one was, don't be afraid to take a risk because she was talking about her personal experiences where she's always worried about getting fired. And she said, don't worry about the little things because we're in the data science field. If you get fired, you can get hired right away. So she's kind of giving like a pep talk. I thought that was very good advice. That's fantastic advice because you don't hear that. John and I were talking off camera. It's from the generations that we grew up and obviously very different than the younger generation today, but that was not advice that you and I were probably ever given. It was, you get a job and you do that until you retire. So hearing somebody as successful and a female as Diane Green saying, don't be afraid to get fired is phenomenal advice. But it comes from experience. You talk about, as she did, the demand for data scientists is huge. In fact, it's predicted to be a shortage of talent in the next year. How do you see events like women in data science helping to combat that and really inspire the next generation? You know, I was just talking with Dave Vellante yesterday about this and our team's working on this thing called theCUBE 365, which is trying to take the magic of going and taking the live broadcast that we are now and sharing information to making it a digital product. And this is important because the trend that's going on in this event here that we see as a success formula is that there's an origination of an event like at Stanford or wherever and they create a community aspect to it. And what's going on is that this seems to be the new e-learning environment. So right now you have two ways to learn, right? You have the old way, which is going to school, going to classes, or maybe going to online, some email blast that you get and you kind of respond to it and then the other new way is the old way that's new old is e-learning catalogs.  So the e-learning environments are not necessarily optimized for what we see as the key learning dynamic, which is social interaction. So there's a new dynamic developing and that's where machine learning and AI are seeming to augment that is that it's not about school online, it's about people who are smart together having hallway-like conversations where the acceleration of learning is done with peer groups and peer interactions. So what we're seeing on Twitter and Facebook is some of these new environments where as content gets shared, like we're doing here on theCUBE, that fosters a discovery and a progression to learn, to some proficiency and that's developing as a whole new category of learning. Not, I got a degree online or I went to a class. Maybe the combination of all three, but it's a progression to proficiency. This is a new dynamic. That's one of the things I'm particularly interested in about and talking to some of our guests, whether they're leaders in retail or e-commerce or educators is the data science traditional skills, do you have to be a hacker or you hybrid hacker, math, statistician? But now what's emerging and you just kind of touched on this is the social skill impact. Being good at being able to analyze data sets is great, but you have to be able to communicate that. And apply them. Absolutely. And this is a great, you'd say the word network of very inspiring women and men as well who are helping to really transform those hard skills as this revolution is evolving the social components. If you think about the learning, Lisa this is interesting conversation because you think of the learning is that you think about learning and if you look at what works and there's a couple of different things. When you think about agile software development or being agile, agile is also in part of the learning. So if you look at kids, my kids and that's how some of you learn the most things about tech. They get on YouTube, they learn a video and they apply it. They don't go to school to learn how to do something. So there's a lot of what I call conversion rich content that's either available online like YouTube or somewhere else or here on theCUBE or here at Stanford that's being shared around in the communities that people can start on and then they apply it. So the key about this new community dynamic is when you have group interaction, it's iterating and there's practical ways to take something initially, share with a friend or collaborate quickly and master a skill much faster than the old ways of going to a classroom. We're going through a catalog where I learned it then you look to apply it. Here you're learning and applying in real time. This to me is a new dynamic that no one has yet cracked the code on and I think this is where the machine learning, this AI augmentation can really hit the sweet spot because you can combine social interaction with learning and the application of whatever that is, whether it's from play to something professional is pretty amazing. And bringing up that is a great point. We have several people that are educators that are professors that are going to be on the show today. We'd love to understand what you just said in terms of that real time learning and the ability to get something, learn it quickly and apply it. How that's evolving education of the next generation of computer scientists that are eventually going to be shaping our experiences. Stanford really pioneered the online. They had free online classes going back to years and they had unlimited, they broke all the records of free online classes on computer science. But the thing here that I'm looking at this event, I think it's interesting that we're in the middle of it happening in real time is that it's a movement, right? And this idea that digital women in data science here at Stanford, which you said what, a couple hundred people and they're 400 people and it has offices all around the world where there's more hundreds of people there.  So the question is, what do they do next? How do you take that energy, that network that's been flash mobbed, if you will? And how do you turn that into value for either more learning, career advancement, research, applying it to society? To me, that is the next thing that I think that, you know, Judy Logan and her team will have to figure out and what we're going to try to help with is, how do you harness it? I mean, you put a Facebook group together, LinkedIn group, there's really no answer, right? So the only answer is to figure out, keep them together and keep the content flowing. That's my opinion. And I think that they're there because I think in the second annual and having somebody as powerful as Diane Greene as a keynote is really an indicator. There's tremendous momentum here, there's tremendous passion and the opportunity is limitless. So the next step is to your point, how do we figure out how to harness this in dry value globally? And not be too corporate shilling. Like one thing about these events that's great, it's authentic, real. When you start to get in the big dogs like Diane Greene and it begs the question, where's Amazon Web Services? Where's Microsoft? Satya Nutella? So, you know, you start to ask the question and then does it become a PR thing for them or do they stay authentic? So to me, I think if they stay on the authentic side, it'll work. But again, Diane Greene and what Google's doing is again, center. And Google, Google is like a mini Stanford too. People don't know that. So like having Google folks here really blends well with the Stanford culture and this culture here. So, yeah. What are some of the things that you're excited about looking at your experience here the first year? What are some of the things that you've seen change and what are you expecting to hear or hoping to hear from some of the great speakers that are here today? What I like about this conference is it's not just the women's conference, this is a tech conference. And I think what last year got me really pumped about it was, it was nothing to do with gender really in my mind. It was all about machine learning and AI stuff. There was a backdrop of all women here which is a phenomenal see. But it really is conversations around tech. And there was a kind of the impact of that content was there was a community fabric being developed. The hallway conversations last year were, hey, what are you working on? What projects are you working on? Or what company are you working for? So there was a solidarity around the bonding of we're all women in data science but it still was grounded in hardcore, big data, hardcore cloud computing, hardcore AI and machine learning. And as Diane Greene said, machine learning is at the heart of this and it blooms out into every vertical and she mentioned financial services to healthcare. But really, AI is going to be democratized and I think you're going to see that be an opportunity for these movements to continue. So that gets me the most excited. And the other thing is that seeing an event that's so awesome grow with a community fabric was the key. Fantastic. Well, looking forward to that and you talked about kind of the cross industry. We've got a great lineup of guests that are going to be on the program today from retail to leveraging big data and data science as a change agent for the way that jobs are recruited to machine learning and healthcare to educators. So stick around. This is Lisa Martin with John Furrier on theCUBE from Women in Data Science. The second annual will be right back.


Okay today we are going to exercise the mailbox feature of the SD25DV and to do that we are going to use the SD25R3911B discovery board and also we are using the SD25DV discovery board as well. Remember that to use the mailbox features we must power the SD25DV because the registers of RAM like buffer requires power digital power versus the fact that the EE problem on the SD25DV can be powered via RF in passive mode. So when you first started the SD25R3911B discovery GUI you'll be greeted with a screen that looks like this. You would first start do a demo board check, calibrate antenna, a chest regulator. Now you can put the red board on top of the green board make sure that you don't have any kind of shorting because we are talking about open not package devices. When you do that you will run a tab called SD25 tag editor and when you do that it will take some time and it will give you this this panel. You go to dynamic tag you choose the SD25DV04K. To see if the reader and the tags are in connection you do an inventory as you can see you see the UID of the SD25DV. Now the next thing you have to do you're going to change some configuration registers in the SD25DV you basically enable the mailbox features. To do that you first have to present the password because it requires password to change or edit the status configuration of the SD25DV. Click on password then present password and it's all zero and I'm using the default password all zero. I present password it say no error during present password so I'm good right there. Now going back to configuration register I'm going to read configuration and you notice that I already have mailbox mode enabled but normally when you're in the default condition when the device is first available it is come as default of value of zero. I'm going to reset that value so that I can show you the reading and writing of this bit. So go to write configuration and I'm going to fill with zero. Write configuration and it say done. When I read the configuration status again notice that the mailbox is now disabled. So this is the default condition of the SD25DV. Now we are going to change it to one so we can enable the mailbox. Go to write configuration again. Go to zero one. Write configuration. Now we're going to read configuration or static register. You go to MB mailbox mode. You see that it's enabled. Now you're going to the tab called the FTM. So here we are in the FTM tab. When you first have it and you do a read dynamic configuration all the bit will be zero. Even the MB enabled bit is zero as well. You first have to change this bit to one so that you can read and write to the mailbox because it doesn't mean you enable it. First you have to present the password. Present password so you can change that bit. Say no error doing present password. Go back to your FTM. Write bit one. So now bit one is enabled. I'm going to write 16 bytes to the 256 byte buffer. 16 or 32 or 8 or 4 but here 16 just a sweet 16 number here. So I'm going to write with 16. Okay when I read back I read back the 16 bytes. Now the reality is that now the buffer is full. You do a read dynamic configuration. You see that is there's a put message flag right here. And if it's full you cannot write it again. Let me show you that. So you want to do a write message again. Say this time you put 33 for example. You write. It's going to give you an error. It's the error because the way the mailbox works is that if the buffer is full the I2C section has to offload the message and then clear out the flag. Once the reading process occurred on I2C it will clear out the flag. So the data is still there. So you cannot write on top of it. It's kind of a good secure way so you cannot accidentally RF writing over and over again this place. So we'll give you an error for sure. So I'm because I don't have I2C connected and do all these arbitration right now. I will just basically reset the MB bit and be enabled it. And that will basically reset the configuration basically empty out the content of the mailbox. So I go to present password again. Present password. And I go to fast transfer mode. I write dynamic configuration. I'm going to zero that out. So now it's zero. I'm going to re-enable MB enable bit because it's important so that I can write it again. Correct because it's disabled right now. So right back zero one right configuration now mailbox is enabled the rest are zero so it's a clean slate again. Now I want to do a write message and I want to write with say BB for example so it doesn't give me an error anymore. I can read back the message BB. So basically the mailbox features is designed so that you can have a dual access the dual interface access between RF and I2C. It's not really there for passive operation because you will have non-volatile storage to do that. So it doesn't make sense just to read and write to a non-volatile storage without somebody else on the other end accessing it. Okay thank you.


Hello from Center for International Forestry Research, C4. I'm here on the campus and I'm sorry I can't be with you in Johannesburg for the mid-session on Prunus africana, but I do welcome the opportunity to be able to share with you the results of some of our research on the species. Some of you, if not all of you have seen our PowerPoints over the last year or so looking at and condensing, distilling the research results that we've been generating for over the last few years and we have a fairly strong message that we'd like to convey about the sustainability of prunus africana to you this afternoon. Prunus africana is a very interesting species, occurs in a genus of over 200 species but is the only representative found on the African continent. It occurs primarily in isolated montane populations across tropical african Madagascar and these populations are isolated to the extent where the populations themselves are both genetically and chemically distinct making each individual population incredibly important for conservation and for genetic genetic conservation as well. The species is listed as vulnerable by the IUCN and is also listed on CITES appendix 2. So there's a level of protection across the continent. However the species is threatened due to habitat loss, due to clearing for farmland particularly in some of the more populated areas of montane forest and future impacts predicted due to climate change are being recorded by a number of authors with these montane forest fragments being particularly susceptible to climate change. The commercial trade in prunus africana originated from its herbal local and traditional use for various ailments but it's used primarily as a remedy for benign prostate hyperplasia and this affects more than 60% of men over over 60 was a slight swelling of the prostate and the herbal remedies provided by prunus are one of the few on the market that is relatively efficient. However since 1970 prunus africana bark harvest is shifted from subsistence uses to a much more large scale to feed a growing international trade and a trade that's worth roughly 200 million dollars a year. There are very few alternative products to prunus africana although there are some including soil parmato from the United States and there are many emerging markets particularly in Asia and China and India in particular the demand for prunus africana products has been reported to be increasing. So in terms of the history of trade of Cameroon this slide shows how the quotas have changed over time. You can see the results of the EU export ban in 2007 leading to a zero quota and all the way up to last year where roughly a thousand tons of bark were exported from Cameroon. So in terms of sustainability they have been considerable efforts to try and manage prunus sustainably in the wild and Mount Cameroon in particular has been a model and there's been major investment in management and monitoring plans since 1990 and stimulated by the 2007 trade ban and subsequent national management plan there's been major efforts in ensuring they've been considerable inventory, inventories undertaken but also management regimes developed based on these particular initiatives. However there still remains a major disconnect between policy and practice and an example of this is the annual sustainable bark yields have varied enormously and the quotas have varied enormously and recommendations have been in orders of magnitude different in terms of what constitutes sustainable and you can actually see from this slide that the Mount Cameroon community harvest of prunus africana bark was only 57 tons in 2002 because that's all they could actually find. In terms of the national management plan this is commissioned by FAO to C4 and we led the development of this management plan with a number of partners but this really as the lead author of the report acknowledges and this force actors to work together to brick a large new governance arrangements which basically meant that people who were not working on the prunus africana issue and management were working together and previously hadn't had much experience in doing so one of the major problems that we had internally was some of the methodologies related to inventory techniques and quota setting were not as robust as they perhaps should have been and we agreed internally that from an institutional perspective this brick a large was not good enough in terms of developing a much more cohesion and cogent management plan and harvesting system for prunus africana because of that there were many reservations about the poor quality of the report and we internally recommended that it would not should not be released but it was it was released to onto the FAO website and became a tool for advocacy and lobbying for those who had vested interest in maintaining the wild harvest of prunus africana. So in terms of who benefits there's been a lot of polemic written about the livelihood value of prunus africana to harvesters and you can see from this slide that there are very few active harvesters on Mount Cameron and the benefit per person represents less than one dollar a day. Alternatively the price per kilo the free on-board price is six dollars and this accrues primarily to one company who have a relatively tight monopoly on the export of prunus africana and last year they this represented a profit of sorry in 2012 this represented a profit of almost six million dollars. So the cost of sustainable management versus the actual benefits are interesting to look at. We have estimated that the cost of the inventory that was undertaken on Mount Cameron alone is actually twice the income of the bark harvest itself so essentially donor aid is being used to subsidize the private sector and this inventory was only possible because of external donor funding which I've identified the German Development Bank primarily. So why is it that why would we subsidize an activity that is both potentially unsustainable and has poor livelihood benefits when there are many more livelihood activities that could be supported in the region. We go to the issue which I think is fundamental to the entire argument of wild harvest versus cultivation is wild bark harvesting unsustainable. Bark harvest is a shock from which many prunus trees do not recover particularly because of the scraping of the cambial layer which doesn't allow the new bark to grow back. The demographic structure of natural stands shows very low representation of mature trees and this is primarily because many trees were felled during the 1990s in the in the gold rushes it was referred to at the time to export and exploit as much prunus africana bark as possible and the overexploitation rate is actually more than 90% in many of the studied villages in western Cameron and all of these figures are supported by scientific studies. Work of my own and Charles Taco in the late 90s showed that significant crown death and senescence happened in 80% of trees five years post harvest so we we actually assert there is no scientific evidence to support that the supposed sustainable two-quarters harvesting method that has been propagated is sustainable. And here on this slide you can see three images of examples of where wild harvesting is impacting the residual stands of prunus africana. These are taken in Bioko and Akatoragini. The picture on the left shows a species an individual rather that has been harvested three years previously and shows significant crown death and this also affects reproductive activity as well which just counts for the low regeneration on Bioko in particular. The center slide image shows a cut stump and the removal of entire individuals is a common practice in some harvesting areas particularly the forest frontier and the third slide shows that once bark is removed the remaining stem is susceptible to a stem borer and it actually infiltrates and penetrates the the main body of the stem and may or may not contribute to the crown death that you can see in the left hand side image as well. And this stem borer often leads to long-term senescence and death of the individual. So it's cultivation the answer. Now prunus africana can be very successfully propagated by leafy cuttings and my colleagues at aircraft have done a lot of work on this and even at the lower current low price of the actual bark and cultivation is a better economic option in terms of income but also for the labor expended by local people. The planting of prunus africana in agroforestry systems is currently compatible with many existing agricultural systems in much of its range and because of that has been extensive planting of prunus africana in western Cameroon and there's been a recent inventory of prunus on farmland in and around Mount Cameroon and it's shown that there are large quantities of prunus africana stock still available at the on farm site basically and as you can see from the the figure on the right in terms of value to the the farmer compared to the harvester cultivation actually much more profitable to local people than actually going out into the forest and harvesting directly. In terms of site east cultivation and trade what we want to present to this particular meeting is that we want to basically identify that local farmers have been cultivating prunus africana since basically the 1970s through various incentive schemes but are basically just courage in doing so by lack of access to markets and we've met many farmers in the field who say that if they can't sell their product they'll actually just fell the species and use the timber for other purposes. Societies need to recognize that conservation through cultivation can and should happen with prunus africana as is the case with other products such as orchids and crocodiles. So home farming of these these particular commodities can actually increase profits but also reduce significant pressure on the wild resource. As I mentioned cultivation can bring higher income to more people with considerably less effort and particularly when compared to sustaining the wild harvest and we believe that effort should focus on phasing out wild harvest in the long term and focusing more on cultivation particularly of on farm material. So in terms of recommendations from others GIZ and the government Cameroon put together a very neat framework describing how farmers could exploit and sell prunus bark from their farms and I think they should be followed up and Andrew Quota for the exploitation commercialization of prunus from Mount Cameroon in particular should be proposed to Societies for Approval and this should be scaled up to other areas of production and I think that we should be focusing more on domestication and cultivation of prunus in farms, plantations and community forests which are managed by local people instead of focusing on purported sustainable wild harvest in protected areas and other areas that should be basically not harvested in. Prunus should only be planted at higher altitudes it occurs in montane forests and some mistakes have been made with with cultivation experiments but by planting at lower altitudes and most of these these initiatives have failed but also we should be believed that exploitation inventory should be carried out prior to harvesting. Reggae monitoring should be carried out and farmers should be trained on good harvesting practices. There's considerable evidence to suggest that a felling rotational system will be much more sustainable for farmers than actually harvesting standing bark. Some final thoughts on prunus africana. A 2013 patent by a series of Indian researchers showed that the active ingredient for prunus africana could be extracted from not only the bark but the leaves and the small twigs. Now this has a huge impact for farmer income. If farmers were to manage cultivated prunus on a rotational basis by felling individual trees and replanting they could actually accrue significant income from single individuals of the species and this is incredibly important. But these farmers need more support. The government of Cameroon Regeneration Fund don't currently for example they should be paying farmers to plant material on farms. Prunus africana doesn't fall into that category. And ICRAF and see for another research organizations are very interested in resurrecting our research on prunus for farmers as long as the market is available for farmers to sell their product and this is incredibly important. We also believe that investigating the potential of the Asian market, the emerging Asian market in particular China and India should be further investigated. But my final plea if you like is to offer ourselves. The research that's been presented here in this presentation is based on many many years of empirical studies and it provides a very robust evidence base and we have no particular advocacy stance on prunus africana. We just believe that the science is showing us that currently it's harvesting in the wild is unsustainable and the future of the market if you like it for the income of the species is in cultivation and farmer support. And I would just like to make that plea to you at the COP to think about those. The evidence is presented here. Think about the wild harvesting versus cultivation and the trade-offs within and I just like to thank you very much for giving me the opportunity to present from afar and I welcome very much hearing about your deliberations this afternoon. Thank you very much.


Hello and welcome to the Jackie Boswell show presented by Buffalo Wildlings. I'm Greg Royce showing with Stevenson-Woods-Baswell, head coach Jackie Boswell. Coach, you played three times since we last spoke last week. Let's kind of briefly touch on. We played two conference games last week, first against Messiah and then up at Lycoming on Saturday. Can I talk about, just kind of take us to those two games and how they went. Obviously, not the way you want to go in the win-loss column, but you can take away some positives. Well, you know, again, Messiah and Lycoming, very good teams. We knew that going into it. After watching film, I thought defensively the effort in both games was really good and, you know, had record turnovers for the other team in both games. And we just needed to be able to convert them into some easy points and just weren't able to do that. But I think we did learn a lot about ourselves and that defensively we can play with the best teams and hold them under their points. I mean, you know, to only give up 45 points, really to Lycoming before that last shot was hit, pretty good. We should be able to walk out with a win on that. Yeah, and that's obviously from a one-loss respect. It was a little frustrating in the Lycoming game. Like I said, holding the 45, you know, they tie a sentence over time and then win it over time. Yeah, but Monday you were able to bounce back. You went to Stockton last night and were able to bounce back and had a season high 82 points, kind of turned some of that defensive effort right into some offense. Right. I think that the important message on Sunday at practice was that we really couldn't dwell on what we've done wrong. We just need to learn from it. So we watched a lot of film on Sunday and really praised our team on how good our defense was in both of those games, and that we now need to make sure that they can convert into some easy offense. So with that being the focus in Sunday's practice, real happy with the effort last night and being able to convert that what we practiced. Yeah, you were able to force Stockton into 29 turnovers, which we were able to turn to 37 points. Johnny and Curry, career high points and rebounds, Hannah Chris was in their strong game, and you were missing, you know, Livia Coleman as well, you know, with illness. So did not have her and be able to still have that kind of offensive effort speaks volumes. Right. Well, you know, we talk a lot about, you know, respecting our past and I think that our past teams that have come through here have done a great job of stepping up under adversity.  But again, it was an adversity that I thought our team faced really well.   But, you know, and then for our freshmen to step up and take that starting spot and Hannah just to have two consistent games together, if we can continue to put this consistency together on the defensive end and now the offensive effort as well. I think we're going to be in good shape heading down the road. Yeah. And I'll see you a little bit of a break. I'm no conference game this Wednesday and then Saturday you host Salvernia. What's kind of the message or the couple of days off before, you know, not off, but obviously a couple of days where you can kind of work on some things besides just preparing for your next opponent? Well, I think the biggest effort and I think the biggest emphasis is going to be, we can't give up now. Now we got to keep going. We got to get better. You know, it's still wasn't a perfect game. So how do we keep striving for that perfection? So we can't be content with last night. We think we turned a corner and now we got to keep going. So, you know, practices this week is going to be, you know, focus on the defense just like always. And then, you know, as it gets closer, we'll focus on Alvernia stuff. All right. Well, thanks a lot, coach. We wish you the best of luck this weekend and we'll talk to you next week. Thank you. For Jackie Boswell, I'm Greg Royce. This has been the Jackie Boswell show.


Welcome to George H. Smith's Excursions into Libertarian Thought, a production of Libertarianism.org and the Cato Institute. I'm your host, Terence West. Herbert Spencer, Henry George, and The Land Question, Part 5, by George H. Smith. Smith discusses some criticisms by Aberon Herbert and Thomas Hodgkin of Spencer's position on land. Two of the best criticisms of Herbert Spencer's defense of land nationalization were written by two of his admirers, Aberon Herbert and Thomas Hodgkin's, who was Spencer's boss, in effect, while they worked together on the economists during the time that Spencer wrote most of social statics. Aberon Herbert, writing in 1890, argued that, If John Smith cannot morally own land, then 10 million John Smiths cannot morally own land. The land nationalizer has not yet discovered that a government or state can only possess the same moral rights of possessing and enjoying as the individuals who create it. Robert Flint expressed the same objection five years later. It is difficult to see how collective property and land can be right if individual property and land be necessarily wrong. Moreover, according to Herbert, if land belongs to an entire nation, then it is the whole nation minus nobody who must decide upon the use of it. It was usually said by land nationalizers that a majority should decide these matters. But Herbert argued that it is mere fiction to claim that a majority can speak for an entire nation. It may be practically useful or mischievous on occasion to treat the majority as the nation, but in philosophical questions, a majority cannot possibly be counted for more than what it is, a part of the nation. Suppose a nation consists of 100,000 people. If each of these persons has equal rights to the land in question, then all land must remain free and open to everyone, which, as Herbert pointed out, will be rather inconvenient as regards cultivation, building, etc. Unless everyone, without exception, agrees to some other arrangement. Suppose all 100,000 citizens unanimously agree to modify their rights in some fashion. This new arrangement could not stand unless each new voter in the nation, e.g. children as they become of age, gives his or her consent as well. Even one dissenter in a new generation would nullify all previous agreements. Although Herbert did not mention Spencer by name in the foregoing remarks, he probably had Spencer in mind. I say this because one of Spencer's arguments in Chapter 9 of Social Statics where he considered the possibility that Earth could become the exclusive possession of individuals by some process of equitable distribution. Why, it may be asked, should not men agree to a fair subdivision? If all are co-heirs, why may not the estate be equally apportioned and each be afterwards perfect master of his own share? Spencer rejected this possibility by taking future generations into account. Let us inquire, who are to be the allates? Shall adult males, and all who have reached 21 on a specific day, be the fortunate individuals? If so, what is to be done with those who come of age on the morrow? Is it proposed that each man, woman, and child shall have a section? If so, what becomes of all who are to be born next year? And what will be the fate of those whose fathers sell their estates and squander the proceeds? These portionless ones must constitute a class already described as having no right to arresting place on Earth, as living by the sufferance of their fellow men, as being practically serfs. And the existence of such a class is wholly at variance with the law of equal freedom. Until therefore, we can produce a valid commission authorizing us to make this distribution until it can be proved that God has given one charter of privileges to one generation and another to the next. Until we can demonstrate that men born after a certain date are doomed to slavery, we must consider that no such allotment is permissible. Thus, according to Spencer, even a society acting in its collective capacity cannot legitimately bestow private rights in land because to do so would deprive future generations of their birthright. Aberon Herbert extended this line of reasoning and asked how the present generation can possibly bind future generations in any arrangement regarding land. Suppose, as Spencer advocated for his ideal society, a government rents land to individuals for a specified period of time. Morally speaking, this presupposes a number of things. First, we must view the government as an authorized agent for society, a position to which Spencer vehemently objected another context. Second, we must suppose a majority is somehow authorized to act on behalf of society as a whole, which would include the minority of dissenters. Again, a position that Spencer repudiated in other situations. Lastly, as Spencer himself conceded, a majority of the living cannot make agreements that would bind future generations. So, why, we may ask, as Aberon Herbert did, would future generations have any obligation to respect contracts made with current landholders, who lease land from the present representatives of society? So, Aberon Herbert understood, as did Spencer, if only implicitly, that unanimity will never be achieved. Herbert therefore argued that land nationalization reduces, in practice, to the claim that a majority acting through a government will determine the disposition of land. Although this might provide a practical solution, it will require some courage to assert, as a divine law or as a natural right, certain unstated proportion of the 100,000, say 50,000 plus one or 75,000, have full rights over the land, and that the remainder have none, except such as the larger portion concede to them. In truth, whoever claims that the land belongs to the majority has, before he arrives at this stage, to crack an impossible nut, to show either that the part is the same as the whole, or that the land of natural right belongs to A, B, and C, but not of natural right to D. Whoever claims the land for the majority must first establish that, which is impossible to establish, that the majority has some rights besides those of force. Herbert presented another difficulty in the argument for land nationalization. Why do land nationalizers assume that the people of a given nation have an exclusive right to use the land in that nation, a right that precludes its use by the people of other nations? If all land truly belongs to mankind in common, then why wouldn't, say, a Russian have a rightful voice in determining how land in England shall be used? Quoting Herbert, assuming this right of people to the land and the question has to be answered, what people to what land? Is there any reason to suppose that imaginary geographical boundaries will limit the right so set up? Why are those who live in unfavorable districts and who are densely crowded in their own areas to leave the more attractive spots of the earth to other peoples? The right of the majority is simply, and absolutely, let this be clearly seen by those who have not yet seen it, the right of the strongest, and when once that law is established, there will be, for example, a Russian and a Chinese land question as against other nations, as well as a question between different parts of the same nation. The preceding objections had been made decades earlier by the radical individualist Thomas Hodgkins in his review of social statics published in The Economist, February 8th, 1851. At the time social statics was published, December 1850, both Hodgkins and Spencer were working for James Wilson, founder and publisher of The Economist, Hodgkins as senior editor and Spencer as sub-editor. Spencer's job allowed him sufficient time to work on his book and he sometimes visited Hodgkins London Flat to borrow books and discuss ideas. It is safe to say that Hodgkins, who was Spencer's senior by 32 years, understood the young Spencer's ideas better than any other reviewer and he agreed with most of them. Spencer's position on land was the only difference that Hodgkins regarded as important enough to discuss in his review of social statics. For a book embracing so many subjects, there are very few conclusions or remarks to which we are disposed to object. We must, however, say that the author's chapter on the rights to the use of the earth is by no means satisfactory. Like Oberon Herbert and other libertarian critics of Spencer, Hodgkins insisted that all rights are ultimately the rights of individuals and that a society can possess no rights in addition to the rights of the individual who constitute that society. Thus, if societies have no other rights than the aggregates of the rights of individuals and if no individuals, Englishmen or Frenchmen, have a right to a single foot of the soil of England or France, the English and French nations can have no such rights. As Oberon Herbert would later argue, Hodgkins maintained that if the right to use the earth is a right shared by all mankind, then there is no good reason to suppose that only Englishmen have a right to use English soil, that only Frenchmen have a right to use French soil and so forth. To claim for Englishmen the exclusive right to use English land is to defend an unjust monopoly of the sort to which Spencer objected in the case of private ownership. Spencer, in his effort to avoid making land a monopoly of individuals, makes it a monopoly of nations instead. And if no single Englishmen has any legitimate title to English land, then the English nation as a whole, which consists of nothing more than individuals, can claim any such rights as a community. As a strict Lockean in matters of rights and land ownership, Hodgkins, who devoted a chapter to land in the natural and artificial right of property contrasted, 1832, had even more fundamental objections to Spencer's position. I shall consider those objections as well as Hodgkins' defense of private property and land in my next essay. This has been Excursions into Libertarian Thought, a production of Libertarianism.org and the Cato Institute. To learn more about Libertarian philosophy and history, visit www.libertarianism.org. I'm Terence West. Thanks for listening.


Welcome. Thanks for for being here. We're going to talk to you about how we use progressive delivery with our rollouts at Adobe. The things that how we set it up, what went well, what things we did, didn't work so well, some issues we found on the way. And so hopefully you can get some ideas for your every day. Our rollouts use it if you are not using it already. So my name is Natalia. I'm working as a software developer engineer at Adobe. I love math and coding and this is my second talk at the CubeCon. The previous one was in Chicago. So yeah, glad to be here. And I'm Carlos. I'm a principal scientist at also at the same product at Adobe. And I've been contributing to a lot of open source projects. And one of them I started was the Kubernetes Yankees plugin that was 10 years last December. So it's been a long way. So a small short introduction about experience manager. So you understand a little bit what what are the problems we are facing. Adobe is a distributed Java application that uses a lot of open source components from the Apaches Over Foundation and obviously a bunch of other open source libraries there. And a particularity is that it has a huge market for extension developers. So it's like a platform where people are writing code that is deployed. And we deploy that code into the cloud as part of our product. We are running AM on Kubernetes as part of this cloud service. And it's running on Azure. We have more than 45 clusters across multiple regions because it's a content management system. Customers want to run as close as possible to their to their customers. So we have US, Europe, Australia, Singapore, Japan, India and any new region that customers ask for with right to to adopt. And we have a dedicated team managing clusters for multiple products.  There's a team that builds the clusters, keeps it updated and we have limited permissions on those clusters. So that's also another particularity. On AM we have multiple teams building services in different languages and we try to have an approach of you build it to run it. We use a lot of APIs and a lot of Kubernetes operator patterns in order to build these services and to add functionality to the main AM core application, the Java application. On the scale we have, so we have 17,000 environments, what we call Adobe Experience Management Environments. This translates to over 100,000 deployment objects, so Kubernetes deployment objects over 100,000. More than 6000 namespaces. And we are already doing or we've been doing progressive rollouts at the environment level for some years already. This meaning we can rollout changes to specific namespaces or percentage of namespaces in a controlled manner with something that we built and we created ourselves. But the reason to look for something else was how do we avoid issues in production, not just during tests. I think everybody looking at progressive delivery, that's what we're looking for. Okay, tests are not enough. We want to check that things in production are working fine. We also have to consider issues introduced by or Adobe code, things that we write, but also things that customers write. So if we make a mistake or a customer makes a mistake, we want to protect the production environments from that. And we have to do it for 17,000 unique services. Full end-to-end testing is expensive. We do end-to-end testing at a bigger scale, but obviously as things grow, this becomes costlier and it takes more time. Also, it doesn't cover all the corner cases that you may think. Testing is for things you know that may fail. I think progressive delivery is for things you don't know that may fail. That's a good analogy. And when we have testing that fails or production rollouts that fail, we have to do the analysis of, is this a problem with our AM release? Is this a problem with the customer code? Is this a temporary flaking issue? And this is all costly and that's time. So it's time-consumed. Releases can get delayed because we detect something rolling out to production. Now we have to stop the train, look at what happened. Is this something that is blocking the release or not? And also if we don't detect it and we roll something that is bad, is broken, 100% of the traffic for a particular customer could be affected. So here we, I guess you all know, that's why we're moving to Argo rollouts. That's why we're all here. So anybody using Argo rollouts already? Just a few people. I'm not going to enter in a lot of the details because the other talks also went into the very how to configure it, how to set it up. I'm just going to go a bit more high level on how we did it and why we did it. So we set up canary deployments with automatic rollback based on real-world traffic and error metrics and using these metrics from Prometheus, metrics that we already have for alerts. So we are feeding this now to Argo rollouts. One interesting case was also, okay, rollouts works with one deployment. What if I have two deployments that go together? We have two deployments that we call author and publish, so author is used by people creating content, publish is kind of serving that content. If there is an issue with any of those, we want to roll back both of them. So you can do this with Argo rollouts by using the same metric that includes both deployments, and then Argo rollouts will see if the metric fails in either of them is going to roll back both. Because Argo rollouts only looks at one specific deployment, but when you use a metric that includes both of them, it will roll back both. And in the future, we can consider also Helm rollback because every time we do a new deployment or a new release with Helm, maybe we don't want to just roll back the deployment. Maybe we want to go and look at, okay, Argo rollouts has decided this is broken. Let's go and roll back the whole Helm chart so we don't have a mixture of newer Helm chart with old deployments. The way we did it, so we have a rollout object and we use a workload ref in the rollout. This way we can point to an existing deployment as we roll out. And we don't have to delete the deployment objects, we just create the new rollout object and this is in Helm and we point the rollout to the deployment object. We configure the rollout, we use the labeling feature on rollout. So all pods get the label roll equals stable, new pods get the label roll equals canary. So you can have metrics for both of them separately and you can look only at the canary metrics. And you could also in the future, I mean you could have traffic going only to the canary if you wanted because they have separate labels. You could have separate services, separate ingress. This would be interesting if you want to deploy and say, oh, I want to look at preview at the canary before promoting. On the analysis template, which is the part that is going to decide is this a successful rollout or not. We look at the metric, but we look at the success condition that there's less than 10% of that. All of this here means just 10% of the metric is less than 10%. So 10% of the metric, which is an errors metric. We point to the Prometheus service running on the namespace and the metric is called request error ratio, five minutes, pod label, the tier. This is where we use both tiers, both deployments. So these are metrics coming from the deployment call author and the deployment call publish. So we can say if either of those fail, roll it back. And because we have two rollout objects, one for author, one for publish, if any of the metrics fail for the other one, it's also going to roll it back. So both of them would be rolled back at the same time. So what is good with our rollouts? Automatic rollback on high error rates, that's the key feature that we are looking for. We don't want to halt the train. We don't want to break a customer. And this allows us to do these non-blocking rollouts across environments and then investigating what were the issues. So we get alerts when the rollout fails and we can look at those later. And it will use blast radius. So if we make a mistake or a customer makes a mistake, only a percentage of the traffic is going to get affected. And also we get more frequent releases. We validate this with real traffic and at the end of the day, more velocity. What if you look at the Dora metrics and things like that. That's what makes a team beyond the top performers. What is bad about rollouts? So the migration requires orchestration to avoid that. So this means when you create a new rollout and you have deployment, even when you use workload ref to reference a deployment that already exists, now you have pods running at the same time both owned by the deployment and the rollout. And this is a problem when you have thousands of services. Typically people would go and say, oh, when my rollout is successful, I scale down the deployment. And you just have to do this once, once you migrate. But when you have tens of thousands, that's a bit harder. So one colleague on our team, she contributed this PR. You don't have to care about this that much anymore. So automatically we'll scale down the deployment after migration to rollouts. And this PR is going to be released on rollouts 1.7. So it's not out yet as I checked before the talk and it's not out yet. But this will allow you to do, add a new field with the scale down attribute on the workload ref. And you can say scale down never. So the old deployment is never scaled down. So that was how it was working before. And unsuccessful. So after the rollout becomes successful, the deployment is scaled down or progressively. As new replicas are coming in from the rollout, replicas from the deployment are getting deleted. So things that were so-so. For us, we started with simple rollouts, watch for the graded statuses, and we noticed things like, okay, Prometheus is not reachable. So that's some things you have to account for. When Prometheus is not reachable, Argo Rollouts is going to mark your deployment as degraded. And the other one that we realized was upgrades with object deletion. One thing we use a lot, well, or we try to use more, is immutable resources, immutable config maps and secrets. When you create a config map and secrets, you can say immutable equals true. These signals the Kubernetes API to say, okay, this is not going to change. I don't need to watch for changes. Because every time Kubernetes watches for an object, it's creating memory, it's using memory on the API server. And this at the scale, this creates a high load on the API server. So one thing we were doing, okay, let's use immutable objects for some things that we don't want to change. And we know they're not going to change. And what happens, the typical pattern with Helm is every time you make a change to the secret or the config map, you have to change the name. And you would use a shell of the contents. That's what a Helm pattern. So every time you change the content, you're going to get a new secret and the old secret is deleted because Helm is going to do that. Now, what happens is imagine in this example, Helm doesn't upgrade. The new secret is created, the old secret is deleted. So the one is created, the zero is deleted. If the new pulse failed to start because of the rollout, now Argo keeps the old deployment running and scales down the new one, but the old deployment cannot create more new pulse because the secret no longer resists. So as soon as the existing pulse are recycled, you get an outage. So that's one tricky thing that we are still figuring out how to change. But that's something that you need to have into account. This is not a problem just with rollout. Just rollout makes it worse because the rollout can take more time than normal deployment, but it's something to watch for. You need good metrics. You need to account for Canary stable labels on the metrics. You don't want to check metrics of the stable deployment, so the stable pulse, you want to just look at the Canary pulse. What happens when you have environments with low traffic? If you don't get this metric, maybe you assume that it's successful, but then when you start getting traffic, then you realize that something is broken, so that's also a tricky part. Very annoyingly rollout, but you're adopting the rollout object, now you need suddenly to change runbooks, tooling, training because now you're going to have deployment objects that are going to be scaled to zero. If somebody is not aware of that, they can mistakenly go and say, oh, I need to scale up this deployment because it's zero. Now you have a mix of both things. We're going to show you a little demo. We have to record it to speed it up. In this demo, actually, we're going to show you how we did it, our rollouts on our environment. Here you can see that we are spinning up a new, well, actually, no, it's not playing. One sec, technical problems, it's not a real demo, but always demo time. No matter what you do, it's always demo time. After the beginning? All right, now. We have this recording for an environment where we started a new environment. You can see the revision 22 is a new rollout. On the other side of the screen, you can see the bot. We had two bots running for the previous version and a new bot which is starting up. I just made the recording so we can just make it faster. Once this, yeah, there you go. The bot is in isolation. Actually, we are deploying a new version which suddenly it contains a back. So what is going to happen is that we have a URL which is returning 500 errors. As soon as it is ready, which is going to be like in a little bit, there you go, because I made it. Now, behind the scenes, we are receiving requests which are returning 500. For this demo, we just did a lot of requests for this endpoint because it's a demo environment. And then we have the analysis run, which is the running. You can see it on the 22 version, which is checking what is the health for that metric that Carlos was pointing out. So now we can see we have one error for the analysis run. There you go. But I will show you later, we have a limit of, hey, with one error, we're okay. With more than one error, then we failed. So just Argo continues. It starts the new pod. It says, all right, I have a new error, but it is fine. As soon as I have two, there you go. Then it is marked as degraded. Here at this point, Argo is going to say, all right, the new deployment failed. I mark it as degraded. And then I'm going to start doing the fallback to the previous stable version, which is index example is the previous one, the 21. So now, yeah, the 21 version is going to be, well, actually at the top of the screen, this is a big screen, but we can also say that the rollout is very high, all right, because the metric actually made an error. So now you can see that again, little by little, just doing another rollout, the new revision, the 22 is going to be scaled down, it is terminating, and the new one, well, the previous one, sorry, the version 21, is going to spin up new pods because that is the healthy one. So we are making a fallback on the other side, but you can see also the new pods coming up. You can just see there. So this is how Argo works. I mean, this was a little demo just because we make it shorter, but this is quite enough time to make the rollout and to detect that everything, hey, it failed, then you need to roll it back. So now if we go back, let's see, what is the end point to the slides. This is the analysis run that we saw in the demo. So actually here you can see that there were six points where four of them were marked as succeed. Actually, you can see there are not a number. That's because, I mean, Prometheus starts to get the data and to ingest it little by little. So that's something you need to take care to configure and to set up the proper values because actually you need to take that delay of Prometheus, right? And then we had two failures and since we configured to mark it as failed as soon as we have more than one failed or error, then it was marked as degraded. Okay, so to sum it up, progressive delivery, we think it's a great idea, rollouts, argorolls, great implementation. There's only a few things that you have to have into account when you adopt it and hopefully you got some ideas here. Thank you for being here. And I think you can leave it back using .qr on the SCADES page. If you have some questions. Yes, I have a question. I wanted to come back to the issues you wanted to iron out, especially the issue with the config map missing that you mentioned. If you name config maps and you need to roll back, the old config map is gone. We have exactly the same problems. We have found a solution. Let me share it with you and see if it would work for you. So we've written some automation that basically retains the old config maps in Git. So after you render using Helm and you get the new config map with a new name, we'll actually replace the old one. We save the old ones as well. Last 10 or whatever number you want to have. So they all show up as synced in our goal. So later, when we deploy again, we just remove the oldest one, just leave the last 10. And that way we don't have this problem. We can now roll back and we don't have this error. Yeah, there's multiple ways to solve this. We are not using Argo CD where we are using Argo Rollouts, but you can keep the old ones for a bit. You can label them. You can instruct Helm not to delete them. And you could have maybe a post update job in Helm where you delete the old ones. So you don't keep them around. I mean, there's multiple ways. You can do it with an operator. There's some ways you just need to be aware. It's a bit of the you have to deprecate things before deleting them in case this happens. Any one of these solutions you would recommend? Of the ones that you mentioned? We are not sure yet where we're going to do, but because one of the other options we have is to put secrets together instead of having many immutable secrets. We could have just one secret that is not immutable. Then that doesn't overload the API so much and maybe that's fine. But we probably gonna, because we have an operator, in our use case we have another operator that triggers these things. The Helm operates and all that. And we can do the deletion from there. So that could be another option for us. Hi, thank you for the talk. I wanted to ask if you have faced any drawbacks using the workload ref to the deployment? Not other than the problems with the operating and having to scale down the deployment. That was nothing. Okay, that's great to know. Thank you. I think maybe one more? Yes. Great talk. I have one question with manual feature gating or developer access because I presume you have many developers deploying in many different ways or maybe they're using a model. But I can also suspect that maybe some of them would like to see the visual Argo rollouts UI and then see how it's working and maybe manually allow for the next analysis or the next phase to happen. Is that something you are using? And if so, is it any good? The user experience, let's say part of it, that would be interesting but we are doing this for thousands of deployments. So having going and looking at, oh, this one, how is this one doing? That's not going to fix anything. But yes, we are storing the value on our own. We have an operator that kind of overarching operator that looks at the Helm operates and Argo and that operator is getting the status and that status is being stored and can be observed by other tools that are triggering it. How is it to get the status filled with all the information? We grab the information from the rollout status, put it in the other operator in a way that it makes sense for the clients triggering the operates. So you essentially get a timeline? Yes. Very nice. I think that's time. Thank you all. Thank you everyone.


When you want a ThinkPad, but you're sick of the repetitive design, Lenovo offers the ThinkBook, a more stylish approach that keeps everything else intact. Today we have the ThinkBook 14s Yoga Generation 2, a portable Alder Lake convertible that's ready for taking on your computing needs from everywhere.  It's a magnet for fingerprints, however, it looks and feels good. The two-tone finish on the lid and the glossy hinges really break up the design, giving it some flair. The chassis is very strong, albeit it might feel heavy in your hand when you use it as a tablet, with a weight of 1.5 kg and a profile of 16.9 mm. You get an integrated stylus with its own enclosure, which has 4,096 pressure levels of sensitivity and works well with the glass cover display. The hinges are smooth operators, allowing the lid to open with one hand. Once open, you see the keyboard, with gray keycaps, which are also quite large. Typing is good, thanks to the long key travel and clicky feedback. It's also backlit, so if you work during the night, you can keep your words per minute high. The Touchpad reigns supreme as well, sporting a Mylar cover while being fast and precise to respond. Most of the input output is on the left, with one USB Type-C 3.2 Generation 2 port, a Thunderbolt 4 port, an HDMI connector, one USB Type-A 3.2 Generation 1 port, and an audio jack. Move to the other side, you find the stylus enclosure, a power button with a fingerprint reader, a microSD card slot, and one more USB Type-A port. On the front, the full HD IPS panel is protected by Gorilla Glass. While not having the more modern 1610 aspect ratio, it's still an amazing display. The viewing angles are great, and with a peak brightness of 356 nits, outdoor use won't be a problem even in well-lit conditions. The contrast ratio is very high, at 2020 to 1, so blacks look especially great, almost OLED-like, almost. It covers 100% of the sRGB gamut, providing a punchy and vibrant image. The color accuracy doesn't win any awards with the factory settings, offering a Delta E value of 4.1. However, applying our design and gaming profile lowers it down to 1.0, which is perfect. In the description, you'll find links to all of our profiles. We like bottom-firing speakers on convertibles since when you fold them for tablet use, the sound will be firing toward you. The setup on the Thinkbook delivers quality audio with no deviations across the entire frequency range. Only 2 per 100 people watching this video are subscribers. If you decide to just start following us, we'll be able to reinvest more in our laboratory, thus making even more helpful videos for you. Thank you, you're awesome! Moving on to the battery, a 60Wh battery pack turns out to be enough, with 10 hours and 27 minutes of web browsing, or 8 hours and 28 minutes of video playback when paired with the Core i5-1235U. Even if you go for the higher-end Core i7-1255U, since both CPUs have the same core and thread count, there shouldn't be a big hit to the battery life. As for the performance of the two Alder Lake U-Series CPUs, they are much better than the 11th Gen Tiger Lake Units, while being competent enough to trade blows with AMD's 5000-6000U series chips as well. With only 15W as the base TDP, the Thinkbook doesn't have a hard job ahead of itself in terms of cooling, so a simple setup with two heat pipes and one fan gets the job done easily. In the CPU stress test, the Core i5 maintains a TDP of 24W in long runs, like a video render, while spiking up to 32W in short and medium bursts. That's all the while keeping a low temperature of only 75°C, which we consider to be great. On the outside, everything looks normal, as there's very low noise from the single fan, while the base gets slightly warm, with a hot spot of 38°C. Taking a look inside the Thinkbook, you see up to 8GB of soldered DDR4 RAM, as well as one Sodom slot for further expansion. Storage-wise, there are not one, but two M.2 slots for generation for SSDs. We have a separate teardown video, which shows how to access both the RAM and storage slots inside the Thinkbook 14's Yoga Generation 2. It's almost impossible to find a perfect laptop, but the Thinkbook 14's Yoga Generation 2 comes exceptionally close to being one. The design and build quality are great, implementing one of the best keyboards that we've seen on a convertible, as well as a long-lasting battery and a surprising amount of slots on the inside for upgrades. Despite the ever so slightly suboptimal performance, the Thinkbook 14's Yoga Generation 2 is one of the best business convertibles for the money. As always, the review on our website goes further in depth, so check it out in case you need more convincing to splurge some cash on the Thinkbook 14's Yoga Generation 2. Yoga Generation 2