Good? All right, Liz? All right. Okay, I feel like this is like a live mic at an improv club. Okay, so group B, it's not completely clear to me that we always stayed focused on the theme of right spot. I know that I forgot instantly, that's what we were supposed to be talking about. But some people did keep bringing it back up. But we were all pretty bright, I think. I mean, in a cheerful way, not a smart way. Okay, so we kind of could break it down to four things. One, for sort of overall topics. And one, we talked quite a bit about re-creating the talk with, talk back model, the way in which the very common models take all the energy out of the audience. It's so excited to talk. And then they're like, oh, we're gonna be told exactly how to talk about this. And to breaking up that structure and making it more casual and listening to the audience and embracing how the audience wants to talk and what they wanna talk about instead of it being kind of a top-down model. And I think a lot of playwrights are really excited by that. And that, you know, anyway, so that was one. And then two, we talked a lot about the playwrights, new ideas for how playwrights can be involved in the process in a lot of different ways. And somebody brought up Luis Alfaro spending like large months of time in the community, rewriting work for that community, staying all the way through the run of the show and going out into the community. And that not every playwright would be able to do that or want to do that, but a lot of playwrights would be a lot more excited about being involved in a lot more ways than they are being used and could be, could also be, could be sources of ideas and could also, not only would be like, yes, I'd be happy to do an interview if you asked me to, but could actually be part of the process of what can you do and how can you be involved in such a way that two years later, somebody would say we'll playwright in the lobby, I've been waiting for your next play here because they were that involved. Other ideas having to do with like meetups that were like meetup groups that maybe are focused around the playwright and like going out to dinner with the playwright and that's about it on that or, okay. So then on, no, she's my helper. Yeah, no, no, it's good. Okay, and then the third thing had to do with, oh, ah, yeah, the physical space of the theater and the mission of the theater and having a new different relationship to the community. So it's like, you know, we built this theater and we, you know, community-based stuff and you know, that's, we're not interested in that, oh, no, nobody's coming to our theater and here it is and we don't know anybody in the community and the idea that, for example, if you have, if the space isn't always, if the space is sometimes dark, what can you bring in so that if people get used to coming to the space for other reasons, they'll come to see the shows. They're used to coming there for, you know, PTA meetings or community meetings or, you know, sky's the limit. That's about it on that too, right? Okay, and then the fourth thing had to do with the idea of reimagining the infrastructure of the theaters themselves. So instead of being very top-down and very hierarchical, that there is a sense of people listening to each other, people collaborating in a lateral sense within the organization and I think that also with in terms of visiting artists, not just playwrights, directors and designers, being a part of that in a way that is reimagined. So, did I leave anything out? That was exactly three minutes and 56 seconds. Quite impressive, Kenan, you coming up? Okay, so I'm part of Group A and so our conversation actually had three parts. The first part, we actually focused on some of the bright spots from today's conversations as inspiration. Second was some bright spots that are happening with us in the field currently and the third was focusing on some bright ideas for the future itself. So the three takeaways from today's conversation that we had that resonated with us, the notion of the ringleader as a curator of experiences for people. So that was a big one for us to swallow and think about. The other is the fact that there are different examples of participation, bringing the artists into this process of engagement gave us all something to think about. And the third is repositioning institutions not so much as selling tickets but as envisioning them as curators of an experience, a human communal experience. So in terms of some of the bright spots in the field, what we noticed that came up consistently is the idea of bringing aboard community partners at different levels of engagement either in terms of bringing new people that might connect to a particular work or reverse as opposed to an organization to organization collaboration is that the artists themselves, such as a director seek out the various people who might have experiences that are resonating in the particular work and bring them into some sort of conversational model. There is one other, I believe, in terms of our bright spots. Anybody from group one wanna jump in? Okay, we'll come back to it at the end. We jump then forth to the bright ideas that we had since we were all sort of inspired. So one is the idea of all of us embracing the notion of generosity at the field is that we need to learn to be generous with each other from individual human beings to the institutions that we run. And so one example of this generosity might be what was called a follow the play. So as opposed to one theater company being invested just in that company's audience development for the work is to actually carry a play through to be a shepherd or a steward of the process and be generous. So that would involve organizational collaborations that might allow people to connect to a particular work and it's development over the full trajectory but it does require us to be generous with one another. The other is also bringing into this conversation of audience engagement the notion of audiences as co-creators meaning actually physically doing the work of creating. This doesn't necessarily mean just listening to the work and feeding back and playwrights but actually getting on stage and being a part of the process. That would be an expansion of the continuum from those who just sort of provide some sort of feedback to the other end of the spectrum where they're actually doing the work. So that's also in terms of being generous with the artistic and creative experience itself. And the third big idea that we had came out of this conversation is definitively or not definitively but engaging in the research question of why do women go to the theater? And if we can just as a field finally embrace that particular research question perhaps there's a lot that we can learn that might inform other aspects of our profession. Terrific, next up. All right, being short in speech has never been my strong suit, so here we go. All right, so from group C we had, I'm gonna break this down into three major themes. Building an audience, talk backs and pre-show engagement and making the sausage. Okay, so in building an audience there were a couple of things that we saw as bright spots here. First, using entry points with other art forms or other pre-built in audiences. So for example, a company using movement with Pilabalus, Tom Waits music, Penn and Teller Magic was brought in as all of those different groups each made for a very diverse audience at the theater. New York Theater Workshop does a great job of selecting a community member to lead talk backs who has something sort of specific thematically related to the play, so they really serve as a bridge between the artists and the audience. We also talked about, you know, we recognize that students have different learning styles. How about the fact that our audiences have different learning styles also? So we can ask our box office managers to tell us who's gonna be in the audience tonight and how should we react to, you know, change what we're talking about in our talk backs or how the work is presented based on who's there. We also talked about strategies for engagement when you have no money. So using note cards or butcher paper or just giving audiences an opportunity to write about their responses. Okay, I'm moving on to making the sausage. We realize this is really about letting the audience in on the story, not about the story of the play, but the story of why we're doing the play. So this includes things like tours of costume workshops, which everybody loves, including us, letting people in on tech rehearsals. It turns out the only people who like tech rehearsals are people who don't have to be there. Long form interviews that you get to read on the subway ride home. Another alternative to that is giving just a teaser of an interview and then linking to the website using either a QR code or writing out the website link so people can find more for their own. We also talked a lot about the program being a branding souvenir. So something you get to hold onto and be about engaging with that institution. We really thought that theaters who looked at their programs as opportunities to engage with the institution as a whole were more successful. And then we also were just really impressed with the National Theater of Scotland's packets that they give out to every single school in the entire country that involve a video DVD of the play itself, as well as a book on the making of the play, as well as a copy of the play. So they really put together these incredibly full packages. Don't we all wish we had that money? Okay, that's it from Group B. Two minutes and 53 seconds. Two minutes and 53 seconds. All right, Group G. So our theme was collaboration, collaboration, collaboration. We didn't divide into three sections. We had a kind of chaotic conversation that was really rich. Bright spots came out. We talked about a lot of different bright spots in the research, but something that came out very strongly was one of the members of the group from Company One talked about their studio sessions. And everybody in our group really resonated with that. And that had to do, they do this on every show. And they invite audience to participate in a very complicated tour of the show. So they have a curated conversation ahead of time with food and drink. Forgive me if I get this wrong a little bit.  They may be running scenes. They may be talking. There might be a table read. And then they come back out and talk even more about that. And what they found is that they've discovered their ambassadors. They've discovered their cheerleaders, if you will, and who will then bring groups of people and their communities into the theater. The other thing they're doing is they have company members attending the shows as a kind of ambassadors at every single show. So there's some company member involved with the front of house, not necessarily working the front of house, but being there to both get to know the people who are there and also to greet them, to interact with them, to speak with them. And they do a thing called the Pedestal Post Show where they have various pedestals around the theater. And audience members can go to any given pedestal to talk about different topics which they have unsigned. And so the other conversation that was really rich was that of collaborating across departments and that there was kind of a flatlining of, quote, unquote, they use the term, somebody use the term ownership of the audience or the audience experience so that artistic development, marketing, all these departments that traditionally were quite separately are collaborating more and more and more and more within a particular theater. We did not talk very much about collaboration outside of a particular theater. And finally, the Act Three Model. The Act Three Model is a model where the audience is told that this play has three acts. And the third act is the audience interaction conversation moment. And that is curated in a whole variety of ways in this particular theater. And I would be remiss without saying that we talked about skimmers, swimmers and divers and that there are these three different kinds of audience members and that you can think, when you think about this kind of interactive model with your audience that you're thinking about all three of those different wishes or desires. We're on a roll. All right. Okay, I would say that we probably landed mostly on the topic of space. I'm in group E. Group E, I think focused on space a lot. But we basically sort of, we talked about the dynamic of audience to audience, sort of communion, audience to artist communion and audience to institution communion. And some of the stuff was outside of the issue of space. And I'll say that first, because mostly we talked about space. In terms of audience to institution communion, we talked about how we really, we sort of liked the recent development of getting sort of pre and maybe also post but especially pre emails reminding you of where you're going and a little conversation going. That was always an opportunity for the institution whatever voice it chose to adopt to talk to individuals that committed to seeing the show and then afterwards in whatever way they wanted to. We talked about a variation of the talk back in which before the artist is introduced, the audience is asked to talk to themselves for a while to sort of kind of change the dynamic of what the conversation became when the artist was introduced to that. But the space conversations were sort of what we mostly landed on. And one of our members talked about having a party, a post show party on stage with the actors in costume every single night with like free hooch and the whole shebang. And that was a commitment that they made to like 130 performances that they always had like sort of a celebratory event that mixed the artists and their audience. And another theater did something similar. They're like, we don't have the budget to do that with a free thing already, but they often had parties on their space and this person also had another creative role of having kind of immersive events in which in the end everybody, the cost of a drink was worked into their ticket price. So instead of being told, oh, we can go for drinks there afterwards, they were kind of led into something because they'd already paid for it. And that kind of led the audience into talking amongst themselves. We talked a lot about what the environment in a theater should and could be before, during and after so that the audience feels comfortable staying there that they feel like the second they show up, whether it's five minutes before or 20 minutes before it's an inviting and charismatic environment for them to be in with their fellow audience members with the staff of the theater so that conversations can happen. And afterwards, we talked about maybe programming things. In one space, we talked about how Steppenwolf many years ago flipped around using their big space for their sort of check-off shows and their little space for their new plays and flipping it around so that audiences were sort of taught to sort of that the space hierarchy was changed around and how that then also translated to companies that then used the smaller space for new plays afterwards that somehow the value of what space you were on got shaken up by that and that was an interesting variation on our theme. We talked a little bit about the Boston Art Center which many of us hadn't been to so that was a slightly confused conversation. But we actually hypothesized a great deal about Company One's practices which nobody really knew about so now we know more about that. And where am I in the time thing? And then we also talked about programming in a way with elements that were not necessarily theater elements but sort of created a larger cultural conversation I think within the same theater space wherever you bring it because a lot of us didn't have fixed spaces and that also being a way of sort of like widening the offerings that one could give to an audience without having that sort of direct experience. Oh, there we go. In general, we tried to think about how to make the conversation about one's experience and not about evaluation of the artistic product. Thank you. And group? Group D. My name is Kelsey. I work at Pillsbury House and Theater in Minneapolis. Our theme sort of centralized around access and issues of accessibility as sort of an extension like the initial engagement I guess. We first started off talking about child care and how theaters can be more inclusive of parents and how we can tie that into our offering at Pillsbury House we're lucky because we are located in a community center with the child care. So we don't have to worry about the licensing or insurance or any of those issues that come up. But is there a way like nationally can we partner with a national daycare to include this across theaters all over? Or is there someone else mentioned like daycares have parent nights out? So can we partner with those daycares that already are doing those things? Let's see, another big bright spot was mentioned by Akita at Emerson Arts and she told us about her play reading book club in which she organizes groups of people, I think up to 30 people to meet at a library five times. They read the play out loud to each other. Then they get a free ticket to go and see that show and then after the show they have a community meal with the artists. And these people also in addition to a free ticket they get a discount code to share with their friends so that they sort of become the ring leaders themselves. And this was also brought up that the architecture of the theater and the like third floor versus the lobby and how like the sort of the behind the scenes and the in front of house if you will. How can we break that down? And this library thing did just that by removing the architecture and taking it to the library. Someone mentioned email blasts and the intimacy of creating a relationship with your audience as yourself and not some nebulous thing. We also talked about the timeframe of engagement which ranged anywhere from two months to two years. When do you start engaging people? How would you engage them? Word of mouth was the biggest marketing reason people came. And then lastly I mentioned at Pillsbury House all of our shows are Pick Your Price which we implemented a couple of years ago. It means that we've been able to maintain the same like we still have a similar amount of revenue but we have far more sold out shows. So it was sort of an exciting way to expand your audience. Well, making it accessible at the same time. He's not, oh yeah, right? Oh, excellent, all right. Two minutes of peace. We are group F. We're ensemble artists so we thought we couldn't just do this one person. Okay. Okay, so we're gonna share some bits with enough information that you should be able to follow up using the power of Google. Okay, so some of the themes that we ended up going over is this idea of artists and audience face to face. Artists creating in collaboration with community and or informed, involved in community conversation. Artists who listen and respond to their audiences and then use that to move their work forward. And space given to audiences to voice their own thoughts. First little bit, intersection for the arts. These are arcs for the development of the play and an arc of community conversation around the themes of the play. These are separate arcs with their own integrity but they influence each other profoundly. And we saw an example with the Wilma. Particularly, they did a new play by Paula Vogel that involved development with veterans. And this was something that became not only helpful to the veterans who were involved in this process but it also became a workshopping tool for the play. Then by unintentional collaboration and cool probability poetic theater in New York also did a play based on veterans and but particularly based with veteran poets.  Maybe because of that other production, we don't know. We heard from new dramatists and the questions of how to cast an audience with the right people and the right time to help a playwright develop their play. The Goodman has a couple of projects. One is sort of a traditional, have a playwright at your table as an engagement tool for audiences but also where a playwright sits at a table with invited audience, it's a ticketed event where they read the play, one of the plays of this playwright and it also helps the playwright hear their work in a different light. Another thing that the Goodman does is that they have a community, they have an education and community engagement department that is combined that is working to bring theater outside of the building, outside of the institution and not just theater but conversation to communities that are not traditionally audiences for their theater, whether or not these folks become theater audiences in the future. We also talked a little bit about the power of an audience hearing a playwright in their own voice and how that enables you to hear their work in a profoundly different way and how can we create more opportunities for that? And we also talked about the playwright's voice in conversation with cultural artists from other media, perhaps pairing Sheila Callahan with a badass feminist painter, I don't remember what the medium was but really any badass feminist would do and what that would do to the conversation. In Singapore, there are citizen reviewers that are invited to become thought leaders and to review work, however, we had a question of whether or not in the United States with our snark culture whether this would be valuable. We heard about Sojourn doing the most amazingly titled play How to End Poverty in 90 Minutes with 99 People. You may or may not know where the audience decides how to allocate $1,000 to a poverty organization in that community. We heard about Flux, Ensemble and how they had this sort of lucky intersection with geek culture which then led them to just to create and look at how their entire structure and their entire, not just doing a play but creating a world around a play to further engage and then using this information that they received with their audiences to further see how they create all of their work going forward. We took a moment to remember Wendy Wasserstein and her beautiful example of taking students personally to the theater. Thank you. Only 17 seconds over with two people, that's not bad. Who do we have left? Have we gotten all the groups? Did we us? That seemed so fast. All right, so that is actually, we put a lot of things out into the room. We're gonna have a lot of time tomorrow to hash some of these things out so there will be some fair amount of conversation and particularly tomorrow afternoon we've set up a lot of time to talk with each other about some of these ideas. This was an incredibly generous day. Level of engagement and enthusiasm is deeply appreciated. Tori, Brad, you guys wanna say anything before we wrap up and then Jamie's gonna do logistics, so. We sent out a message earlier today to those of you who are working with either service organizations or new play development organizations or you're a funding organization but many, many of you were in trouble. So if you haven't opened up your email since you left wherever it was that you were earlier today, please do so when you get back to the hotel. Thanks. Wasn't that cryptic? Anyway, do that. Okay, so we're gonna wrap it up here and we will meet each other again for dinner at Petit Robert Central which is just a few blocks from here. Polly and Emma will lead a group over there in about five, 10 minutes. You also have time to go back to the hotel if you want to first. The restaurant is kind of in between here and the hotel. The address is on your agenda. Dinner will start around six and it's on us, so please come.


Remember the sales tax will typically be applied. This is a desktop flow chart But we're just looking at the flow here looking at the customer cycle Usually when we make a sale if there's gonna be sales tax Applicable will need to be using the invoice form or the sales receipt form we're gonna be charging whatever we charge for the actual item being sold and then we're gonna have to Bump it up for the sales tax so that we're gonna be collecting on the sales tax The sales tax in theory is not something that we are charging as the business owner But rather we are the collection agent for the tax agency and therefore we're not going to record the amount We collect for sales tax as revenue and then expense it when paid But rather we're gonna put it on the books as a payable when we make the sale And then we'll decrease the payable when we pay the sales tax so that's the general idea and the United States the sales tax is going to be a State and local tax as opposed to a federal tax So we don't have like a blanketed sales tax over the whole country It'll be dependent upon the location and could be dependent on other like where the sales took place and so on and so forth But therefore it's a little bit more complex


This hack is going to prevent you from being known as THAT KID. Back to school. It's a time period of utter, prepubescent hell, if I do say so myself.  Hacks on how to get boys or girls or whatever you're into. But a lot of you guys have been asking me questions like, how do you survive freshman year? How do you go through high school?  One video you're learning how to make a DIY journal out of your own toilet paper. The other one is how to make a pencil. Not really my type of thing, you know, but because I love you guys so much. That was like 50% sarcasm. I'm going to give you tips, hacks that actually help you get through high school or middle school or elementary school. But if you're in elementary school, why the hell are you watching me? I curse every second. Anyways, here are some back to school tips. This one is by far the biggest, most important, most easiest tip to follow. Are you ready? Study.  It's one word. It sounds so easy to be true. And guess what? It actually is easy. The one thing every teacher has taught you probably is to just study at least a little bit to help you through classes. And if you have like a B plus or an A, don't study. Who needs studying like that? You have an A. Fine. Don't over study either. I feel like every YouTuber misses this big tip that actually helps people because no one really cares about studying these days. Even 10 minutes of each subject will be enough to help you. And you don't have to be wasting those 10 minutes Snapchatting, Instagramming, Twittering, Sexting.  Just sit in the shade and watch their world burn.  Um, Frederick, could I have my weed delivered to your house for a little bit? I'm moving right now, so it's kind of hard. No, don't do it. Even if you get paid a hundred or a thousand dollars, don't do it. Ever. Just grab your glasses and watch their world burn. There's a fly in my room. There's a fly in my room.  Guess what? School isn't all about losing your virginity. Now I'm not saying you can't be in a relationship.  Now if you know me or if you don't, I'm not an extreme education pusher. But it doesn't mean I want you all to just forget about it and not care. Because life, for some reason, is built upon a few numbers and a sheet of paper that gets you into a college. So just get it over with and don't whine about it.  Another tip for you middle schoolers and high schoolers or elementary school, I don't even know anymore. Wear a condom. Don't be 13 and pregnant. Don't be 16 years and pregnant. Just don't be pregnant. Ever. While we're at it, let's just let the population die. Another tip. Do less of this. This. Especially this. Just put on pants just for that scene. Don't bother using your agenda.  That's a loud noise. It's a waste of time. You're better off remembering it in your head or asking friends. Or here's a scenario for you guys. If you have a signed homework, how about you write your homework on the next page of your signed notebook? Which just sounds too easy. Do you see the trend I'm trying to go with here? Hell, all this stuff seems too easy. Because it is. You prepubescent fuckwads. Oh, that's a phrase I want to be using from now on. How about this?  A little bit of fuckery in each class is okay. But don't dumb yourself down to get attention from other people. You can do that in your spare time with your friends or when you're out of school. This is by far my favorite hack. Don't do DIY back to school hacks. Why would you spend money on a notebook? Spend money on art supplies only to make a prettier notebook. That costs way more than just a regular notebook. It's like, come on, you're not going to be artists, okay? Just don't bother with a notebook. No one's DIY stuff is going to last them the whole year. Who wins in the end?  You can have the prettiest notebook and still fail a class.   This should be common sense by now, but it looks like every generation, we just get worse and worse. So I'm going to say this one more time to get it in your pre-pubescent head. Don't bully. Do not, I repeat, do not cheat on tests.  Same thing applies for plagiarism. And lastly, the hack that I want you to take from all of these other hacks. This one is main priority. This hack is going to prevent you from being known as that kid. Don't underline and highlight the same word or phrase. It's a student law. Follow it. Choose one or the other.   It's a waste of your lead and your highlight ink. It's almost like condiments. You can't have mustard and ketchup on fries. You gotta choose one or the other. And even if you do choose mustard on fries, that's disgusting as well. And this isn't a hack, just a tip. Make school fun. Everyone always talks about how they don't have any friends or they hate it. Try to get friends. It's so much easier and so much more fun if you have at least one friend, okay? All right, good luck in school kids. And if you enjoyed, make sure to give us your like. Leave a comment down below and ready to subscribe because it's supposed to be us every Saturday. Love you guys and everything is less than three.


Welcome to all of you, and now I'll say it, I didn't say it, I'm all to it, I'm saving it for your happy birthday. It's a pleasure to say a happy birthday to someone from my generation. But courage has been second nature to Edward Teller. From the time he left a pro-fascist anti-Jewish government in Hungary and later left Germany for the United States in 1935. Since 1941 we've been able to count him as a United States citizen. Courage, brilliance led him to seek a solution to the major problems of war and peace as he worked in the field of nuclear energy. His courage and tenacity in the face of the hostility within the scientific community made him the father of the hydrogen bomb. But for him the Soviets would likely have been first to have a nuclear monopoly and we'll never know if they would have been as restrained in its use as Dr. Teller's autopsy company has been. Dr. Teller has been outspoken in urging safety precautions for nuclear reactors. The Soviets have been working hard toward a monopoly of strategic defense even though they worked at what would have been first to the hydrogen bomb. Once more Dr. Teller had the courage, support of a defense policy while at the same time he was the leading advocate of open cooperation in science. And so you can see there's something in my favorite punch. I highly recommend it if you haven't had it before but you're here for a birthday party. Dr. Edward Teller, congratulations. For your 41st anniversary of your 39th birthday. I'm getting younger very rapidly sir and that is all due to your influence. If I may respond very briefly. I did want to say that it was not quite easy to start to work on the atomic bomb. I did it with some doubt. And the man who convinced me that I should do it was President Roosevelt talking to me and two thousand others. But I had the feeling he was talking to me and saying at the time of Hitler's invasion of Holland and Belgium that it is our responsibility to work for defense. I knew at that time that the president already had the atomic possibilities in mind. There was no way for me to misunderstand the message and I never regretted it. I had very much more at least personally much more remarkable experience to have President Reagan's personal encouragement. The same as with Roosevelt but minus two thousand other people. And so it cannot be any surprise that I continue to be dedicated to the human human approach to peace through defense and I hope through the joint pursuit of defense and disarmament because I believe that disarmament alone without defense may not be quite so good but the two together as proposed by our president is the one hope with which I remain comfortable even at the age of 41 years plus. Thank you. All right. Well, enjoy. Thank you. Yeah, show some daring on my part. We had to close the government down because we couldn't get people across town and I'm going to take off the dead David. Secretly, I'm hoping I'll be snowed in. All right. Thank you. Well, I know we, well, we've been awaiting this but going to be very pleased to have a little summary in advance. First of all, we all want to take this opportunity to thank you for your confidence and ask you to do this report. By way of a backdrop, Mr. President, the first thing that we'd like to mention to you is the changes in technology in the 80s. The concept that there's marketplaces really doesn't exist anymore. The marketplaces are put together by electronics, computers, telephones. They're put together by all the modern technologies and all that. In the course of our study, we found out there's been 300,000 of these screens that you see in Broader's offices and went on during the 80s. There's a backdrop to what happened. The other things we'd like to mention to you is certainly the market was too high by almost any standard that people used to measure markets. It was too high because it was some speculation. And also, there were some mechanical trading stack strategies, which people running funds and money used, which were pretty much price insensitive. They didn't, they didn't look to value. They looked to timing when to buy and that sort of thing so that they weren't, the market came down a third, which it did, but the speed of which it came down over five days and in one day the 19th of October was some 22% or something like that. And this is dangerous for two reasons. One, it places enormous strains on the financial system.


Hi everyone, welcome to the regular jcask project meeting. Today we have three contributors on the call, me and my name is Rekhnachev because I still use cd foundation and we have Kim Jakob and John who also joined this meeting. I'll open the agenda. Okay, this is my friend. Yes. Okay, so we have quite a usual agenda. So we will talk about news about what's going on in terms of development and then just a bunch of updates which we had like the developer tools. You may understand correctly Sladyn is not joining today. Also October first updates and Jenkins OTS, whatever, which we still need to talk about. Okay, so let's go to the agenda. We've had two releases since the previous meeting. One is 1.31 and another one is 32. So, Kim, would you like to speak briefly about them? Yeah, so 1.31, I think it was the first release with the new beta JSON schema. And also there was a fix to allow check for null to override nullable by default. That was done for the SynaCube plugin, which has a progress open to fix the SynaCube compatibility. Yeah, it was maybe 1.24 or something like that. Yeah, something like that. And the other thing is the YAML, we're now testing almost all of our demos in the demo folder. We now got integration tests for almost all of them with the configure with readme gene at roll. Of course, there's a lot of changes there. Yeah, but there are still some public requests in the queue. Yeah, there's still three or four left. I don't know his progress, but this seems to be a lot of them. Yeah, the power of hardcover first. Yes, we can seriously thanks to Victor for getting it over the line because he gave us stuff that they can demo testing 20 years ago. Yeah, regarding else, well, there was just one change in this release about logging. The rest is about documentation, about dependencies. I guess we had a regulation here new to JSON, didn't we? Yeah, I'm not sure how that passed the build. And when I went to fix it, it was failing. Yeah, so this one, right? Yeah, that one. Yeah, maybe we need to promote, did it cause issues on the user side? Yes, it did. Yeah, there was a JSON class that got pulled in by configuration as code. That caused problems at runtime. Yeah, I'll probably drag it to the bug fix at least one. Yeah, but yeah, I still don't understand why that passed the poor request and master build and whatnot, but failed later. One due to binary conflicts. Yeah. Okay, so something quite good. Thank you. And yeah, regarding the rest, we have some progress regarding build materials. So now a lot of dependencies that should be managed by build materials for testing. So we don't manage plug-in dependencies on our own. And now we just picked up the new version of dependencies. And yeah, actually speaking of that, there is a repository Jenkins CI bomb. G-Cask is now a part of that. So if you do any kind of test automation with G-Cask, if you have an integrated set of plugins, you can use this repository build of materials in order to define the dependencies, for example, and then you get the updated set of plugins. G-Cask is now a part of this set. There should be a cool request to update to the recent version, I guess. So the build is already integrated. Yeah, bomb configuration has got from 1.30 to 1.32. And if I understand correctly, this is a tool which helped us to discover this regression because 1.31 was failing. So yeah, I hope it's not positive. So anything else about recent releases? And 1.32, is there anything else? I guess now apart from dependency and some documentation fixes, I don't think there is a lot of things there. Yeah, just a lot of long-level change. Yeah, this one definitely works with it. Yeah, we have a blog post from Slotting in the Flight, which will describe how to use the new schema. But even now there should be documentation within G-Cask repository. So those features. And yeah, here's a JSON schema which basically describes... Yeah, looks like it needs some SQDOT fixes up. Yeah, so I'll follow up with Slotting on that. But yeah, there are some guidelines and we hope that there will be some description how to use in ADS soon. Because yeah, the second piece of the project is to actually support ADS like Visual Studio Code. Yeah, there's a case study blog post that's pending that has instructions. We don't need to come in here as well. So yeah, I'll just take it from here. So okay, maybe we should just finish this part of that. So yeah, this one is completed, at least more or less. That's it, one. And there was another blog post from Slotting about just one report. Good news that we now really generate a schema which is consumable by users. Okay, let's go back to the agenda. So another thing we've had over recent weeks is Octoberfest. So we just started in the Jenkins project and it started pretty well. It's all across the organization. We had almost 40 cross-time contributors who joined to participate in Octoberfest. We had hundreds of cool requests and as you have seen in the study to release, Jenkins is not an exception. So Jenkins also got quite a number of contributions related to Octoberfest and actually Jenkins is a featured project there. So if you go to Jenkins events, Octoberfest, there is a feature of projects and there is a JCASC. And basically we welcome you to contribute to the plugin itself, to plugin compatibility in other components. And I believe we still have some new different issues. I definitely started running out of new different issues in other components. And yeah, it looks like here we also need to do something. So we basically don't have ones. So if somebody has any ideas in mind, what we could do. I thought we had the API docs while I was there as well. Maybe it's just not new different. Yeah. So it's Octoberfest, but it's not new different. Well, yes, there was a comment from somebody also in this Octoberfest part, but yes, there are no cool requests. So what we really need to do is to actually mark more issues as Octoberfest because it helps us to bring in more contributions. If we have good first issues, it would be ideal. But yeah, I would say that Octoberfest is a pretty efficient way to facilitate contributions. For example, I just spent one hour enjoying this follow around from Monday to file some issues and to teach existing ones. And just two days later, we have something like that. So one, two, three, and there is another fourth pull request which is in the fight. So it's a pretty good opportunity and if we can use it in Jcast, it would be nice. So if anybody is watching this call, please do so. Even if there is no ticket, suggest submit your pull requests, submit your demos, and it will be already a great contribution. Okay, any questions, comments about Octoberfest? Okay, regarding plugin compatibility, so again, we don't have a full list of changes, but we definitely have two important plugins which got Jcast compatibility recently. So first one, script security plugin, where we got, yeah, all right, it's an VK, I guess. I'll create a ticket for that. But here, there should be change lock on the bottom and here we have Jcast compatibility released on September 13th. Basically, now you can configure white lease for pipeline, including class loading, white lease, method white lease, directed from Jcast configuration as well. And yeah, it's a pretty good enhancement if you really need that, the way over there, but well, at least you can configure the things now. And the second plugin which got updated is script client plugin. So the issue we had there, but it wasn't possible to configure custom Git providers like JGit. And now there is a pull request which it supports all that. So it was contributed by Bobby Sandel. It's already released. So if you rely on JGit, if you don't want to use Git select, then yeah, you'll get a support for that right now. Am I missing any plugins in the list? The CloudBees Jenkins Advisor has a pull request and fly it. Yeah, I have it in the list there, low 10 fixes. Yeah, oh yeah. I think there was another one. Yeah, audit trail. It just looks a bit recent here. So audit trail is plugin, which adds some diagnostic logs for user actions and admin actions within the system, etc. So there is a pull request back here to JGas compatibility. Yeah, so this is a case where you probably use fill of materials. Probably I'll just comment right away. Yeah, I already added the same comment to the CloudBees one. And just because it helps. Yeah, I know of at least two other in-flight ones, but I can't remember if there are any other merged ones. Yeah, actually it's a good topic because right now it's really difficult to find. But did you get the GitHub one? Not yet. Okay, the GitHub one was merged yesterday. Okay, merged, but not released and hence I missed a bit. Yeah, I think it's just merged. Yeah, provisionally it was released. I guess that's cause yeah, it was released. So you're wanting to get, you still need to enable release draft within this repository. So that's why I missed a bit. Okay, just a second, let's find it. NPR 210 is the top one. Yeah. Okay, you've enabled release drafter. I enabled the release drafter, but we have a bug in the release drafter. So maybe it's just not working for the repository. Okay. Just second, we should come back to that because it's important. So yeah, it's still pending because it's not released. There's an error. Is there? Oh, right, sorry. So going back to release drafter, we have some plugins like GitHub plugin and Gradle plugins. So I'm not sure about GitHub plugin, but for Gradle plugin, so Stefan Wolf has tried to adopt the release drafter there. Basically, it didn't work. We need some investigation. We need some adoption of GitHub actions for that because one big issue with release drafter update that you didn't have access to logs of release drafter and you basically have no idea what failed. So here we have GitHub action for release drafter. And here you can see that it fails because you can't read proper plugin for entity. I reported this issue to release drafter. So it's somewhere here, but it hasn't been fixed yet. And I'm not sure what would be the right fix. Yeah, this one. So I'm not the only one hitting it. I'll probably apply just a quick hack to make it possible. But right now some plugins don't really work with release drafter. We have at least two components in Jenkins where it fails. Okay. So there it was related to the rework something. So there was a reward to support some changes. Now, welcome to JavaScript. So we basically have no other popular request because the payload for this incident happened correctly. It doesn't seem to be a critical issue to just put unknown here for what it was. We will still need to go through the release cycle. So I hope to fix it to forget how plugin and the regular because it's really important. Okay. Regarding color, I'm going with development. So we'll just put release drafter issues here. One thing I consider is to actually have a fore call for release drafter and using it as a backup action so that we can do our fixes quickly in the Jenkins project. So maybe I'll move the g-cast to this approach as well. Okay. So going back to ongoing development. So we still have systematic permission to request the Jenkins port. So basically the issue here is lack of reviews and we need to do something about it. I tested it locally. It works, but there are so many implications of this change. I'm not 100% sure. And actually I lean towards saying that it's a better feature. So maybe adding some feature flak or whatever so that we do not enable it by default because otherwise maybe it's not on the security issues in edge cases. What do you think about this team? It wouldn't be too hard. You just should be able to just have it fall back to admin if the feature is not enabled. Exactly. So one of the options here is, so basically we have this system. The other thing is that someone has to enable it for it to go on anyway. And we have a plugin for that called extended read permission plugin. So I wonder whether we could do it here. So one thing that there is already agreement to have a major release for the plugin. So we are both cutting 3.0. Right now it manages extended job read permission. So maybe we could integrate extended system read permission right there. Or maybe to your new plugin. Yeah, it doesn't really matter. Actually maybe, yeah, I'm not sure what would be the best approach because here we have this plugin and we have... Yeah, it's in my, I haven't got it hosted because it doesn't have any views or the call progress merged. Okay. So yeah, basically we could integrate it into this extended read permission because it sounds like a good destination. And again, we are going through the incoming major release anyway. So I think it would be a good option. Yeah, I can do that. I need to talk a bit with the usebot yeast, but... Okay, so something like that. So basically how extended the plugin works. A long time it was advertised as the smallest plugin ever in Jenkins. But basically it's still the smallest plugin ever. So if system property is not set, then the permission is enabled. So we could do same for a new permission. So basically I have system property, maybe inverse the system property so that it's disabled by default. And then we can use the reflection and whatever to enable it and still retain compatibility with other versions. Yeah, there wouldn't be too hard. So if you could move this code... I can talk to Baptiste and then we could see whether we could integrate it in such way. Yeah, yeah, and then I can just get rid of my plugin and just move it there as well. Yeah, it has a convenient generic name for that. So yeah, I think this one we can move forward this approach. Because yeah, well, it will address security concerns from this security team, or at least it will make them less impactful if something goes south. Because this plugin has a relatively low installation number and even there we can slither test it as an experimental feature. Yeah, okay. So regardless of the integration test and there must be something we already discussed. So Victor Martinez already indicated the future number of full requests. We still have some. So what do we have? Dependable makes the things even more complicated in the list. Okay, so we have GitHub demo, which is approved. So maybe if somebody else could review it, we could just lend it. We have some demo which doesn't seem to pass CI now. Yeah, it's because of that massive dependency list or Flaky CI, one of the two. Yeah, actually, maybe we should start the work now integration test because this approach is having a single file to the world. It's not going to last long. Yeah, I hope that the bomb would help quite a lot with that. But yeah, actually, what I'm thinking and the Jenkins bomb as well, once that's out should hopefully help even more. Yeah, Jenkins bomb as well. What I'm thinking that we actually have links rather than other income and credits. And actually, it includes some improvements for the vanilla image. So one of the things that vanilla image now uses the same deal of materials for player games. So what we could do is to actually use vanilla image and just to add additional plugins because what we need from Jenkins file runner is to basically verify our configuration. So if, oh no, there are unit tests. So yeah, it's more complicated. But we could definitely update the rule to just invoke Jenkins file runner and to ensure that the configuration passes there. And in such case, we can start unrevenantly dependencies club. But yeah, maybe it's a moonshot at the moment. I'm not sure. What do you think, Tim? Do we need to worry about that right now? I don't think we need to worry about it right now. They seem stable, unless it's that the actual Jenkins CI having an issue. Yeah, you have actions are working well. So you have actions do not verify windows for us right now, right? I'm not sure. If you get the poor request, it shows, I think. Here we are, actually we run on windows. Yeah. So yeah, I don't know if Jenkins CI runs on windows, but my RG can see I don't think RG can see I does. So I'm not too flaky and too slow. Yeah, we disabled Windows CI here. So yeah, I think that you can just rely on you have actions for now. Yeah, good to have the coverage there. So you don't, so that when you release, you don't have problems. I don't touch windows, but that's right. So do it. So VS Code plugin for Jenkins is something in development by Sladyan. By the way, do we have a GitHub link for that? Yeah, Sladyan said he invited me, but I lost the link for sure. Yeah, I guess it's somewhere here. Yeah, it'll just be somewhere, yeah. Yeah, there's GitHub issues for those. Yeah, we definitely want to host it. I think he was just trying to get something somewhat working first, but it would be good if we had it hosted, we could have all the issues in the one project in the organization. Currently, the issues are split in two places. We can have issues. We can use Jenkins. These are after configuration. We can use other bits like dependable. So yeah, dependable for JavaScript samples now. Yeah, there's a there's an issue to get it hosted. It just wasn't a huge priority. I kind of wanted to have something working before hosting, but... Okay, anyway, it would be nice. And it's definitely nice to get it hosted before it goes to the VS Code map, please. Because otherwise, it will be a problem. Okay, yeah. So, yeah, anything else in active development now? So does the SonarCube plugin has a progress to fix compatibility? Build monitor plugin has one as well. Hopefully get the build water on the merge zone. So, I'm not sure if we're having any build monitor. And the build monitor is in GenMolec. It's not hosted in Jenkins. Yeah, I thought we used... Okay, I was wrong. At least one, right? I was just about to say it all. Yeah, yeah, analog. Why do you host it in Jenkins? It's the top issue, unlike it have issues. Okay, I need to come in there because without hosting it on Jenkins GitHub, you cannot get the documentation published on the plugin site with more justification for the creation. I'm not sure whether it's a feature or bug, but right now we support on the agent and CI work. It was explicitly done in that way, I don't... Well, we discussed that this use case is spinning. And most of us agrees that we don't want to worry about it. Yeah. Well, it was just about a narrow security scope, I guess. Yeah. Well, yeah, when it's within Jenkins, your organization, at least we as Jenkins software needs, no, for sure, if we can influence the change. Okay. So, let's one. What was the reason not to use, not move? Oh. Historical, cloud beast, div, cloud, bitter. Okay. Okay. So, hopefully, we'll get it moved because then it will simplify the things. This plugin is quite popular. Okay. So, this is what Daniel is doing, I believe. No. Yeah. So, the jkask one says jkask in the title. I put it in the chat. So, one thing that this plugin, we will definitely need to move, not move. Yeah. It's a transfer. So, I'll just monitor that, but yeah, I think we can get it over the line. So, are there any other fixes for plugins which need attention? No, there was a regression and build failure analyzer from the jkask support. Yeah. But, it was fixed by board B, but it's not here at this. It's got a poor request for it. Yeah, this one. Okay, I guess it's going to end soon. Yeah. I think it's pending some tests. Actually, what I was thinking about plugin compatibility. So, before that, in Jenkins project, we had Java 11 support, which was helping contributors is getting the jkask. So, Java 11 connectivity fixes over the line. Will it make flow to have similar team for jkask? Yeah, makes sense. Have a public team that people can tag as well. Currently, we quite often get tagged individually. I can create one if you're fine. Yeah. Yeah. So, if both of us agree that we wanted, then I can create it. Yeah. John, would you like to join? Yeah, sure. And I will also talk with somebody from Cogniz. So, maybe they could also join. Yeah, because, yeah, one thing, it's about corporate, but yeah, maybe it's interesting to some, which I'll see that obviously now offers a jkask plugin as a tier two. I mean, the rest is available for the plugin. So, maybe we will get some contribution there from that side. Okay. So, developer tools, I believe we discussed that. October 1st, well, basically I talked about that already. One additional thing that we have meetups. So, for example, there will be meetups tomorrow in Switzerland. There will be two meetups next week in Munich. There will be a meetups in St. Petersburg in other cities. So, if somebody wants to organize a specific jkask hackathon, it is also because what I do, basically I put a jkask topic to every hackathon. So, that if everybody wants to work on that, it's more than welcome. So, if somebody wants to organize anything local, it should be really cool. Okay. So, we are slowly running out of time. And we want to discuss this wish list. I've got a laven. One minute. Okay. John, any updates from you? No, just they float basically. So, if there is nothing else to discuss, I think you can pull down the meeting. Maybe one quick update regarding ongoing development. So, two days ago, I started hacking support of external credential definitions. So, right now, we can define secrets as, well, there are ways to discuss them, to define them from vault, from Docker, from Kubernetes, source environment variables. But there is also a way to just define them right in the configuration file. In an encrypted way or in plaintiffs, if you feel brave, but the problem that encryption right now works on the, for the same instance. So, basically, should be here. Configure expert story, etc. The problem that secrets encrypted of four single instance. What I was thinking to do is to support the external encryption. So, for example, like we have here a date and whatever for Jenkins, we have Kubernetes secrets. Basically, it's a way to pass and code the secrets here. So, I was about doing the same project. So having to pass and code it secret. And then in a configuration or score context, you can pass, pass to the private key, which detects it. And then you can basically share these configurations between instances. And as long as you provide a private key for the encryption, you can use the same file on multiple instances. Something that I would like to share later. Very interesting. Yeah, but it's rather heads up. I haven't got to it yet. Well, I got it working. I need to have a prototype solution. Yeah, cool. Okay, so team had to go. And yeah, I think it's time to close down the meeting. Yeah. Yeah, so thanks. Long agenda today. Yeah, right. So yeah, next time we should cut it short somehow. Probably just buy somebody else's one or anything. Okay. Okay. Thanks everyone for watching. And again, all contributions are welcome. Well, it's not just some info requests. And we will try to help them learn it. See you. Bye.


Dr. Sandesh Dragu, cardiologist at Manipal Hospital, Whitefield, Bangalore. Recent demise of Raj Kaushal has shown not only the film industry, but youngsters across the country. Cardiac arrest is a silent killer. Cardiac arrest is a condition wherein the heart stops functioning all of a sudden and it is one of the most common cause of death worldwide. Most of the times, cardiac arrest is confused with heart attack. Heart attack happens because of blockage in the arteries which supply blood flow to the heart and restoration of the blood flow helps in recovery of the heart muscle. Cardiac arrest happens because of electrical disturbances in the heart. Heart attack can cause cardiac arrest, but cardiac arrest can happen in other conditions as well. It can happen in a structurally normal heart also, but most of the times it happens in a pre-existing heart problem where somebody had a previous heart attack, some previous valvular problem or baby birth defects. There are certain things we need to know about sudden cardiac arrest. One is that heart does not stop all of a sudden. Prior to stopping it beats abnormally rapidly and covertly for almost 3-5 minutes. This is called ventricular tachycardia or ventricular fibrillation. It gives a window of opportunity wherein if shock is delivered at this time, cardiac arrest can be prevented. There are certain things we need to know about sudden cardiac arrest. One is that heart does not stop just like that. In the 3-5 minutes before it stops, it usually beats very rapidly and covertly at a rate of almost 3-5 to 400 beats per minute and then it stops. So these 3-5 minutes gives us a window of opportunity to save the person. If you can deliver a shock in these 3-5 minutes, the person survives. Cardiac arrest can be prevented otherwise he dies. So this is important and a common problem. So if the best way to prevent cardiac arrest is by implanting a device called ICD, Implantable Cardioverter Defibrillator which is a small device which is implanted below the chest wall. It can automatically sense the abnormal heartbeat and give shock or appropriate therapy as required. So most important thing is how to recognize, identify these people who are at risk of sudden cardiac arrest. The risk factors usually what we look for are low pumping of the heart, abnormal heart rhythms called ventricular, tachycardia, ventricular fibrillation, recorded on a holed up monitor. If you can give a shock in those 3 minutes, he leaves if not he dies. So this is an important and common problem and it can be prevented by implanting a device called ICD, Implantable Cardioverter Defibrillator. It's a small device which is usually implanted below the chest wall and it automatically senses the abnormal rhythm and gives a shock or appropriate therapy as required. The most important thing is how to recognize these patients who are at risk of sudden cardiac death and who can be given a benefit of ICD. The risk factors are like low pumping of the heart, abnormal heart rhythms which is recorded on a holed up monitoring. And history of single, where in the person loses consciousness, collapses all of a sudden and regains complete consciousness. If these risk factors are there, they can be considered evaluated for ICD implantation. Suppose with these risk factors, so if a person with risk factor for sudden cardiac arrest is evaluated and implanted with an ICD, we actually can reduce the risk of sudden cardiac death by 49% when compared to an individual who is not implanted with ICD.


Hey everybody. My name is TJ Vantol and along with me, as we'll be up here in a minute, is Zach Fields in the front row. We work for a company called Blues. We'll talk a little bit about what we do at Blues here throughout this talk, but this talk is about a journey and specifically a journey from Arduino to RTOS. Now to explain what we mean by this, I want to talk a little bit about my own personal journey. I am still relatively new to the world of embedded to the world of IoT and everybody here in this room either currently or before was in that role as well, where you're first getting into this world and you know that this world is complicated. You are inundated with different boards, different languages, different ecosystems, different frameworks.  You're looking for really simple guidance, mantras, truisms, anything that you can trust. And one of them that you'll find over and over throughout this world is that for beginners or for people that really don't have any idea what they're doing, your happy path to getting started are platforms like Arduino and the Raspberry Pi. And then conversely, once you really are an expert, once you know absolutely what you're doing, then you're ready for the hardcore stuff, right? You can bust out an RTOS, you're ready for serious stuff, you're ready to actually build and deploy serious applications out into the field. Now you'll see this sort of advice repeated all sorts, basically online in a number of different places. If you just do a very naive Google search for getting started with the IoT, you'll find this Udemy course that very much lays out. All right, you're on the happy path. You're going to get started with Raspberry Pi and Arduino. Microsoft's IoT for Beginners Guide, which is really excellent, but it is, again, very focused about Arduino and Raspberry Pi. If you are a beginner that has the misfortune of Googling how to get started with an RTOS, I just checked a couple days ago. This is the first result.  It talks about schedule or just talks about events management. It makes you think as a beginner, as someone knew that this is a scary world that is very overwhelming and something that you really probably don't want to get involved with at least at first. This talk is, oh, actually, I also, by the way, asked our future robot overlords because I was curious what they had to say about it. And they also concurred that, yeah, Arduino is definitely for beginners and RTOS is not. This talk, though, is about showing that throughout our experience, through my experience, through Zach's experience, we found that things aren't quite so simple and we want to dispel a couple of different myths. The first is that platforms like Arduino, like the Pi, aren't only for beginners. You actually can use them to build real and serious stuff in certain situations. And more importantly, that it is a myth that these RTOS platforms are really impossibly complex and only for the serious people building serious stuff. And really, the big thing that has helped change this is Zephyr, because Zephyr occupies an interesting middle ground where it is more approachable for people that are getting started and yet maintains the ability to build more complex and real things for people and for applications that need that behavior. What we hope you get out of this talk is, first of all, just a little more confidence that using something like Zephyr is possible and we're going to give you some guidance for what we feel is the best path forward. We'll talk about when an RTOS is a good fit and when we do think that it's overkill. And you'll hear of some of the pros and cons of Zephyr in action. We've done a lot of work with bootstrapping our own Zephyr projects and we'll share some of the knowledge we've gained through doing that. Now to give you a little bit of a background and why we care or why we're involved or why you should maybe listen to us at all, I've got to tell you a little bit about what we do. So we work for a company called Blues. And at Blues, we try to make development easy for all of you. We want to help, we pride ourselves on making all of the IoT, the embedded experience, as easy as possible. The primary way we do that is we make a product called the Notecard. This guy up here hopefully can get a sense of how big that is compared to my hand. The Notecard is a low power system on module. It's really a, it helps you with global cellular and also GPS. The Notecard's claim to fame is that it comes with 500 megs of cell data in 10 years of service, meaning you don't have to worry about signing up for a cell provider or have any sort of subscription fees. The Notecard has a JSON API, so again, we're trying to make things easier. Instead of having you work with a cellular modem directly, you instead send JSON to the Notecard over serial or I squared C. We work with a number of different cellular platforms. And importantly for this talk, we make a bunch of open source firmware libraries for working with the Notecard in environments like the Pi and Python or Arduino, C and Zephyr. If you want an easy way to think about the Notecard, you can think of it as a device to cloud data pump. So the Notecard knows how to talk to a secure cloud backend that we call Note Hub out of the box. And it just provides a really easy way for you to work with cellular data. If you want an even more reductive way of thinking about the Notecard, it's really a simple way that you can just bolt on a Notecard onto any project and start working with cellular data as easy as possible. Now the Notecard has an M2 edge connector, this guy on the bottom here. And you can either spin your own board around the Notecard or we make a series of development boards that we call No Carriers. The No Carriers are designed to be easy to plop in a Notecard and start using it alongside other developer conveniences. So you'll see some of these have JST connectors for things like battery and solar, quick connectors for working with quick peripherals, USB for power. We have integrations into the Spark Fund Microbot ecosystem or as well as the Raspberry Pi. But the sort of overarching thread is these are just development boards where we really want to, to our core mission of making things easy, want you to be able to get something from our store, plug it in, start working with data, start sending data over cellular as quickly as possible. Now over the last year, a big initiative of ours has been to take this one step further and make a series of accelerators. So if you're the multitasking type of person, you can even start to check these out. If you just Google blues, accelerators or go to blues.dev slash accelerators, you can check these out.  So it really is designed to be a project that you can download, start using and get up and running within honestly a handful of minutes once you have the hardware. All the instructions are open source. We offer open source firmware and in some cases for some of these projects open source reference web applications as well. It really is kind of a starter kit to get you up and running fast. Now this is relevant to this whole discussion of Arduino and Zephyr because although we want to be like a multi-purpose, we want to work for everyone, right? We want everybody to be able to use the note card. We also can't create a sample for every development platform out there. We could lock Zephyr in the basement and tell them we need a Pi version of all these, a Zephyr version, a free RTOS version, but then we'd never see Zephyr again and that really wouldn't be fun, right? So at some point we have to make some decisions and that's where sort of our research that's played into this talk comes in because we've built some of these accelerators with Arduino, we've built some with Zephyr, we've built some with some other platforms as well and so some of the guidance that we're offering from this talk comes from this experimentation because again remember that our goal at the end of this is to produce something that's easy for all of you to use. We want you to be successful. We want you to like blues and have a happy experience from going through all of this. So for this demo we're going to focus on just one of these accelerators, a temperature and humidity monitor. The main reason we're focusing on this one is because this is one where we have firmware that we built for this project in both Arduino and Zephyr. So it's great because we could do a little bit of comparison and contrasting. The firmware for each does the exact same thing. It's a pretty simple project as its name implies it monitors temperature and humidity but it has some more advanced functionality where you can set thresholds in the cloud if you want to get say like alerts or alarms if the temperature exceeds or goes below a certain value same with the humidity. You can do things like manage fleet of devices and manage these values for these alarms across large fleets and you can also get alarms created related to voltage like low power USB power those things as well. The hardware for this project looks a little something like this. I have it on my desk up here monitoring the the temperature up here but it's a little bit easier up to see up here. This is what we offer and what we call our blue starter kit. So this is the note card. This is one of our note carriers that we call the note carrier F. The F is for feather because it has this is no carrier that has feather compatible header sockets and this is a microcontroller we make called the swan microcontroller that has an STM32 chip on board. The microcontroller can accept Arduino firmware, Zephyr firmware, Circuit Python so it gives us some options for what we want to build and for this option or for this project this is going to be the MCU that's going to hold the firmware that we're going to flash to and that's going to drive this application. And I want to show you a little bit of what this app looks like. So this is the Arduino firmware. This is something later on this is all open source on GitHub and whatnot but I'm just going to point out a couple of quick things. So the core of any Arduino app is loop and setup and I'm just going to quickly go into each. So if I go down to setup the core of setting up the note card is in here. When you set up a note card the main thing we need is just a unique identifier from our cloud service so the note card knows how to speak to note hub out of the box we just essentially need to know what project you set up to send that data into and then we also need you to configure different things about the note card like how often you want to sync data so there's two different modes the note card operates in one is continuous if you're not really concerned about battery power and you want data flowing as fast as possible you can put the note card in continuous mode but for something like a temperature in humidity monitor you probably don't need to be taking continuous readings more likely you were taking periodic readings and so the note card will idle in a low power state which we'll use about eight micro amps while idle and then at an interval you configure which is what this outbound flag is it'll fire up the cellular modem it'll sync and reconcile everything with the cloud. Now all of this is built using our Arduino SDK for our for Arduino so these J methods are just some conveniences for working with JSON because the note card speaks JSON under the hood this is just formatting up a JSON request through hub.set to do the configuration for this note card. If I go a little further down that's our setup the actual loop for this project is also pretty simple there's a little bit of a time gate to set an interval for how often you want to take sensor readings and once you've read that interval or passed that interval we're going to take a sensor reading from the bme280 sensor so there's a bme280 sensor connected through a quick cable which is going to take a reading and then there's a call here to publish the system status which is up here which is going to do one additional note card call in this case a note.add note.add takes an arbitrary JSON body oh this is the the sync one here's my body up here where it's going to take the temperature and humidity reading and send that request to the note card which then the note card is going to sync up to the cloud at the interval that you can figure. I think this is a little bit easier to see if you just look at the readings coming through in our cloud service so if I head back here and open our cloud app note hub and I go ahead and refresh so we can see the latest readings coming in so each of these sensor readings I have this configured to send data in like every two or three minutes because this is a demo in reality you'd probably have your monitor taking readings every hour but we want to see data flowing through fairly quickly and if I look in my data in my body we can see the temperature in this conference room which is actually kind of much colder than it was out over by the booth. Now the final piece of this equation with note hub just to give you the full picture of what an accelerator looks like from here you can take your data in note hub and route it to wherever you want it to go so we have a number of preconfigured routes for places like different big clouds like AWS Azure you can send it to your own server you can send alerts through Twilio you can send MQT there's a lot of different options you can take for this project we just have a quick dashboard set up through a platform we like using called data cake and the cool thing about data cake is it just lets you set up really simple dashboards so that the full data flow becomes your collecting data off the note card it's being synced at a regular interval up to note hub note hub then routes that data up to this dashboard so you have a really simple way of getting data flow in your project to build a really simple accelerator and really that's about it like I said if you look at GitHub you can see the full source code for this Arduino app and to bring this back around to the points we are making in this talk if I bring this back up this is really one example of a project that because it's relatively simple is totally yet totally manageable to do in Arduino we've seen our customers and our users use this sort of app completely fine because there's no real complexity going on here that's making this app particularly hard to use that doesn't mean though that Arduino is perfect there are definitely some limitations that we have hit in while building some of these and to talk about those limitations I'm going to bring up my co-worker and our local Zephyr expert Zach Fields so Zach sort of spearheaded the Zephyr development of our note card firmware and has also been involved in some of our accelerators so Zach I'm going to literally pass the baton over to you to take it from there all right thank you TJ hi I'm Zach I hope that I can fill the billing I was just given there so to give you I'm a developer of blues I've been working there for three years and I've worn a bunch of hats during that time recently I'm working on the developer experience and just like TJ said I've been working a lot with Zephyr and specifically trying to make it easy for the note card to talk to Zephyr with no real trouble beyond just a simple API calls that you would be used to doing in Arduino so the and so today I'm here basically to break down what the difference was to Zephyr to maybe demystify it a little bit and show you that it's not really a scary leap to go from Arduino on to Zephyr and it can be done really simply but then you get an enormous benefit as complexity comes into your application so before I get into that I'll give you a brief history about myself my my journey that starts all the way back about 10 years ago in Microsoft I was on the Windows embedded team that did Windows IoT and that was really kind of a code name for a group of us who were getting together to try to understand why Arduino was so popular and to skin Windows 32 with the Arduino API app to lure in people to kind of seize all the excitement around Arduino from there Windows 32 is sort of deprecated in favor of Windows 10 which everybody in my department hated and Windows 10 has its own unique .net style APIs and we were really committed to Arduino so we ported everything over to Windows remote IoT and then we even had Massimo Banzi himself come and lay hands on the code and give it its blessing or his blessing so that we were official in the maker world so I'm saying all that to tell you that like I am truly a believer in Arduino and I didn't come up here to bash on it or tell you why it's lame and you need to be on Zephyr it is a truly powerful system that has an insane amount of value all right so quickly just kind of recap what TJ just told you and and then we'll move into where that starts to run into the edges of its usefulness so first off Arduino as we know is fast and easy it has a completely intuitive API that is simple to use and it has a million libraries that you can just almost plug in anything and get it running in no time it's hard to compete with that it's powerful you can literally I feel like literally do anything with an Arduino and there's no real stopping you doing one specific task it's only when the task grows that things start to become a little harder to wrap your hands around it has broad support that's another thing that's a huge benefit to Arduino it runs on almost any silicon even windows 32 just like I told you and it has an enormous community this is this was the reason Microsoft even cared they were five million strong almost 10 years ago it's just an enormous group of people okay but the reality is Arduino has a dark side if you've ever tried debugging you have a really disjoint experience for the first I would say 10 years there was no debugging Arduino IDE did not support debugging at all out of the box and so you were left to print out statements which is useful but whenever you have a problem deep down in your app it is almost impossible to cipher it out and now we're at Arduino to point whatever and they they do have debugging now but it's for a selection of their boards not even all of them they have to be genuine Arduino for them to work at all and it and some of the old AVR boards just don't get debugging and certainly expressive does not get it to my knowledge nor does stm 32 or any of the things I've been working on lately there are ways around this the vs code extension for Arduino allows you to use the plumbing inside of vs code which you then can set up debugging but that is not a simple task and you really need to understand visual studio quite deeply to be able to set up this type of debugging and then finally there is platform IO that has somewhat come to the rescue and they put an abstraction over it and has made it reasonable but when it fails it's magical and it fails catastrophically another problem is a good benefit and a problem a double-edged sword if you will is the Arduino library system it's powerful but also really inconsistent so you have multiple authors that makes it the quality of the library is really the quality of the coder that wrote it and so when you have someone who might have been their first year of university and they just wrote up a quick library and stuck it out there it may not be something you want to go to production with but you know on the contrary you could have someone from Bosch writing a driver and it's completely perfect you don't really know also another problem whenever you're trying to get into production is each library has a unique license this is a sneaky one and you don't really think about it when you're writing up that app but you may be forced to open everything whenever you need to keep something closed so that you can make money and also there is no guarantee of portability people generally write a library for themselves for their hardware and so while it does tend to work across a lot of them it won't play with everything and then finally probably I would think the nail in the coffin for Arduino in a professional setting is that the complex code any complex code is not particularly portable or maintainable the Arduino API is rather small so the officially supported stuff fits on a single webpage that you can look at all in one screen and that's your digital read digital write analog read analog write pin mode etc those are the things that are portable across everything but whenever you start to get into radios or you start to talk about threading these are non-existent and people automatically drop down into the howl of whatever respective board that they're working on so let's say you started a project on an expressive but then you ran into difficulty and then you decided you need to go to st so that you have some facilities that maybe weren't there on the expressive chip well now you're going to be rewriting a large portion of your code because it's just simply not portable this is where zephyr comes in to save the day so what you've got is zephyr is an RTOS I think I've got it written right here yes they support and so you get all the great things about an RTOS you have native threading and timer support you're not relying on somebody's kernel that they effectively wrote as an Arduino library uh testing is a first class citizen in art sorry in zephyr so they have the twister framework and all of their libraries have testing and the testing is not not a second class system but it's right there and it's something that you'll need whenever you really want to move into production also support for debugging this is handled by their west build system you can debug and then you have I mean exactly what you need to do professional development and you have to be able to do step debugging also several of the sensor libraries are native so you don't have to rewrite them and I mean several of the Arduino ones that is so like for example the BME that we're using today has a native zephyr implementation so this isn't just something that somebody's thrown together like Adafruit or SparkFun or whomever this is a real driver that is supported by zephyr and has tests running to prove it out at all times so it's an incredible difference again when you're in a production environment that goes well beyond a prototype and so with all that awesomeness you're expecting you're waiting for the other shoe to drop and you want to know okay so then why would we all not be using that or why it has to be hard to get all of this benefit well I'm going to kind of walk you through that and then kind of show you that maybe that's not true at least not as much as you think it probably is so first off the basic looping we all know the empty Arduino sketch there setup and loop super simple obviously that can be immediately replicated in zephyr as a main and an infinite while loop so anything above the while is set up and inside the while is loop and I will show you that in an actual like well in a sketch soon okay so that's not scary that's actually I would call that identical really there's nothing different there okay so let's talk about blinky let's let's dial it up a notch so what we have here is on the Arduino side we have the standard pin mode we're going to set it to an output and we've got an alias for the led and that's just part of Arduino and then we go into the loop we turn it on we wait we turn it off we wait we turn it on we wait you get it all right and so now we hop over to zephyr ignore the first line it's ugly and so just kind of blank that out the screen right now hold your hand over it and then let's just look at the main loop really quick all right so I see something called GPIO pin configure that sounds a lot like pin mode and I see something called led so that's not scary and GPIO output active okay I can put all that together that that's almost exactly the pin mode instruction and then when I look down in the while I'm going to see pin toggle and that's kind of cool because the RTOS is taking care of remembering the state so that you don't need to keep that in your app and or you don't need to specifically say it's high or low you just want it the opposite of what it was so now we just have toggle and sleep for a little bit and then flip and flop okay this is great now let's get ugly and talk about that first line so what I see if there's a bunch of gross stuff I actually hate macros as soon as I see them I start vomiting in my mouth I need like a protector over my keyboard uh so the the let's go to the innermost part of the parentheses and I've got a dt alias led zero that's device tree is dt and so the device tree is magical and we're going to talk about that on the next slide uh but the alias is for led zero so okay that's led built in still not scary and then I see GPIO device tree spec get led and it's a GPIO spec so we're going to pick those up and then we just call that whole thing led and then now we're going to use it below as led so that wasn't too bad but we'll keep moving okay so the device tree in zephyr's own words they use device tree to describe the hardware available on its supported boards as well as the hard board sorry the hardware's initial configuration so what does that exactly mean for you well this is what the device tree looks like when it's printed out it's really gross and huge but you don't actually have to ever touch that and the really cool thing about it is they have device tree alias files so if you don't like the way the board is initialized then you can just alias over the handful of pins that you actually care about and give them a default position or a different mode of operation whether that's i squared c or GPIO your choice so really it's magical you don't write it and it's what abstracts every board away and allows the actual logic of the RTOS to run really deep unlike Arduino which is superficial and very thin so this is why it's so portable across so many different boards because the device tree abstracts the board by giving it a physical description and files that you do not have to maintain and then on top of that you have an entire runtime that is consistent across every single application okay so this is kind of the idea that you need to think about when you think about the complexity of writing a zephyr app versus an arduino app i'll give it to you that the original the early arduino apps when they're very simple or very much less complex than zephyr apps but that's going to flip flop so what you see here on this is you see a exponential curve for arduino so as it grows in functionality the complexity becomes untenable and then you see a logarithmic curve for zephyr and so as it grows in complexity uh or sorry as it grows in functionality it's actual complexity levels off rather quickly and then maintains about the same um difficulty throughout so in the very first example of just the basic setup and loop just the the most core functionality i'm putting those together down at the zero and then you saw blinky it had the one ugly line so zephyr is showing that it can be a little uglier than arduino and it probably is maximized at a single sensor sketch so whenever you're looking at maybe just reading a bme and logging out that data that is incredibly simple to do on a arduino and it requires a little bit more thinking on zephyr but normally you don't stop at just reading a single sensor unless you're testing that sensor you want to really build a full application so when you look at our demo where we're controlling a note card this is where it starts to reconverge and so to push this over the top we're going to add a little functionality to our demo remember it's reporting temperature and humidity so what we're going to do is we're going to add an actuator to that because normally when you get a temperature information maybe it was a greenhouse or a warehouse or something where it can't get too hot and so you want to turn on a fan typically so that's a normal thing that people normally do so uh so then let's move over to getting started uh so so let's let's jump back into the code but we're going to look at it as a zephyr app but before we get into the app part we'll talk about getting started with zephyr i don't know it's really not that hard but look at it i mean that doesn't i'm not feeling like that's super easy right now either so uh the first thing i did when i saw this was kind of another one that was like whoa and uh then i jumped over and decided that there's a way easier way to do this and we've made an open source container a dev container with vs code where we took all the toolchain and dependencies of zephyr kind of canned them up inside this container and then you can clone this down you don't need to use it for our stuff you could use it for anything i would highly recommend it because it everything is together and consistent and then you can use this from vs code you can use this from uh yeah pretty much you just use it from vs code and then you have the ability to compile debug deploy your application everything you need and like i said it's docker so it just pulls everything down it's incredibly simple but hit this url just to have a look because like i said this doesn't have to really do anything with blues this is super helpful for just you getting started it's just a blinky app where it sends a message so delete the message out if that's not what you like all right so let's go back to that demo so uh i'm going to spare i probably already bored everyone to death so i'm going to spare you me actually digging through vs code which is horrible and i pulled out like the good stuff so number one you see up in the high corner i emulated the arduino runtime like i told you before everything above the while loop is set up and inside the while loop is loop so i literally took tj's code pasted it over there and made this extra like main function it just runs the arduino like it wasn't tricky at all the only thing i had to change was the header file that you use for the library of arduino is switched over to the header file that comes in for zephyr and then the way we talk to the bme with zephyr is slightly different but as you can see here it's actually not very difficult at all you just ask if the device is ready and then uh and you and you print out that it is ready and then uh you come in and you read the sensor which is a fetch uh and you tell it that you're looking for temperature and humidity it comes back as doubles then you do what you will so it looks slightly different not difficult and even the bme is i think wrapped up in the device tree as well i think that's what we're seeing here i don't see the word dt in there but i'm almost positive it is so all right and then to add in this actuator this is what the reason they would actually be somewhat complicated in arduino is because um it's uh what would you say it's asynchronous and that doesn't work very good in arduino as if you're an arduino programmer you already know you can have an interrupt and then you can have it set a flag and then you can check the flag but you might be doing something else at the same time and so you actually have to wait until you finish that to get back around to check the flag uh normally that's not a huge problem but also it's not exactly what you want always because you can't set a priority you just have to let it ride uh so to set this up in zephyr is not really difficult at all so you're gonna at the yellow start at the yellow part um that is configuring the pen as an interrupt so that's not hard to do either so it looks a lot again like arduino and then down at the green part I know this is incredibly tiny but I just really wanted to fit all on one slide so just trust me about what's in the boxes and you can download the slides and look for yourself later but that's where we're gonna bond it's like two lines of code that's where you'll bond the interrupt and the callback and then uh up in the top that is the actual asynchronous callback itself it's really neat the way that it works in zephyr because instead of you trying to catch a real interrupt and do work inside of there they have an abstraction of a work queue so that you just say okay I'm in the interrupt queue this work and then it will set it on the batch and then it will run as soon as it gets uh processor all right so we're not ready for that yet all right so now let's see it in action so I didn't have a fan because that's boring and it actually it's really not hot in here either so maybe it'd be turn or we'll say that it was too cold we want to turn on a heater so all right so then what I did instead was I thought let's have a confetti cannon that we're gonna turn on instead of a fan and let's do something fun let's see here we go so I'm gonna here refresh this all right everything's live oh one second all right we're gonna tempt the demo gods and we're gonna let them shame me publicly in front of all of you but here we go so we're gonna fire the cannon instead of turn on the fan and see how it goes there's that and now it's going through the internet and I should get a shower any moment now any moment now this is I wouldn't have it any other way honestly this is let me see if I can go to note I haven't fired off manually really quick here so the way that it really looks if you want to do it from our cloud is you can actually interact with all these devices themselves so I can go to the actuator here I wonder if I've ruined my electronics I don't know so uh and then we will whoops I'm at one too far you can just highlight it and then we'll say note and I just set this to go off with any valid JSON and so hopefully now that one will come down and I get a shower well it's in a continuous connection so the it doesn't show up on that but I don't know it I've got I've got some blinking up here but not the kind I want and it should but all right so it's the demo that's how they go and it will surprise me and I'll follow over whenever it comes but thank you guys for coming and let's uh go on your Q&A can you go back to the last slide yeah here you pop that up yeah so again if you want to check out any of these accelerators you can head to blues.dev that's where all our resources is all of this is open source and whatnot as well we're also we have a booth here so if you want to see this fired up we're going to go to the booth like right after this and figure out what the hell just happened so if you wanted to be a part of that come hang out we'll figure this out we can talk a little bit more about how this how all this works but we do I think we do have a few minutes for Q&A I'm getting a thumbs up so does anybody have any questions and if you do there's there's mics on the side of the room too yeah yeah so the question and it's hitting the button I'm just just getting very nervous right here I don't know what he's connecting the question I'm gonna try to answer this with a straight face here but the question is can you go to like your cloud directly and the answer is no so the no card is programmed to basically connect directly to note hub that's partially for security reasons because we connect we communicate off the public internet so if we have like a VPN directly to note hub and note hub is really just then a proxy that you can send your data from there so yeah yeah so the question is can you have like a custom server and the easiest way to do that is within note hub if I go in to show the different route types the simplest way is you could just create the world's simplest route where essentially it's actually your computer not where's the general oh yeah there basically just a general HTTP so basically you could treat note hub as a pass through you get some cool things though too because you can filter different events so you might say only certain events I care about filtering to this server we have some demos at our booth too where we have somewhere it says okay this is this is my just data flows to send this to my AWS or whatever but this like I'm gonna look for conditionally if the temperature is above 80 oh that's bad I want to send it to Slack or Twilio because I need to to notify somebody because something's going on and needs to be looked into so you get those sort of granular controls you can also filter by like certain devices maybe certain fleets of devices to change where you want your data to go another question over there yeah so he was asking what mechanism is used so that we are certain that the message has gone from the Arduino onto our cloud so it doesn't happen inside of the Arduino itself what's happening is you're talking to the note card over i2c so the probability that you're talking to it correctly is extremely high and you do get a response back that it successfully accepted your message then the note card it has its own co-processor so there's a queue on it and then that queue is loaded and the message isn't queued and then what you have is it will it has logic that you can either configure yourself or is has its own default settings to retry if there is a failure and it will synchronize the queue on the note card with the queue on note hub and it will try over and over again until that's completed so it normally goes through first time obviously no problem but in case there were you were in a spotty connection or something like that then it handles that just well we're out of time okay so yeah any other questions we'll be out we have a booth down there and thank you so much