We will talk about JBL's GPM. Welcome back. Thanks for coming for the invitation. And today I'll be talking about JBL, which is a process language for the workflow part of the JBL's JPM product. So JBL itself covers many process languages and JBL is one, and that's the one we'll focus on. But first, a little bit of introduction. You might have heard, actually it's a question. Who heard of workflow, business process management, and or orchestration before? A couple of them. Who's pretty skeptical about these technologies? A few honest guys. That's good. Now, because typically, and this is a typical developer audience, and with developers workflow and orchestration and BPM, they tend to be quite skeptical. Whereas managers, they see some graphical picture, software comes out of there. This is great, because we have all our difficult developers, so they like it very much instantly. Whereas for developers, it usually takes a lot more to convince them about this technology, and that's what I'm going to try to do here today. If you've seen these pictures about these heavyweight engines, these mobility engines that do BPM and workflow, you might have seen different solutions, and they don't look very much like each other. There is a lot of difference, a lot of fragmentation in that market. What I'm going to try and show you today, that whichever version of BPM workflow you take, it all boils down in the end to state machines. So the unification of all this is a simple state machine, and there is a number of features that they build on top of that. So first of all, what is a process language? We'll start from a business process. A business process is a description of how people and systems work together, typically done in terms of activities. They express the flow between the activities. Typical examples are insurance claims, expense notes, and that kind of things that are modeled as workflows. But very important, that's where we differ a little bit from the vision of competing products. We see that there are two different targets for BPM and workflow. On the one hand, we want to model things, we want to describe and analyze the problem. For instance, recently I was at a laboratory where they modeled how these samples were processed. And they had a whole description of how these plates with 96 samples could be split, merge, and how they were treated. But while they were describing that process, they were not even thinking about what kind of computer system do we want in the back, what kind of interface do we want, which steps do we want to see automated. So they were not thinking about a software implementation, they were just describing a problem domain. So that's where modeling is different from implementing a software system. And that's the second target. The second target of workflow BPM is executability, which means we want to have the same process that we used for modeling. We want to use it as a basis for our software implementation, for specifying the behavior of the computer system. And that's where there is a trade-off between these two, because if you have an analysis tool that allows you to draw your process very freely, like Visio, or maybe you've heard of Aris, the IESI. She have two. You can model your business processes, but you cannot execute them properly in that environment. You can draw them. And in the description in the drawing, you are completely free. So that's one kind of technology. The other end of the spectrum is a general-purpose language like Java, in which you are free to make everything executable, but you cannot have the graphical picture. And that's where JPL tries to make a bridge between the two. So there is a trade-off. The more you want the process language to be executable, the more technical details you have to enter, like transaction management, concurrency support, and what have you, in which your business analyst is not interested. On the other hand, when a business analyst draws a picture, it might not be executable. So there is a trade-off, but there is a common intersection, let's say. And that's what we want to... That's what we are actually offering in JPL process language, which is if you put some restrictions on how you model, then you can make your processes executable. But definitely the important thing is that we see a trade-off between these two worlds, and you cannot have free modeling and executable at the same time. And the typical approach, this is very, very important. I'm going to focus here on what can we make graphical and executable. That's what I'm going to try to show you today. But also be informed that a typical BPM approach, when you see something graphical, that's a different approach. That's just creating something graphically and trying to make it executable. But then you have to be aware that not always the business analyst will understand these pictures. A typical example is Deepa. Deepa is considered a BPM language, at least not in my opinion. It is a very good service orchestration language. Deepa actually allows you to script a new web service as a function of other web services. And this is something which doesn't really relate to the work that the business analyst is doing, and yet is promoted for that kind of solution. So then what is a process language? Here you can see a real example or an indication to what JTBL is all about. On the right you see the XML syntax embedded process language that describes the activities in your process in an XML format. On the left you see the process graphical picture, just a graph-based picture. Now you should really consider this as two independent or let's say no. These are both representations of the same process. So one is a diagram and it just shows you the structure. It doesn't show all the details. While in the XML you'll find the structure plus more details. And from the XML you can generate a picture. So why would you use a process language like JTBL? First of all to simplify your implementation of long-running processes. A lot of you will be hard-core developers so you know that the imperative programming language like Java or C is very good at expressing a sequence of instructions. But while you're executing that sequence of instructions you cannot have a wait state at least. So if you have an insurance claim for instance that might be multiple requests to the server. So the first time request comes in you start to do processing. You start to execute a sequence of instructions now you need to wait until some other person invokes a new request. You cannot just block the thread until that thing happens because if you reboot your server your thread is gone. So you cannot persist your call stack that's basically what comes down to it. Traditional programming language are not good at expressing long-running executions and they are not able to cope with wait states. So that's what you can get by using this process language approach because basically what you can do is the graphical process, the graph you can just store it in the database and then you have an execution point that keeps track of where you are in the graph. Now both of those can be saved in the database. So later on you can retrieve where you were in the execution of the database and continue from there on. So that kind of state management can now with a technology like JVM be extracted from the rest of your software so that you can focus on other things and just as a separate aspect model the wait states and the persistence. So the second reason why you would do that is to keep the overview and improve communications. So if you have to talk to your less technical people if you as a developer need to talk to less technical people or to other developers it might be handy in meeting to have a picture so that they can physically pinpoint this is the step I'm talking about. This is the transition. When this happens an email should be sent or whatever. So it's a nice instrument to improve the communication. Now in general when would you use a process language for any aspect in software development where you want a diagram a graphical representation of the process which represents some form of execution flow and which must be able to handle wait states. If those two conditions are met I'm pretty sure that JVDL will be a good solution to your problem and this can be very low level. It might be that you have a Java class that you think as a developer oh I see some kind of wait statement here that's prime model is graphically you can use JVDL for that. On the other hand if you want to talk to your business analyst about how your organization works and how the business processes in your organization works that meets the same criteria so you can also use JVDL on that level. So various levels but these three aspects meet me. If you have those three conditions then the JVDL process language is a good fit. On the other hand you also have history and statistics for free when you model it as a JVDL process and you execute it afterwards there is a dramatic login in there that keeps track of this time this activity was entered was presented with a task and later on you can see this user has entered these data items and submitted it so that the process moved on so there is auditability and traceability of the execution that you get from the entity. Now let's look at JVDL. It's a kind of product or actually it's a framework or let's say a set of building blocks in plain Java in which we implement various process languages one of them is JVDL that we covered today and basically the process virtual machine is one Java library that allows you to specify process graphs and execute them on a generic level but we have built this process virtual machine in such a way that we know that all the features that we find in process languages and workflow languages can be built on top of that and each process language has got its own environment its own type of process modes and its own features and functions that it wants to implement so for instance JVDL is a language which targets a clean integration with Java and it also has a focus on task management maintaining tasks for people creating tasks and allowing users to submit results for their tasks so that's a number of features that we add on top of the state machine technology which is in the process virtual machine the same for people people is another process language in a completely different environment now we're in a web services environment typically an enterprise service list and the people process language allows you to script the web service as a function of other services so it's another environment where you want to say process variables as six and else numbers whereas in JVDL you won't Java objects as process variables and then there is also a page rule language which is part of JVOS scene in which you specify your pages as nodes and the transitions are the navigation between the pages in your web application so we already have been able for these three languages to build them on the same core technology in the process virtual machine and we're now starting work on JVDL which is an understanding of the area for business process management and building it on top of the same this is pretty unique because in the Java landscape you have no other BPM or workflow engine that is able to support more than one language and what you see in the market is that there is no convergence between all these different languages instead they diverge you see more differences between the process languages each week or each month so there is no convergence towards a single language and we are the first ones to adopt a multi process language strategy for them actually there is only one other system or one other technology that has a similar kind of approach with multiple languages but you probably don't want to hear about it because it's Microsoft's workflow foundation so this is your only option so here you can see the scope of JVDL it's the process virtual machine implementation plus the setup process languages on top now if you as a developer have the use case for workflow or BPM you have a certain environment either you want to do it in a Java environment or in a web services environment so you know what kind of language you are looking for so you will be looking for the specific JVDL or deep process language solutions built on JVDL or as part of JVDL but now you know that they are actually built on top of the same core technology which is especially good if you consider the future meaning that whenever workflow and BPM technology becomes you agree with this mind chat amongst the developers and you will be using it a lot in different situations are you going to use multiple agents in your development one for each language so the nice thing about JVM is that you can combine those and use just one engine for the different languages so now let's take it from a different perspective and look at a first example and especially I want to concentrate on developers audience in which I want to give them an indication of when to use plain Java development and when to use process technology so we are going to start with a very simple process just we are going to model how a door works should be pretty straightforward and we are going to do this first in Java implementation so that you know what we are talking about and then we are going to see the JVDL process implementation so there are four door states the door can either be locked, closed, open or open and locked in which case you cannot close it directly so first you have to unlock it to close it so and then you have a number of transitions between those so there are four different operations you can unlock, close and open this door now let's look at the Java implementation so you could model it as a class in which there is one member field which represents the state called the state member field and it's always one of the four constants that you can see defined on top so those are the four constants the member state, the state member field it has one of the four variables or one of the four constants and now we are going to look at the method lock so you have four methods or four operations in this door behavior one of them is too long so all the other three methods unlocked, closed and open are pretty similar from this method so we are only going to cover this one but it shows already very clearly on top that you have first the part in the method where you are going to check in which state am I now am I really able to call this method because you see this is a state machine and you only can provide a number of signals or a specific number of signals in that given state when we modeled it as a Java class we had to define the four methods as public and these methods are always available you can always call them so you need to check when this is actually allowed to call that method in the given state so if the door is already locked or if it is open and locked then you can't lock it then you heard it so you check that and you throw it on such a new case then the second part of the method is to update the state value because if you lock it depending on your previous state if it was closed then you assign the locked state to the memory field and if it was open you assign the open locked state to the implementation of one of the four methods so now we are going to look at how this same behavior is implemented with the JPL process note that now we don't see one of four so previously I had shown two slides and already and not all of it so three methods were left out here you see the complete implementation of the door process in one slide so you can see the different states and a different transition so this should already give a clear indication as to what kind of problems benefit very much from this workflow technology from the process language so for this problem it means that it's easier to express it as a state machine versus separate methods and it doesn't by making the comparison between the Java and JPL I mainly want to give you an indication of when it's better to use JPL I don't want to give the impression by typical BPM workflow products that everything is in process everything should be centered around the business process that's an impression that you get very quickly from BPM products and especially what they're trying to do or it's mainly a consequence that they're monolithic systems and they're built to run processes and business processes and workflows but what if you want to do some Java behavior or what if you want to program what if part of the solution is process and part you just want to write Java code that's where they don't mix very much very well in a typical engine and that's why I'm going to try and show you here that with this process language APL is very easy to mix and match processes with Java coding so we saw already the complete specification of the station so now we're going to do something extra we're going to walk you through a JUnit test in which we're going to verify if the process that we just created actually implements the right behavior and at one go you can get an impression of the APIs that you can use to invoke these processes so first you see a static member field which is the process definition so this corresponds to the process that we just saw, to the XML and the diagram image so you see one member variable there there's one for all of the tests in the test suite that we're going to run in this case the XML file that you saw describing the process it was in the file process definition.xml so we load it as a resource and we parse it and we get a process definition object this represents the whole process and now we're going to see a test method in which we can execute this process so the process definition is always static and then we have per execution a kind of data structure that keeps track of where you are in the process but you always remain one process one process description let's say and multiple executions it's the same relation as between Java classes and instances, object instances so let's look at this test method in this test method we're going to create a new process instance for the door process this actually creates one instance of the state machine and the start off that was indicated in the process you start in the locked state so then the actual pointer to where you are in the process that is indicated by the token the token is the pointer to where you are in the process and in order to support concurrent parts of execution the data structure is a tree of tokens so one process instance corresponds to a tree of tokens of course for the door we just have one part of execution one token, the root token so that's what we fetch here so now what we're going to do is we're going to send a signal so this is where you can see graphically the token this is your runtime data structure this is your fixed process so when the process instance is created in the yellow mark part after this constructor the root token is positioned in the start state which in this case was the closed state so now we're going to invoke the signal method which means this is an external trigger so that the state machine will take a transition in this case we're going to look for the lock transition and take it and then inside the signal method we're going to do the calculations until you end up in a new wait state so you might potentially have a number of automatic steps in between but eventually you will end up in a wait state so if you take the lock transition which is here you can see that you will end up in the lock which is another wait state so that's where the calculation stops and the pointer will be updated the token pointer will be updated towards the lock so now you can see that you can persist both the process and your runtime so of course during work in a persistent environment so if you want to be able to work with typically you deploy your processes to the database and they're already there and then at runtime you start a number of processes and provide the external triggers in one transaction so the process is already there and you only insert the token records with the pointers towards the states so then again we're going to okay one very important aspect is that this is a unit test which means that for each test in a unit test it means we're going to create one instance and run it through one scenario of the process feeding in all kinds of external triggers typically this might be with a long time in between because in between the signals you might score the process execution in a real life situation but here in a unit test we're going to feed the external triggers and then check if it ended up in the way state we expect so also this is pretty important and a big difference here between typical workflow solutions and what we do in JPL because we don't have a heavy weight deployment structure you can just write your scenarios in a simple unit test and check your behavior so next the unlock method here you can see the unlock method so if you feed that external trigger the token will be updated and it will point again to the closed state so now suppose that in this scenario we want to call the unlock method again and of course you see that from the closed state there is no transition that is called unlock so you cannot unlock an open door so then you get an exception from the end ok so now you saw already some basic weight states so the capability of handling long running execution in weight states because the door process has four states that's an important aspect of workflow in BPM now we're going to look at the second key feature of the JPL language which is tasks so we're going to look at how a task looks like to specify and also give you a little bit of an impression on the tooling around this process language this is just a screenshot of the designer and this looks very similar as the tools that you see around BPM technologies of competing products only this is a little bit different in philosophy the philosophy is that we target a designer both at the business analyst level but also at the developer's level so here you can see we're in the diagram tab and that's where this is a graphical editor so you can select this task in which case you can have a form to enter all your data and this will translate into XML in the meat and that's what you can see in the source tab as I'm going to show you now so if you click on the source tab you will have the XML similar as we saw before that describes the process but now this is an editor towards developers with code completion and syntax coloring so you don't need to click your way through the process if it's faster for a developer to type in the XML he can just do that and the nice thing is that both of these editors they operate on the same runtime model so there's no rounds of engineering there is no markers or whatever but they operate on the same runtime model that's internal in IDE and you get one file that's saved which is a process file so there's no rounds of engineering direct synchronization inside of the editor so if you change something in the text format in the XML you immediately see it changing in the properties so that's the different spirit of this tooling versus any of the others so now let's look at we were working our way our way towards the task in jml I'm just going to give you some highlights of the features that we offer in terms of task management there's various ways on how to assign tasks to people one of the ways is swim lanes you see here this is the swim lane this task is assigned to the swim lane manager and that means that manager is a kind of process road for this process there will be a manager involved and there might be multiple tasks for this manager person so after the first time when you select a point manager for this particular process that will be remembered and later on there is another task for the manager he automatically gets it in his inbox then there is a notification which means some email integration based on templates so that you have an automatic email notification that there is a task in your inbox here is the link to it there is some priority of course with the swim lane manager there are other ways of assigning it as well so you can have direct assignment to people or to groups which is also quite common or you can just revert you can specify Java class in there and then you revert to plain Java code in which you calculate the users you want to assign it to so you have all the options another feature in tasks is a reminder email so you just specify after two business days start sending a reminder email for this task every four business hours until he did it of course this only has to be done in case the task is not finished then there is other kinds of timers that you can specify for instance you can say in the process after four business days if then the task is not completed yet take this transition alternatively in a timer you can also specify some Java class and say execute this code after four days so in this case you want to take the escalate transition after four days and then there is a number of transitions going out of this task so this gives you a good indication of what kind of features are in there and when it will be easier for you to specify this kind of XML versus coding all of that yourself once you've done that with the graphical designer you can generate some forms for each task the other block corresponds to the task form in which uses one thing you don't see is the task list so people can look at their task list or start new processes once they click on one task in the ringbox they can easily generate this kind of forms in which they can fill out their data submit the task and the process continues executing so this is Danny Consola and workflow participants as part of the tuning around JPL language so far for tasks now we're going to focus on integrating Java code with processes so we saw already wait states and task nodes as workflow constructs in the process but JPL has a number of other constructs as well like start states, decisions forks, joints, process states and so on so it's got a complete list of process constructs that you can use to model your processes and to make them executable but very important here are the last one or if the last one the tree does which means that a big part of the vision is that you cannot specify a process language in 20 constructs or in 10 constructs and be complete and be generic and also that can tackle any kind of workflow problem so we explicitly left open the end so that you can for instance if your business model is set in this diet or in this node in the process I want to do something really strange that might not be a corresponding process construct in the palette of the generic tool what this means is that in JPL they always revert to Java coding to do something really weird if you want to do that so if your business model is set in this node I want to first send an email and wait for something but if it doesn't happen or I don't know maybe it doesn't fit one of the constructs already there you can just type in your code reference the Java class in your code so that's basically the most important use case for binding Java code to processes and that's what we're going to cover now so there's an API for describing runtime behavior and basically on the one hand you can do everything which you can do with Java on the other hand you can access the process variable, the process state and everything related to your long learning processes and also if you're implementing a workflow construct you can determine the propagation of execution and this is also a really new concept if you're just used to sequence of instructions in normal programming language this is something different propagation of execution means if I want if you're implementing a node and you want to keep on taking that transition to the next node automatically without a wait state you just invoke leave this node and this transition invoke a method for that if you say I want to behave as a wait state I want the signal method to return I want to persist the whole situation I only wait for a new external trigger in that case you don't do anything you don't invoke any method and the node will behave as a wait state or alternatively you can start up multiple paths of execution that run concurrently so that's propagation of execution and that's where there is an API so now the node constructs of a process language now the kind of components and that's a very interesting aspect where a process language is no longer just handed to you like these are the constructs that you can use so you have to model your process in these constructs no, it's different like we have already a pre-built set of process constructs components, the node types that are implemented and if you want to do something else you can revert to plain programming to extend that set of components or if you say in our environment we're working in an insurance environment and validating insurance is something that happens a lot so let's build a new process construct validate insurance plan and you can write some reusable code in there and so process construct becomes a component so the quest for UPL is over means that previously the BPM typical BPM and workflow products they tried to build the best process language ever in which you could do anything and I believe that's now done with or let's say we believe much more in a vision where you have each process language being a set of constructs and even that is open-ended so there's no if you hear a big game company saying we've got the best process language ever it means that they only have one language that's how you can interpret that so let's zoom in a little bit deeper on how we can bind process to code first of all an indication to an indication to the use cases when do you want to bind process to code that is for instance in the node if you want to implement node behavior secondly if it's not attached so you have the process graph structure now not in the node but somewhere invisibly for instance on taking this transition I want to execute a piece of code or when you leave this node that's not really related to the graphical structure you just add a kind of listener like when execution goes over this transition you execute this piece of code also for task assignment decisions and timers those are good examples of use cases for binding to your process you might want to build reusable pieces of code that for instance sending an email is a very good example that you might want to do in several locations in the process but of course of course in each different location you have different parameters different configuration parameters so there is a configuration mechanism for this code so let's quickly go through it so the example here is in action we want to listen to the execution taking a transition and in that case we want to calculate a number so there is in JPPL an interface action handler in which you can implement concrete classes and the execute method will be called by the engine when the transition is taken and the execution complex gives you access to all the process state and process variable information so here is one implementation in which you calculate some number you start off by getting a process variable you do some calculations and you set another variable so you do a variable update but now of course you want to reuse that calculation in various places in the process with different configuration parameters and that's where you can just use plain member fields so now when you use this those were the things that I talked about so now when you're building your process then you specify the transition you can reference the Java class and optionally you can inject values into the member fields just by specifying them like this so that you can reuse the same implementation in different situations there is also an expression language which is pretty interesting it does exactly the same as you saw before only there is a different way of specifying what code has to be colored there is a number of number of named objects that you can reference in the process of course the variables are the most visible ones so if your process is a set of variables those are Java objects so with an expression like this you take the variable pay raise whatever object it is and you call calculate number method on there so it's just another way a very interesting way of referencing Java code from inside the process and this is based on the standard Java expression language so one nice thing that could be built on top of that is the decisions in decisions you can specify a condition on every transition in this plane expression language so you will evaluate the conditions and take the first transition for which the condition is true so let's quick round up of the JVDL features so I think it has a superior and modeling and execution environment in which we are able so I just quickly list off this basically you can read it afterwards but there is no other language in itself that covers these kinds of concepts so basically this is on the level of the process virtual machine where you can have any kind of construct or not only construct but any kind of pattern that you will find in the process languages like wait states like concurrent parts of executions like binding it to Java hidden actions those are all things that you might find in the process language and basically this list that JVDL supports is the union of what you will find anywhere else so this is what you also can see by the fact that we support multiple languages the core engine has to support them on all the features that's what a key the key difference here for JVDL and JVDL is the work for languages so a typical JVDL process language features of cost management to get a dramatic other trail process trailers are the process variables and you have plugable node behavior which means you can write your own process concepts also very interesting is JVPM is just a plain Java library and it's embedded so you can use it in your own application it's not a separate monolithic engine you just include some Java libraries you create your tables in your database and JVPM can work with that so it's embedded and you see that sometimes let's say half of use cases for JVPM is when it's used as a standalone product half of other times it's used as an embedded engine and both this JVDL and JVPM in general works on an enterprise Java platform but also on a standard Java platform so you don't need to have an application server you can run it in Tomcat application and it also plugs into various databases because of the hybrid JVC abstraction we can run on Oracle or any other database that you have in your project the plugable services are already explained that we run on both enterprise and standard and private there's no real time let's say unless you come back to it in the questions to compare it to people basically as I already told you JVDL is Java people who have services and they vote to long running executions so it's the environment that is mostly different between the two process languages so the conclusion if you only remember one thing is that JVDL is a good match for Java and it extracts state management from your software and it supports long running processes it's unbearable and JVDL in general is a platform for building process languages we have three already implemented and there's more to come I think that sums it up so we can open the floor for questions if I can hear the question I already did so the question is there's no standardization today okay let me first answer the first because otherwise I forget so the question was standardization for workflow, BPM and all that what's the vision of that so basically there are a number of standards basically there are many standards and they're not really converging so they're also a bit diverse and it's a bit of a fragmented landscaping and standardization but I think there's people as well recognized in the BPM area but it's in fact a web services specification that's one thing so there are a number of standardization efforts in place XTDL with workflow management coalition is another one and they have been working on this for a longer time so those are two process languages they specify the XML we should express the process so those are existing standardizations where I think a standardization effort is missing and where there's no standard is in the binding, in the Java API to implement components for a workflow engine so as I told you before the separation between processor, machine and components what API can I use to implement a workflow concept if there would be a standardization effort around that, I think it would be a great advantage because that would leverage the binding between Java and process languages and that's something where there's nothing non-marriage use for Java or a process language and there's a big gap between them so that's where I think it's missing coming back to BPMN which you also referenced so BPMN is a process language which doesn't focus directly on the XML of describing the process but it focuses more on the graphical representation of the process and it is in that respect a little bit different and what I think will happen is that BPMN is getting a lot of traction so nowadays BPUB is known very well XPDL is not known that very well and what I expect is going to happen is that currently two vendors are implementing BPMN supports of the graphical representation support for BPMN on top of people engines this is not a very good match if you have worked with the combination before you'll see that there's a lot of constraints in BPMN that don't match very well to people on the other way around but two vendors are adopting it anyway so you will get more focus on BPMN in the short future and what you'll then see is that when you're using BPMN it matches much better to XPDL and that's what I think will happen so the focus will shift first to BPMN the graphical notation and then people will realize that this maps much nicer to the XPDL standard and that's what I think will happen all the time does that answer your first question? yes so the question is I talked about the probability of node construct and there's not yet an infrastructure in place in current versions in which let's say that the probability also covers the designer what you can do is you can model plane nodes and reference your Java class in there that's what's already supported but if you want a special kind of XML or a special icon for your specific configurations that's what we can't get plugged into the designer it's definitely something that we envision for the coming future but for now it is only possible to reference your Java class from the current JPL you can already reference your Java class and configure it and this is supported in a generic way but not yet in a way that you can associate forms with a new icon that's basically other questions? yes what was the last part in the database? okay so the question is how are these processes stored in the database and is it tweaked? first of all what we have is a the core essence is a Java library so you work with Java objects that describe the process and the persistence is decoupled from these Java objects so you can always just have your own persistence layer that takes the Java objects and map so that's the basic level then the second thing what we have on a persistence service is to use hypernet so hypernet can map Java objects very well to the database so you can start tweaking the default hypernet mapping that we get out of there without a column or change a column or tweaked it the default schema that comes out of there so that's another level of tweaking does that answer the question? last question and otherwise you could come down and talk for a while okay yes, versioning is in so the question is what happens with versioning you have new versions of the process this is pretty different because if you have an application server and you have enterprise being deployed on there it's always one version of the enterprise being that's deployed because you can always assume that when requests come in they are handled pretty quickly and you get with a redeployment just wait until all the requests are done and then direct new requests so you only have to have one while in processes that's not the case you might have a long running process a legal case that takes two years and then you might have a new version of the process that that's different and so the default mechanism that comes out of the box of versioning is that whenever you start a new process you start it in the latest version and it keeps on executing in the same version when you deploy a new version the new executions are started in the new version and the old executions they keep on running in the old version so that's the default behavior which you can change of course but that's what you get out of the box so and of course you don't want to let's say enforce the fact that the response is migration because that might be tricky in the old process you might point to a node that doesn't exist in the new process for instance so you know that's more tricky the separate versioning is to get out of the box and it also goes to the level of the classes so if you associate the classes with your process you can version those classes as well you don't have to but you can in which case you can extract of which process is executed and you take the right version of the right process thank you very much


In December 2016, Tamil Nadu, a state on the southern coast of India, was hit by Cyclone Varada, resulting in loss of life, property worth a billion dollars and destruction of essential green tree cover. Tamil Nadu's top skin cleansing brand, Hamam, has a strong relationship with its people for 80 years. Hamam's equity resides in name, skin, family and nature. Name, Hamam's key ingredient is an indigenous tree and a natural curative for skin care. A few months after the Cyclone, it was time for Tamil Nadu's new year, Puthandu. On this auspicious occasion, Hamam decided to bring the focus back on nature and help rebuild the lost green tree cover. Hamam Green Puthandu, a movement to plant 100,000 neem trees across 12 districts of the state, was launched. The state's most influential newspaper, The Hindu, collaborated with a series of editorials on climate change to build public opinion and support. A one-of-its-kind adopter-tree campaign was initiated to roping citizens. A robust print and digital campaign invited public participation. 75,000 trees were adopted through the campaign. Technology in the form of a mobile application with GPS coordinates of each tree was deployed, enabling 75,000 families to track the growth of their adopted tree, building a sense of ownership and community that a traditional campaign couldn't have. Top of mind recall for the brand grew by 700 basis points while conviction scores grew by 300 basis points. Eventually, 100,331 trees were planted across 12 districts.


So, this group which is I am going to present is nothing but it is called as the CD group which basically carries a lot of entrants every year. This year also we are proposing around 16 entrants for the software quota rather software quota plus the institute quota both mix 16 and around 6 for the embedded. So, around 22 people I am going to select if I found suitable. Now, we are going to present you what exactly CD group is why the name CDPs. So, CDP basically stands for is a Center for Distance Engineering Education Program. So, basically it is a distance education program department and then it is it has got a different type of activities. So, these are the different activities what we do in general. The first of all these are the portals or these are the websites you can also refer later on also in which you can see the first one is the courses on view. It is a something equivalent to the I do not know whether you have refer the NPTEL website or what. Where the courses are being recorded and the archived courses are available. The second one is the research scope which is more research oriented thing where on the archival of the PhD student have put what kind of research work they are doing, what kind of work they are doing. And the research related people who have got the interest into the research activity can visit the research scope website and can see how exactly the things happen in IIT Bombay. Last portal that has been mentioned is the ask a question. Ask a question is the initiative of IIT Bombay wherein we normally address the questions of the student every week. Every Thursday in the electrical engineering, when I say electrical engineering in terms of IITs, it is electrical, electronics, instrumentation, power electronics. Everything has been covered under the electrical engineering. And on Fridays we address physics. So electrical and physics these are being two department who actually answers questions every week which has been asked by the children across the country. So all the people who are available in this area can ask the question and IIT Bombay faculty's answer to it. And this program is running in its seventh year. So it is a long seven years history available to this. Then recently in the morning Professor Patak has also mentioned we have developed one more product which is called an eGuide. So the eGuide is a product we have developed and it is being launched last week into the National Museum Delhi. I have been communicated this morning. The Prime Minister also liked it and wanted to scale down nationwide. So this basically is again the creativity or the development which happened in the same group. The type of technologies we work with. So these are the different technologies almost to all different segment we cater to it. If you can see there is a PHP, JSP, Zawa which is being the scripting languages or programming languages then the Drupal which is under the content management and Android Windows. These are the OSS, databases, MySQL, Python, shell work, scripting, graphics all. We have got a huge amount of umbrella available wherein we cater to different technologies. But how to go ahead? How to stand in front and how to cater to the things? So we have come up with a certain amount of options or the opportunities at this summer. I always say people while selecting a project, don't select the project or group based on how the presentation has been given, what the contents are, what kind of technology the project have got, how good the idea is. I always suggest students to select the project based on your own capabilities, your own skill sets and your own interests. The reason is that many times what happened if you didn't match to this, you become the baggage for that particular group. If suppose you like something new, good in a mobile communication area, you selected the thing and you get selected also, you have been offered also same project but you don't know anything in the area of the mobile space. What will happen, the other guys who are working on the mobile area, you will become a piggyback. They have to carry you throughout the project. So don't do this. Go to that particular project only wherein you have got interest and you have got skill sets. So let's see what we are going to offer this summer. These are the few things that we are going to offer you this summer. In the languages, we have got PHP, JSP option available. Deliberately, my presentation will take you in a such a way that so that you will be very easily map yourself with the type of requirements and the available options with you. And then you can better choice what exactly things you are going to take. So this is the PHP, JSP is the languages which are available. Python is another option available. Then there is a Java AngularJS, JavaScript, jQuery. These are the Java family available. Then there is a Embedded C and C++ is for the embedded people which are being interested in working on to the embedded. Then on mobile space, you can have Android and the Linux also is also one of the option. And then OpenCB, WebRTC, these are the other things. In databases, if you can see, there are MySQL, SQL Lite. And there is a NoSQL also we use somewhere which is Redis. There are a few servers we are thinking of. One is the Nginx, another is the Couranto, and then the Node.js. So these are the typically servers which is being utilized for the applications we are working on. And then the engines. So these are the few engines which we have offered this summer to you people. Now in the engines, you can have the Unreal which is basically virtual engines. Then WebRTC is the real-time communication engine. Then Maya is the graphics engine and OpenCL. These are different frameworks on which we expect the student should work. YII, a standard framework for the PHP programming. Then Django for the PHP Python, Bootstrap for the front-end designing, AngularJS, and TensorFlow is basically the framework which is used for the deep learning. So we come to that also later. Now how to select, how to decide what are the options available? These are the basically options what the type of projects we have available this summer. The first option, the group is the software and the lateral two are the hardware. The first one is that the implementation of the WebRTC on mobile platform. Now basically when we say WebRTC, the technology basically is being developed for web-based real-time communication. But the WebRTC people have come forward and they have again developed the advanced module and now it is quite possible that we can use the WebRTC on the mobile platform. So this summer we are trying to use this WebRTC to actually work on the mobile platform. We are expecting mobile platform as an Android. And based on Android, we want to develop the WebRTC application. This is the project number one. Project has got the complexity medium to high. The reason is that WebRTC putting onto the mobile devices is initially a little tricky. We are expecting four people who has got the speciality into the Android, Zawa and object-oriented programming background can very well work on this. Next is the content management system. Now everybody, I think that most of you are aware about the Drupal. There are n number of content management system available. Drupal is there, Zoomla is there, Daisy is there, Jlibrary is there, WordPress is there, n number of handling tools available in different content management system. Is it possible that we can develop our own content management system? But the first question is, why do you use Drupal? Why should not you have got your own content management system? Because if you see nowadays, these all content management systems are becoming very, very heavy. They are giving 10 options out of you required only two or three. So can there be a possibility that we can have our own customized content management system? And the answer is yes. So you can have your own something which is equivalent to Drupal, or Zoomla, or whatever. So we are expecting to develop a content management system which is based on the YIF framework in PHP with the MySQL as a database. And we are proposing that there should be the four entrants which can work on this to develop the thing. Next is that deep learning. Now deep learning, especially, is the concept which came in the space of artificial intelligence. Now deep learning, basically, is the approach which is being used more on GPU. So everything what we do is on the CPU. But now the trend has came that your GPU is more powerful than the CPU. So people are using the GPU power to complement to the work of the CPU. And the deep learning is one of the application which is a very booming and new technology which is very popular. It's called as the deep learning wherein on GPU, using the ANN, that is the artificial neural network, intelligent problem can be solved very well. So here we are proposing image processing kind of application which can be done under the deep learning. The platform which is being used is the TensorFlow. This is the framework on which the deep learning can be done over a GPU. And the language for scripting can be used Java or Python. So we propose Java because I know very well there are a lot of people who know Java rather than the Python. But both the options are available. Complexity is a little high. And we propose that if four people can justify this task. Next is MoCap. What exactly MoCap is? Anybody knows MoCap? If you don't know MoCap, in a single click you will understand what is a MoCap. We can understand it. We can understand it. Understand it. You, you, me, me, fight, fight, this is our story. Sometimes we walk together and sometimes we give water. But this is the nature of our world, very old. Because the heart is Hindustani. Because the heart is Hindustani. So this is a very common type of animations we see every day on the televisions. This is so sorry, very famous cartoon animations, which is being shown regularly by the Ashdak. How exactly these animations are developed? You may have seen that the incident happened. And next day or the same day also you can find the animations on the televisions. We know very well creating animation is a very tedious time-consuming job. Trim by frame you have to design and then manage and create the content. But MoCap is a technique by which this can happen very fast. So that is why we are also proposing project to develop this MoCap. What exactly they do that? They put the sensors on the human body with a trace, having the sensors. And when I, the way I make the motions of my, the MoCap name came from the motion capture. So that way I move, the skin of that particular puppet or the cartoon or the person automatically start moving. So it makes possible to create a real-time animation using the MoCap. So we actually want this summer to work on the MoCap and create the animation for the education. Because students into the primary and the secondary schools are very much interested or very much fascinated with the different type of cartoons they like, they love. I know very well 80% of the people sitting over here very well know Dori Mam. So that cartoon is so popular and in everybody's house it is quite Nomita, Dori Mam. These all cartoons or the characters are in everybody's house and this can be created or this kind of films can be created in real time. Nowadays, nobody draws the picture and then creates the animation, right? So MoCap is one of the area where on we want to work this summer. There are few new area technologies like the gaming engine and other things one has to work on. But that tricks and techniques we will teach the students. Now for embedded system for MoCap to happen there is a necessity that one has to map the real time motion of the physical person with the virtual character. For which there is a necessity of managing tracking the motions for which there are sensors and hardware is required. So in the electronics or the embedded system group we propose that there should be a group working on this who will create the motion data and transfer it to the system. Whereas the software developed will process it and create the puppet or the move the puppet. So these are the two groups which are working together. One is from the hardware side and another is from software side together. The other batch in the embedded system we are expecting to work on the IoT application for the local to global communication. Now IoT is quite common. So many days we are working on internet of things and all. But there are two different discrete areas are before us. One is short distance communication and another is a long distance communication. Short distance meaning thereby if I got a Bluetooth my communication limit is limited. If I got IR my communication limit is limited. So suppose I have got a set of box which is basically controlled by IR based remote control. I want to put it on the IoT. How it is possible? Suppose I have got a home theater system wherein I have got the Bluetooth wireless speakers available but I want to control them on IoT. So now this shorter distance that is what the name is like this in local to global. The local communication system can be integrated with the global communication system for which we want to develop an intermediate layer what we call it as a routing. So the local communication it will understand and it will integrate it with the global communication. So you want to come up with such kind of intermediate layer which will integrate local and global together. So this is the other project into the area of embedded systems. How it will work? So basically working this is the steps in which generally we expect people should work. First of all, we will set our expectations upfront. We will not change our target in due course of time. Whatever we want, we will explain in the beginning so that you should know the scope of the work, the way actually it should be done. Create a discrete modules. Suppose we have to do complete work, we will segregate into the different modules and we will tell you that this is a phase one, phase two, phase three, how exactly it can be done kind of thing. Next what we will do? We established our program parameter and the goal. How much goals you have to achieve? When you have to achieve? We will put the time also and assign the mentor and buddy to you. So for doing this thing, I personally also believe very much that your success entirely depends how exactly you are being guided. I know very well you are quite young, enthusiastic. If properly being guided and mentored, you can deliver miracles. We not only provide this infrastructure, but additionally we will provide you the way to communicate or get support or remain in touch with us after the internship also. So it should not happen. This is not the association for only 30 days, 20 days or 40 days. But after that also, if you want to continue to work on the same project or the same area, it will still continue. This is how the work is being done. There is a project management system. This is we are practicing from years together. This is not the first time I am explaining this. Every year I put the same thing. We have got a project management system in which the work will be assigned, a time will be assigned and you have to submit your work on the repository. So whatever you have developed, you have to just submit it and it will be monitored by your mentor. And if required, you will be given the correction, suggestion, modification, whatever. Now the mentors. Mentors as I have mentioned earlier is a very important parameter. And that is why we have strengthened the mentorship more than any other thing. So you will have a different type of mentors available. Different type of, there will be a mentor associated with you, a mentor will be given to you. We have started from last year, the another cadre, what we called as the associate mentor. Now associate mentors are those people who have already worked with us as a summer entrance in the previous years. Every year we declare this associate mentorship and lot of our ex summer entrants apply for it and become the associate mentors. Especially those student who are interested in certain area and same area we are carrying out next year, then these people help you in solving your problem remotely. They are sitting at their own locations but they communicate with you or a sky phone, chat, mails, whatever and they support you to carry on your project. The other cadre is that the external mentor. Now external mentor are those people who are sitting into the industry. This year some people who have accepted the external mentorship from the industry, which are also are the IIT Bombay students. Microsoft, Cypress is the embedded system giant. Then Monarch is the video and image processing company and PayPal everybody knows is the web-based payment gateway company, so web-based. So these are the company from where people have accepted to externally mentor the student. Again this mentorship and this communication happens as per the mutual available time and mutual delivery variables. Now after giving those many things, what we expect from you, but you should deliver to us. The very basic thing what we expect is that follow the rules. On certain issues we are quite strict because unless we are not strict, we are not able to get the results. Follow the discipline. That is why I was talking with you people. You have to follow the discipline. This is IIT Bombay. Forget about what you are doing at your own institute but here you have to follow our own discipline. Be punctual, respect all others and then be a good model character and the important is work in team. Because independently you cannot deliver anything. If you have got a team and then only with the team you can deliver the things. This is a very small picture which interprets what exactly the team work is. Hackathon. I know you people may have come across this word. Nowadays it is becoming a very popular buzz word but every year we conduct hackathon. This is again the history of four, five years. Every year we conduct different hackathons. Where in people who are participating with us get a chance if they qualify to participate in the hackathon and learn or hack a different type of technology. There are few hackathons which have happened in the last few years. Firefox hackathon, Wikipedia hackathon and this year also we have proposed hackathon. These are few photographs of the hackathon. The Firefox hackathon, Wikipedia hackathon and so on and so forth. With us working is fun. I always believe that the working should be always fun but fun doesn't mean that we should break the discipline. If you see the students working with us there are a lot of activities which happen apart from their work. They are doing fun. We do a lot of parties. You can see these are the parties which is being arranged during the internship. And this way I hope that people will enjoy the stay at IIT Bombay. It is not only working, working, working but it is enjoying the work culture. I will display, show you a small film with the last few years student summer entrance feedbacks and then we will take question and answer if there is. This journey started when I first got the mail that I have been selected for internship here. I was really very hopeful and very excited. Initially when we joined we have few interviews where I got to know how to improve my skill as an interviewee. Later on we had to attend our weekly presentations where we have to present our weekly work and that made me know how to strengthen my presentation skills so that later on I can step forward to my professional world. This summer internship at IIT Bombay helped me to get familiarized with softwares like Rainbow and version management system like Gitbits using which I could maintain my code efficiently and complete my project in a professional way. Mentor support that was provided to us was just amazing. Our mentors were ready to help us at every point of our project whether it would be at daytime or even at the night time they helped us. The regular tracking of students about their work their regular presentations in their area. The labs were open all the time whenever we wanted it and all the facilities which an intern would need here. So this internship was a great platform for me to work upon the newer technologies. Like I worked upon the Unity platform that is a gaming engine for me. Earlier we thought that the internship is only regarding the computer languages but we electronic students were given the internship regarding phonetic keyboard which was surely a part of the electronic group. Throughout the journey we had a lot of fun a lot of activities, some Wikipedia hackathon some other activities, some other photo shoots all these things this made it quite a fun. We were guided so well that whatever we wanted to we were exactly shown the path how to do that and this was for technical but at the end also we got to participate in hackathon that was really a great experience and also we got a party so it's not only work, work, work but it's like work hard and play more. The Wikipedia hackathon experience was very, very good. It was the first time in my life that I experienced a hackathon and I learnt a lot with very huge industry professionals. My experience as an intern in ITV was extremely amazing especially to be a part of CDEEP group was a cherry on the cake. I totally appreciate my decision of being in CDEEP group. Ultimately CDEEP is all about dream, develop and distribute and you get to realise that here. Thanks for giving me this chance. Thank you. Thank you. Thank you. Thank you. Thank you.


We're all set. All right, everyone. Good morning. I'm gonna call the meeting to order. Thank you all for attending this morning. It's a beautiful first day and recording secretary will now take roll. Roll call, board member Anderson. Board member Futral. Present. Board member Renteria. Present. Board member Rumble. Present. Board member Myers. Present. Chair Rivera. Present. All right. Let the record reflect that all board members are presents. Thank you, Chair. Thank you. Yeah, so I have this public item too, public comments. This is time when any person may address matters not listed on the agenda, but which are within the subject matter of the jurisdiction. The public may comment on agenda items when the item is called. Each speaker is allowed three minutes. Kaya, can you please review how the public may comment? All right, if you wish to make a comment via Zoom, please raise your hand. If you are dialing in via telephone, please dial star nine to raise your hand and star six to unmute once called upon. You have three minutes. Chair Rivera, there are no members of the public on Zoom nor in person. All right, thank you, Kaya. We move on to item number three, approval of the minutes and 321 are the minutes from the March 23rd meeting. I'll move to approve the minutes. I lost that sheet. Oh, I got it for. The minutes were prepared by the board secretary and are now available for review by the public. Does anyone have any questions about the minutes? If not, I will move to approve the minutes with a vote. All in favor, please say aye. Aye. The minutes should show that I'm abstaining because I wasn't present at the meeting. Okay. Kaya. Thank you. Okay. And now we move on to the next item, which is the new business. Item 4.1, approval of the final draft 2022-2023 annual report and 2023-2024 work plan. So based on the definition in ordinance number 3946, the annual report means the annual report required by section 36533 of the ordinance that you have in front of you. By law, we're required to prepare the annual report each year, and it doesn't specify exactly when we have to do it together, but basically the annual report details, both activities and services that are carried out as well as programs throughout the year by the city center and the contractor, which is in this case, is the center slash metro chamber. The final draft of the report was incorporated onto this agenda. However, we have some significant suggested last minute changes and edits that we have made on the report that you're now out in front of you. And we will just seek approval with the amended changes, right? So before our motion is made, are there any members of the public wishing to comment on item 4.1? So just a quick comment. I think that for VSR's budget in this we can do two things that are not reflected here. One is to show reserves similar to what the city is doing. So, Santa Rosa carries a reserve that's not reflected in the budget table here. And the other is to put a footnote in here to explain some of the more meaningful differences between budgeted and actual, which are primarily driven by how we are budgeting rather than big swings in costs and investments, right? So we are capturing all of our personnel, just as an example, capturing all of our personnel costs within admin and operations and prior year, including the 22 budget, personnel was scattered throughout the budget. So just what I felt to be a more transparent way of budgeting to capture the costs where they're a little bit more appropriate. So that would explain the big difference between budgeted and actual, for example, in admin and operations and that line item. So just to be clearer and more, I think aligned with how the city is presenting its budget. I have a question for you. When we look at the work plan for city of Santa Rosa, the prior document had a 221,000 unallocated reserve and a $330,000 carry forward number over and above the $500,000 budgeted for the current fiscal year by the city. That number is now shown as a carry forward numbers of 312. What are the encumbered funds that the city had from the BID going into the current fiscal year prior to budgeting additional dollars? Okay, I thought we had, well, incorporated. I think we didn't deduct anything, we just got the, so this is a revised table based on some of the suggestions that were provided, but I'm not sure if I'm answering your question, but. Well, I'm sorry to interrupt you, Rafa. What I'm a little unsure of is that the report before appeared to show that there were 500 and about $540,000, $550,000 of in essence reserve funds over and above the expenditure plan, whereas this is showing, if I understand correctly, 312,000 over and above the council approved budget. I'm sorry, I didn't bring the old report to it, to look at it. Yeah, I'm looking for the old report now. No longer carry forward was $330,000, it looks like. Yeah, and there's an asterisk in the lower left, Todd talks about, if I recall, $211,000 or $221,000 of additional dollars. Yeah, right there, 221,347, yeah. What's, all right. It was page 19 of the former report, yeah. Yeah, we have a carry forward 330, 293 and the reserves 221,341, 47, right? Right, so obviously those two numbers add up to about $550,000. Correct. Resistions carry forward 312, so I'm just curious whether $200,000, $210,000, when? Yeah, I think we've got the budget, our budget person here, because I thought we just had combined those two and then place them on the council approved 500, carry forward 312, okay, I see where you're saying it. Now, maybe the number is 312, it's just, it's not consistent with what was in the other report. That's why I'm asking the question. Well, why don't I seek clarification on that one and can I get back to you, as soon as I have a clear response as to whether the difference is there or less? Yeah, okay, I see the discrepancy. Well, what I would suggest maybe for the consideration of the board is there are some changes that the ESR is gonna be doing anyway. Perhaps that can be clarified along with anything else that comes out of today's discussion because I'm a little uncomfortable with that clarification just coming to me as opposed to coming to the whole board. If it's an accurate number, then there's nothing further to say, but if it requires a revision to this page for clarity, then that would be a different story. Yeah, and for comfort, we did meet with our finance analyst yesterday and we went over this data and the numbers and this is what she ended up, sending back late last night. So I'm pretty confident that the numbers are accurate. Perhaps there may have been some minor revisions, but I'll definitely get clarification on that. And then as soon as the chamber changes come in, I'll confirm that update. And I also noticed that the work, I'm a little bit confused. This would this, and actually let me, I guess, ask you, Peter, talking about on page 20 of the work plan. Since one of the changes here is that the city of Santa Rosa work plan changes to a calendar year to coincide with the way revenue is received and visit Santa Rosa was already on a calendar year, should not those two years coincide so that this would be a 2024 visit Santa Rosa report, you know, as well. The only issue we have with that, of course, is we don't have an adopted budget until January of 2024. Right. So it's tough to put in a budget that's representative of being final, right? Six, seven months before it's done. Wouldn't we want the BIA budget though? First, for the chamber budget, knowing that if the chamber budget is different, this budget can be accordingly revised. But I mean, in theory, the BID budget should be, should be the master budget, although it may not have all the line items involved. Otherwise, the BID budget is being changed to reflect the chamber budget. Well, it is the chamber's budget, right? I mean, the chamber has, because those funds are coming in to the chamber, the council doesn't approve visit Santa Rosa's budget, chamber board does. Yeah, but it approves the work plan, right, which includes a budget. So. Oh, we wouldn't have Q3, Q4. Well, I know when you're making a transition, you know, between fiscal year and calendar year would be, you know, wise. I mean, there's going to be a transition and there's already a transition on the city side because the city side is obviously a 23-24 budget through June 30th, 24, whereas this is calendar year to the end of the year. I mean, we could put something in there for sure, so long as it's presented in context or caveat it, right? To say, this is anticipated 24 budget or something like that. I mean, we get in the same case, right? Because regardless of how it's presented in this document, the city's going to have, the city's always going to be on a fiscal year, on a fiscal, on a July to June fiscal year, even if it's presented separately in this document. So theoretically, there's only six months of 24 that's actually budgeted as well. Correct. The difficulty is that we're, if we adopted 2023 work plan for visit Santa Rosa, and we understand that the chamber essentially makes those decisions and not allocated installers, but if we adopt a 2023 work plan for visit Santa Rosa, and it goes to the chamber and end of August or September, the years of 2023 is almost over. So from that standpoint, it actually doesn't communicate anything except it's more of a historical statement. Here's what it was, as opposed to here's what it is or should be. And I don't have a big dog in that. I just think it's important to be consistent. If it's a 2024 plan, it should be a 2024 plan. And then the chamber's going to go through its process. And if there's variants, I mean, it just would revise the, make a notation that these dollars are subject to the chamber, chamber budget process that comes up at the end of the year. We've got also switched the timing of the annual report and it's presented. So I guess we could be reporting on 2023 earlier in the year, following year and present the budget for that year. 2024 budget, right? I did get an approval from finance to officially get rid of that 2022, 2023, blah, blah, and then just call it the 2023 annual report. And of course, if we have data from 2024, including the chambers, officially change it to the 2024 work plan. Well, is it possible just to change under visit Santa Rosa 2023 to 2024 and add the ask risk that dollar allocation of dollars among line items is subject to chamber budgeting process? Yep, certainly fine. Going back quickly to page six and recognizing that this is a new table showing the administrative fee and the split between the city and visit Santa Rosa or the chamber. Yes. So I appreciate that and I think it helps clarify what was already in suggest it was in tax, right? But I think it helps clarify just a note though. I mean, two plus 30 plus 70 is 102. So in reality, right? I mean, the city receives more than 30% it receives 32% and the chamber visit Santa Rosa receives less than 70% or receives 68% based on that 2% administrative fee. It's the 30, 70 split is absolutely true. Yes. After the 2% is taken from the city. So. 38%. Yeah. So now I also realized that the 30, 70 numbers are in the ordinance. So I don't want to create, I don't want to, right? I don't want to create any inconsistencies with the ordinance, but in reality it's 32, 68, not 30, 70. So however we want to walk that tight rope with being consistent with the ordinance because the ordinance also calls out the administrative fee. I'm not suggesting anything in the proper, right? I'm just, if we present it like this we should probably make that clear. Yeah, probably add up to 100% rather than 102%. And then on that same page, and thank you for calling that out. There's also those reformatted tables based on the suggestions we received on Monday where you can plug in. What I think I could do here just to be clear is because our reserves are not within our operating budget. We don't use reserves to fund ongoing activity. We use reserves as reserves as when a pandemic comes or a wildfire comes to help cover precipitous decline in revenue to carry on costs. So on this table, I think it would be fine if we just footnote that we have a $500,000 reserve for Visit Center's budget and highlight a couple of the why's behind the differences between budget and actual. So no changes to the table is what I'm saying, but we can get you language that would be a footnote to the table. If that's agreeable to the board itself. On the switching back to page 20, I think here is where we could probably try to more closely align with your table so they don't look so completely different. Okay. So we can, we'll send you, the numbers aren't gonna change, right? The numbers are what they are, but we can send you information for both. And for clarification, member would try out, we added some bite notes such as staff 40%, 40 CD, full-time employees, including sellers and benefits, studio B is the professional services as others. And then like I said, I'll seek clarification on the discrepancy between those other figures from the previous report. Great. The numbers here are still a little puzzling on the city side. I don't mean to be, you know, belaborate, but the revenue was 9.55 in the prior fiscal year. And expenditures were 7.33, but only 4.21 was spent. That's a $534,000 difference, but there was, you know, that's not accurate. I'm understanding it better now, I see. Okay. The actual revenues that came in were, you're showing 500,000 for that period. You can't really track what was actually received here. We don't need to belabor it. Maybe something can be looked at more thoroughly. Numbers don't quite add up and link to the prior year and then the next year. Because this is a calendar year, this is... Yeah, that's a possibility. And I'd be happy to schedule a conversation with either Kate or our new finance analyst for the department and just go over those figures. We also quickly, and for I forget, we did add two bullet points on what it says here, page 18. Looking ahead, work plan for 2024 and continue to create economic development and impact through media mentions, education and sourcing and services revenue for those opportunities for our business community. And then the last bullet point was continue participation in professionals' unemployment. I think there was some additional suggestions that you had made that were relating here related to ongoing and or one-time projects that will support the hospitality industry. I think you're maybe look at the open circle bullets under strategic plan development Yes, thank you. The last two there. Yeah, thank you. Evaluation of economic tourism business, evaluation and potential TBIA funding special. Thank you for that. Positively effect on hospitality demand, leveraging other programs of funding. The other report has always had room for improvement. So I do appreciate the feedback. And as we continue to better the report, this is very valuable feedback and we can definitely make it more robust and more complete and more accurate. That's been a little long. Rafael, I do see the question I've got. If you look at page six, I see where the 312 that is shown in the 2024 work plans come from. That's the council approved budget plus carry forward funds, less actuals for the year. That equals 312, but it still leaves open the question of the 221-347 which is shown as available reserves on page six from 2022-23, where that money went. Because it's not reflected in the work plan. Okay. I'll see clarification. You're calling, we'll go ahead and readjust that the 2%, 30%, 70. Yeah, however you wanna indicate that, I mean. Yeah, it's confusing. It's certainly true that after the 2% is taken, then the split is 30, 70, right? So I'm not arguing that point at all. Yeah, and I don't want to get us out of whack with the ordinance either. So, how are we gonna reflect that? You know, like a, I don't know. So going back to that one minor clarification, if we decide to call it the 2024 work plan and then for that table near the end, the Visit Center on South Work Plan calendar year 2023. So we're going to just put a side note for. Well, that would say 24 now and not 23. Okay, 24. To align with the city, right? So if the city is saying this is the work plan for 24, right? Yeah. We would wanna reflect the same. And I think that there's a note on the table, put note on the table saying that, you know, this is an anticipated budget. Anticipated budget, okay. That is subject to change based on the Chambers calendar year budgeting process or something like that. And truly, I mean, very unlikely. I like this change. In any kind of significant way, right? But I mean, just from my responsibility of meeting, the legal requirements for the chamber, right? I don't wanna take away the fiduciary responsibility of the board. I don't wanna complicate things, but did you say that we could actually push this work plan to the end of the year in future years?  That would be, I don't know. So potentially we would be pretty quick up then for doing another document in January or February of 24. So not pushing this one out. I think this one still needs to go to the council, right? Yes. Oh, right, right, correct. Yeah. But we would need to do, we would need, instead of framing it as pushing this out, we would need to pull in next year's report and do it. I know sooner. Quicker time frame. I'm not quite following. So we'd have to do another one in six months, basically. Well, I'm not following why. If this were 2024, 2025 is. Oh yeah, you're right. You're right. So next year's wanna be quicker, it would be at the end of the year. It doesn't have to be in August, it could be in like October, November, or even December. Yeah, yeah, yeah, yeah, you're right, you're right. I mean, that would be more in line with our planning. So we'd be able to give better information. Yeah, that's just. And that would also allow planning of time and opportunity for us to work together to see how we can definitely, I mean, I definitely wanna see something a little bit more professional. This is just me using word and back and forth and little pictures here and there and then pulling the data. But, you know, it is. That's some of my stuff. The formatting is outdated. You know, ABB puts out a very nice report. So the Sonoma County tourism, we should be, you know, money that comes in, we should be able to create, produce something professional. And we can probably have some support for them. Yeah. All right. So does anyone wanna make a motion in support of the approval of the annual report and work plan in recommendation to the city council with the amended changes that we have discussed in today? I'll make a motion and we blah, blah, blah. Send this through with the amended changes that we discussed today. Thank you, a member. Is there some? Do I have a second? I'll second. Is there any further discussion? Would we need to call for another vote at that 221,000 reserves is something significantly different than what we're assuming it is? Or, I'm just kinda curious. You should be able to clarify that matter pretty easily, but I would suppose so. Well, might I make a suggestion that if the 221 is our dollars that aren't shown here, just understand and the minutes could reflect this that the motion assumes that will be a minor edit on its way to the council. And if it actually is already subsumed in the 312, then you don't have to do anything. Just leave it as it is. Yeah, okay. Thank you for the clarification. According to the secretary, we'll now take a roll call. Yes. Roll call vote, board member Anderson. Aye. Board member Futrell. Aye. Board member Rancheria. Aye. Board member Rumble. Aye. Board member Myers. Aye. Chair Rivera. Aye. All right. Let the record reflect that the risk that this item is approved with unanimous eyes. Thank you. All right. Item, thank you. Item, like I said, it's a department reports. We do not have any department reports. Item six is to adjourn the meeting. So we're gonna go ahead and proceed and adjourn the meeting. I'd like to thank you all for attending today. Thanks, Rafael. Thank you. Thank you all. Thank you. Was there a late correspondence or is that just a placeholder? Under.


So if the 2016 Democratic Party primary wasn't eye-opening to you, then 2020 should confirm beyond a shadow of a doubt that the Democratic Party has absolutely no principles. They stand for nothing and represent no one. They are vapid, they are hollow, and they are not to be taken seriously. And the only utility that they have for us on the left is that they have the infrastructure for us to take over and kick them all out. Because I mean, look at this. In a second, they flipped and they're supporting someone who is a racist, serial sexual harasser who's an oligarch that effectively bought his way to second place after four years now brow-beating Bernie Sanders supporters in the left for supposedly not being woke enough, saying that we don't actually care about communities of color and this left movement is just too white. Well, now they're supporting the worst possible person if they truly claim to care about communities of color, marginalized people, identities, identity politics for lack of a better word. And on top of that, after screeching at the top of their lungs how we can't support Bernie Sanders because he's not a real Democrat, look how quickly they fall in line to support a Republican. So the Democratic Party is an absolute joke and Mike Bloomberg's rise reveals that to you. It reveals how craven and morally bankrupt they are as a party. They're supporting Mike Bloomberg, not necessarily because they believe what he's saying politically, but because he has money. And the Democratic Party, generally speaking, they don't care about policy so much as they care about maintaining their seat, maintaining their position of power. That's all that this is about. And if he's got the money, then they're going to be there for him regardless of what they said, you know, about voting Democrat and supporting the woke candidates. It just, it honestly is embarrassing.  He has already at this point in time, remember we're just in February, two contests have taken place. He's already outspent Obama's 2012 general election campaign spending. I'll repeat that. He has spent more already than Obama spent on his entire reelection campaign at $338 million. And he is open to spending a billion on this election. And you know, aside from all of the millions of dollars on television advertisements that he's buying, that money is, you know, it's not just getting his name out there. It's clearly influencing networks to cover him more generously or at a minimum to ignore his scandals. He's donated to the DNC. He's donated to state Democratic parties, elected officials at local levels, hence why so many mayors are endorsing him. This individual bought the Democratic Party. I don't know how else to describe it. He bought an entire political party. That is where we're at in American politics. We are in the latest stage of capitalism where you can become so rich that you can buy a political party. Think about that for a minute. Think about the implications that this has on democracy. If he proves that this strategy is successful, can you imagine what to expect in 2024, 2028? We're just going to take turns with an oligarch running for president, Jeff Bezos. The Walton family, Mark Zuckerberg.   And if he's able to successfully buy his way to the nomination or at least, you know, remain in until the convention, that in and of itself is so, it's just, I can't even describe it. I don't think I can, with a straight face, say that we live in a democracy. Even now you can argue that we're in an all out oligarchy. But I mean, if he actually is successful with the strategy, I don't know what to say. I don't know what to say. It's horrifying. But here's what we need to do. We need to be very clear about the threat that he poses to democracy. And we need to take notes right now. Be very, you know, scrupulous in what you do and acknowledge that there's a lot of people, a lot of sellouts in the Democratic Party who are choosing to support Mike Bloomberg not because they believe in what he represents, he represents nothing but oligarchy. And anyone who is choosing to, you know, not just refuse to speak out, but actually go so far as to endorse Mike Bloomberg, they absolutely must never be able to win another election again.  But if you go so far as to endorse what he's doing, there is no place even in the Democratic Party for you.  No, in actuality, the left isn't going to stand for that. And if he is the nominee, we have to make it very clear that we're not voting for him. The Democratic Party needs to know that we will not tolerate this because if we tolerate this in this election cycle, we're going to have to tolerate the next billionaire oligarch in the following election cycle. And let's all remember Donald Trump self-financed a lot of his campaign in the Republican primary in 2016. So Trump already kind of proved that it's successful, but Mike Bloomberg is showing what happens when, you know, you put that strategy on steroids. So anyone who isn't speaking up, note their silence because it's deafening and people who are actually endorsing Mike Bloomberg, they are a special kind of evil enablers and they absolutely must be primary. So I want to go to this list that was put together by a Twitter user who lists all of the endorsers in Congress of Mike Bloomberg. And if they have a primary challenger, who that individual is. So the first is Max Rose, who represents New York's 11th congressional district. We have Stephanie Murray from Florida's seven. We have Harley Ruda from California's 48th. We have Bobby Rush from Illinois's first. And he actually does have multiple primary challengers, but I actually brought on Robert Emmons on the program. He's a phenomenal candidate. He's been endorsed by our revolution. He is a true progressive. So if you are in that first congressional district, you have to support him. You can't allow someone who endorsed Mike Bloomberg to remain in power because they're showing they don't care about democracy. We've got Scott Peters of California's 52nd. He does have a primary opponent. Her name is Nancy Cassidy. We have Ben McAdams, who is representing Utah's 4th. His primary opponent is Daniel Beckstrand. We have Juan Vargas representing California's 51st. We have Mikey Sherrill, who's representing New Jersey's 11th. And he has Mark Washburn as a primary opponent. We have Haley Stevens representing Michigan's 11th congressional district. We have Lucy Macbeth representing Georgia's 6th congressional district. We have Stacy Plaskett at large representative for the Virgin Islands. We have Gregory Meeks representing New York's 5th congressional district. And just a little side note about Gregory Meeks. He claimed that we can't possibly support Bernie Sanders because he's not a Democrat. He literally endorsed the Republican. Mike Bloomberg isn't that amazing? Mike Bloomberg, I think he was an independent up until 2018. Then he finally registered as a Democrat. So that's all it takes. I'm sure that if Bernie Sanders actually registered as a Democrat, even though he's running in the primary, but if he registered as a Democrat, then they'd all change their minds, right? Now, Gregory Meeks does have a primary challenger, Shania Shadri, support this individual, donate to them. I mean, this cannot be tolerated. We have Ted Deutsch representing Florida's 22nd congressional district. Also has a primary opponent, Imtiaz Ahmad Mohamed. Every single one of these people who are endorsing Mike Bloomberg, they are basically greenlighting the death of our democracy. They're communicating to you that they absolutely could not care less about the United States devolving into full blown oligarchy. And I use the word devolving into full blown oligarchy a little bit loosely here because you can even argue that we're already a full blown oligarchy if you're judging that based on policy outcomes, because we already know that's dictated by what elites want.  They're saying, you know what, I support what he's doing.  I believe someone can be so rich that they literally can buy one of two major political parties. How insane is that? So we've got, you know, the remaining Koch brother who has purchased their Republican Party and we have this oligarch, Mike Bloomberg, who has purchased the Democratic Party. Why not just like give them the keys already? Like, what's the point of us even voting? That's how bad the situation is becoming. This is the latest stage of capitalism before the system just collapses in on itself, because this is not a tenable situation like this can't go on. You can't try to prop up this system that's wholly illegitimate anymore. So all of these people, they've got to be out of politics. Everything that they say going forward should not be taken seriously because they're proving that they just care about their own careers. And I'm sure that Mike Bloomberg gave them money. Either way, these people have to go. They cannot be trusted. They must be primaried. Anyone who supports Mike Bloomberg is the enemy.  I mean, this is an individual who changed the laws in New York to give himself a third term. This is what liberals are screaming about Trump possibly doing. Crying about, oh, what if he doesn't leave office if he loses in 2020? You have someone who is as bad as Donald Trump, if not worse, in many ways, because he's more competent than Donald Trump. So who knows the damage that he can do? And if he takes over the Democratic Party, then I mean, we just have two far right parties. Is that where we're at? I mean, there's got to be some point where we say, no, we're not going to do this. We're not going to vote Blue, no matter who, we will never support Mike Bloomberg.  He can run against the devil. We're not going to give into this.  So anyone who supports that long story short, they're part of the problem and they've got to go. They should never be able to find a job in politics again. All of these people must be primaried. I would not hit the notification bell either. Mike treats me so unfairly.