Good afternoon, everyone. EuroBSDCon is very, very happy to have Stefan Spirling this afternoon talking about Game of Trees. Hopefully the ending will be better than Game of Thrones. Quick note, this is going to be a rather long talk, so there won't probably be time for a Q&A session. So if you need to ask Stefan some questions, don't hesitate to kidnap him after the talk. All right, have fun. Thanks, Stefan. Thanks. Thanks. Can you hear me? Okay, good. So this is... Oops, it could have been one slide too far. All right. So Game of Trees tries to be a version control system that is appealing to OpenBSD developers in particular. Not just at the functional level, but also in the implementation and the coding style and the design and the architecture of the whole thing. The license is ISC, and for various reasons, it's compatible with Git repositories. And also we try to have nice man pages that are easy to follow. There's a couple of people that have had input into this project. It's not just me, even though it might appear to be that way, but there's actually quite a few people I've had discussions with. And this extends beyond OpenBSD's community as well, because you'll see the former and the current LibGit2 maintainer on this slide. We work together at a company, and so they helped me a lot. Now, this is the overview of the general design. You have... Currently, there are two front-end applications. One is the command line tool got, and the other one is a graphical and cursor-based browser called TARG. And you have a library which contains most of the version control machinery you would expect. Like you can handle objects, cache them, you have differences between objects, you have code to manage a work tree, and all the sorts of stuff. And what's unique about the design in this case is the arrow that is labeled fork and exec. Because when we read Git repositories, we don't assume that they are a trusted source of information, but they are copied from somewhere on the Internet, and we are scared of being exploited and stuff, so it might be useful to wrap these accesses in a different address space with different utilities that then run in a separate process context. And that's how we read data from the repository. When we write to the repository, we just do it directly. For Git users, this is probably surprising. We don't use the actual Git work tree that Git maintains in its repository, so usually you'd have the work tree and the .git folder, but here we just ignore the files above the .git folder because we don't care about those. This has some advantages, for example, it allows you to really operate with both tools on the same objects, which is kind of neat. It also allows God to be a little bit different in the sense that it really only requires you to keep one copy of the repository on a local disk, and you can create as many work trees as you want from it, and you can also check out subtrees from those work trees. So you could have, say, a user source checked out from it, you could have your couple of kernels checked out, or some user land utilities like T-Max put them somewhere separately and work on them. The work tree remembers the passenger repository, it remembers the branch it's on, so there's a sticky branch for the entire work tree, and it also remembers the commit that was checked out from this branch. And the commits are checked per file. Usually you think of it as a global thing, but this tool is actually able to pull out some different commits, just like Git would be if you ask it to. So this is the platform assist that we're using currently. There is no network access yet, so you don't have INIT and DNS in here. Those would, of course, have to be added in case network support is implemented. But the helpers that actually read data, they have a very limited exposure to system calls, so they can really only do things like M-Map and they take file descriptors for reading data and file descriptors for outputting data. And so if an attacker gets in there, they can't really do a lot at the system call level. We also use Unveil where we limit the application to the pass it's actually needing. So, of course, the repository needs to be read, the work tree needs to be read, the slash temp directory is used. And also, if you import unversion files into the repository, we need to read those, of course. When you type a commit message, Unveil is not yet applied at this point because Unveil is supposed to extend from one process to another through Exeq and fork. This is actually not currently the case in the implementation, but the design of Unveil is supposed to make that happen eventually. So we can't really use Unveil before the editor is done because the editor might read its own configuration files, loadshed libraries, all sorts of stuff that we can't control. So for the commit command, you get Unveil protection as soon as you're done writing your log message. We also read the gitconfig file, but only to get user and author, username, email information that you might want to use just for default values. You can overwrite those separately. And this is the any parser is used to read this file and it runs in a separate process as well. Since I talked to Mattine about this last night, he asked me what are the helpers and I realized I didn't have a slide for this. So this is the list. You have the object reader is basically just reading the header. So in case we only want to know the ID and the size or something like that, we use that. And then you have readers for the different object types, which are parsing the loose objects that are in the file system. And then you have a reader for pack files where objects can be extracted from and you have a reader for the gitconfig file. I'm going to explain some git basics. So in case people know git already, the following few slides will might contain old information, but we're trying to keep this short. So git has several object types. The blobs, the bottom store file content pretty much as is. The tree objects are essentially directory inodes in this virtual file system tree and the commit objects point at one particular tree to create a snapshot of your project and then you can change those commit objects to create basically versions of your project as a chain of snapshots. You also have tag objects which allow you to label commits as released versions. That's pretty much the simple data model. On disk, objects are often stored in loose form, as it's called, when you create them, which means each object has a separate file on disk named after its ID. And this ID is derived from its content. So you have a type header, a size header, and then the data. And this all is hashed, currently with Charon. So git might change that at some point. And after hashing, you also compress the data with CLIP and write out the file. And that's basically how you create an object in the repository. Now this could be very inefficient because, of course, you don't want to have thousands of objects lying around on disk and bringing up inodes and things. So git invented a pack file format, which is pretty neat, actually, because while many version control systems will usually deltify between versions of individual files like CVS does, for example, this allows you to deltify across entire collections of files. And so, for example, if the license header is the same in all of them, the delta algorithm can see that and it can basically build layers of deltas to construct files and be really space efficient when it's saving things. To do this, they added two object types in pack files, which only occur there. One is a delta object with an offset that tells you where in the pack file the other object is that you need to read to apply the delta on top of. And the other one is a delta which refers to its base by the Charon ID of the object. You also have a pack index which is stored in a separate file and that allows you to know where the objects are. Basically, it's just a list of IDs and offsets into the pack file. On this, it looks like this. You have the pack index and you have the pack file. And this is a whole source tree that I packed. It's a gig of storage, which is a lot more efficient than CVS. And the pack files are also used in Git for communication purposes. So when you send a collection of objects between servers, they will usually be packed in the pack file. You use the same space efficiency to limit the amount of network traffic that's being sent around. Git also has a concept of references, which allows you to basically apply user-defined labels or names to particular objects. Generally, it's just a mapping from a string to a Charon ID or from a string to another reference. And mostly you use those to identify your branches because when you have a reference to a commit object that you can interpret that as a head of a branch. And references have... The names are strings, but they look like file system paths in a way. And they always start with refs. And then you have several categories. You have the heads for the branch heads. You have tags to find the tag object. And remotes contains multiple directories, one per remote repository that your repository knows about and contains copies of the history that exists in those repositories. And Game of Trees internally uses references for a couple of things and stores those in the refscot namespace. When you use it on the command line, you don't have to type refs, heads, refs, tags, and so on all the time. You can just provide a name and it will be locked up in the given order there. And to disambiguate, you can just use the full name. Okay, does anybody... Does Henning still have questions? No? Okay. You good? You can go on. So, this interface that was built for this isn't like a very new invention. It's just a combination of things that I happen to like and version control systems that I use. And I use all of the ones that are there on the slide. And I also use Fuzzle. And I've basically, because I've been working on SVN for many years, I have to sort of understand what everyone else is doing. And so I have a fairly broad idea of how people have implemented all these operations that version control systems do. And so I thought about what I like to see when I'm working with a Git repository and started to just implement it bit by bit. And I also wanted to make sure that I only write code that's actually going to be used by OpenBSD developers. And I don't want to add features that they won't need. So this saves time. And it also keeps the interface simpler. I also made sure that I don't use long options. So you only have single-letter options. I also kept the amount of options at a minimum.  And you end up with a list like this for local version control operations. You can maybe look over this and see if you find your favorite commands there or not. And in particular, though, you should not assume that any of these do whatever they do in the version control systems you're already used to because they produce, let's say, a different way of consistency that doesn't exist elsewhere yet. Every sort of tool has their own way of making things consistent and this is just consistent in a different way. This is a small example project that we're going to use. So I just want to show you the interface for a bit so we can just walk through some of the operations. So you see it's a HelloWord project, the Mac file under ReadMe. You would start off by creating a new repository. Of course, you can also use git to clone on and operate on that if that's possible. But for displaying around with it, this is the easy way to start. So we create a repository and we import files from a temporary directory into it. And two things happen here. Well, the files get added, obviously. It writes objects in the way we've just seen. And it creates two things.  So this commit has no parents. It's a root commit. And also it creates a branch for you because in Game of Trees, you cannot work on anything unless it's on a branch. And because the work trees have to know which branch they're on. And it also creates a head reference, but that's mostly for git. So the git knows what's going on. We only use the head reference as a default references. If you don't specify one. And so after an import, the repository looks like this. It has the head reference, the master reference, and the objects in the tree as discussed before. And then to actually do work on this, because we don't have a work tree yet, just have this bare git repository on the disk, you do a checkout and that creates a work tree. And this can be placed anywhere and you can create as many as you want. And you can also check out the same work tree from the same branch many times, which is something that git makes it hard to do. Then you do some changes. You can view your changes with status. You can use a diff tool to look at diff command to see the changes you've made. And this is a lot of boilerplate text and I had some diffs on the future slides and you can see all this context. But you can nicely see that it presents all the ideas involved in the diff so you know what's been diffed. And to commit, you use the commit command and you create commits with that. Of course I'm writing the full name of each command here, but they also have short aliases to make it easier to type them, but these aliases are not flexible. You cannot use or define them because I don't want people to go off and redesign the interface to their liking because I want people to be able to communicate and that only works if everyone speaks the same language, so no configurable aliases here. So once we have a commit, basically this is the same diagram again, except you don't see the tree of the first commit, which still exists, but you see a new tree and you see how the commits are linked and you see that the master reference has moved up. You can also discard your local changes, of course, and for that, like an SVM, you use the revert command, which is destructive and really deletes things you've written, so you have to be careful when using it. And you can also use this to pick individual changes from files, which is something that SVM does not offer, but Git does, so basically for Git users, this is the equivalent of checkout-p, so if you have two changes in the file, you can run revert-p, you can individually select the changes that you want and say yes or no for each of them, so here we say no because we like deaf adults, and here we say yes because we don't like syntax errors. And after that, the file is like this and we can commit it. And so this actually happened because JC has told me he often uses Git where he fixes a bar and he adds lots of debug print-ups to code, and eventually he fixes the bar in a small section of the file and then he has to go through and remove all these debug print-ups again. And there's a couple of ways of then committing only that change he actually want, and one of these is to just revert all the changes you don't want and so you can go through this interactively, you don't have to open the file in editor and search for the print-ups, you just go through them. Though because revert is destructive, you currently have to be careful what you do at this prompt because the change will be lost. I'm thinking that maybe that's not such a great idea that we should produce a backup in that case, but that's an implementation detail. Another example of how things are done here is it's again modeled a bit on subversion, so you need a work tree which is at the latest head of the branch which contains the bar change and you might already have local changes in there, we don't care about that, but this work tree will carry the changes that you're undoing, which basically means you apply the inverse diff of a commit that was already committed in history and the command for this is called backup and you just give it the ID so here it can be abbreviated and then it just measures change and you have the change in your work and copy like this. Huh? Nobody will ever need that. I think I've backed up some just before. Okay, let's talk about branches a bit. So we know that in OpenBSD we don't really use branches, what we do is to some extent we have stable branches for releases and we specifically switch the purpose of the head into release mode ahead of release, which could also be considered a form of a branch, it's just that we do it on the same set of files, we just declare that the purpose of this branch has now changed, but we still have stable branches and also we have some vendor branches in the code tree to import things like LLVM and things like this. But for now just keep in mind that we have references and they point at commits and that's what a branch is modeled as. What you cannot do yet in Game of Trees is you cannot create merge commits because I haven't yet found a way where I need this for my own workflow against the OpenBSD source tree. It could eventually be added, but I would discourage this use and confine it to very few areas such as vendor branches because we want a linear history that's easy to understand even for external consumers and having lots of branches in the project would just make progress harder for us. So currently there's no way of doing this, it would be easy to add, it wouldn't be a problem. There's already code to do it in theory it would just have to be added as a frontend. To create a branch in Game of Trees you use a branch command, you give a name, by default it uses the current branch you own as the base and then you can list your branches and you see that another one has appeared. Now all this did was really just create a reference, it didn't change your work tree just added this second reference to this commit and I just said that we don't really use branches in OpenBSD so why are we creating a branch now? The problem is that in this data model you cannot see changes other people have made before you copy them to your repository so you need to store those changes somewhere before you can even see them let alone merge them. So you need a space, some reference that says this is what happened elsewhere and this is what happened locally and you need to have that so normally ideally in a networked version of this you would store it under remotes somewhere but it's really just a name you just decide that some represent external state and some represent your local branches and then that's that so for this example we can pretend that the master branch is the remote state and to switch a work tree between branches you use the update command with the dash B flag normally update would not allow you to switch branches it would only move you up and down in the same branch but with dash B you can say yes I want to change the branch please re-associate this work tree with a different one and then nothing happens really because the hashes are the same of both of the branches but the metadata has been updated so now we commit two changes that are related to hiking somewhat and we end up with a repository structure that looks like this so hiking has moved up and master is still at the old commit that we started at so now someone else somewhere in the world makes another change if you try this locally you just get a second work tree commit to the master branch it's essentially the same situation and you end up like this so now you have two branches and they have diverged they have a common ancestor commit and you have two references that look at diverged history so now what's important here is that because we consider the master branch to be an external branch it's basically part of the official public history that the project has produced and our hiking branch are local changes that only we see because we're not allowed to change commit IDs of things that are already declared part of official history upstream we cannot change the IDs of things on the master branch so 33AB and 3490 are fixed we cannot change them however the other commits can change and since the hashing of git runs through the entire trail of objects that reference each other these hashes will change if we change the base of these commits but we have to do that in order to keep history linear so if you want to make history linear again we have to take those two commits on the hiking branch and move them up to the current head of the master and that's called rebasing and this is basically how you merge your local changes with the incoming changes in this tool so to rebase again a work tree and this time this work tree comes from commit 33AB and it's on the master branch because that's where we want to rebase hiking on top of so we basically we get the base that we want the history to be applied onto and we're not allowed to have any local changes in this work tree because that just avoids unnecessary merge conflicts then game of trees will internally switch this work tree to a temporary branch and apply the commits that you've made before on top of the new base and once all that is done and has succeeded it will take the temporary branch and this one becomes the new hiking branch and the old hiking branch basically just sits there in the repository and can be garbage collected at some point which is not yet implemented so you could run git gc or something like this to really delete it but it's not really important so this looks in the user interface it looks like this you switch back to the master branch and you say rebase the hiking branch please and then you get conflicts of course as usual now the conflicts look as you would expect and you know in the status command you would see a C for this file because it contains conflict markers so there's a couple of ways version control systems have done this some have special conflict metadata that says like this file was in conflict and you have to run a command to clear this flag so that you may commit it in this tool it simply looks for these conflict markers and if they're still present you cannot commit once you remove them or change them even it allows you to commit them I wanted to briefly explain I think we have enough time still that how this merge is actually done how do we get this conflict and why do we get this output that we see because I've seen a lot of people actually using these tools but never really understanding how the merge conflicts come about and always complaining that merge conflicts happen and it's all magic and not really clear how it's happening so there's a simple way to represent or to communicate the idea of how diff3 actually works so with diff3 you get three files as input and in our case there's an original file which is the one that was in the commit at the very bottom of the shared history of the branches as we saw them before so maybe I'll go back until you see less so the base comes from the original comes from commit3490 that's where we take one file from the other two files are on the tips of each branch so then we call these files A and B and you can imagine here that every number represents a line of text in the files just to make it easier to visualize how the algorithm works so what it does is compares the original file to A the right file number A and again the original file to the derived file B it never compares A and B directly and it marks the regions where each of these files differ from the original and if these regions don't overlap it just produces the output below and basically takes the sections that the files wanted to change and in this case the merge says it's all good whether this still compiles and actually works is a different question this is not the responsibility of Diff3 but Diff3 produces a merge version that corresponds to this algorithm if you do this with different inputs so for instance A, B like this you would end up marking overlapping sections and in that case the algorithm can't decide what to do it has two versions of changes that are not the same on either side so it has to offer you both possibilities and that's why you see these conflict markers in the output what's perhaps a bit confusing is that you don't ever see the original file in this output Subversion has started actually to show it a few releases ago so now there we produce 4-way output or 3-way output for actual Diff3 results and some users have responded to that very positively so I haven't yet decided whether a game of trees should do the same but it's an option anyway if you want to know more about Diff3 there's this fantastic paper which also explains the algorithm with these OAB tables and has a lot more details now we've fixed the conflict basically resolution is arbitrary it depends on what the programmer really wants and we say please continue rebasing now we create a new commit that has we see the old and new idea of this commit that's been rebased but again we have a conflict so we have to resolve it again and this time we see that oh yeah we added a second line in our branch and we also have to merge that so generally you don't really get conflicts all the time like this but because of these toy examples I'm using they occur I've managed wireless changes with like 140 commits on top of obviously master and it's fine it's not a burden so then we fix this up and maybe even at other contexts changes whatever the tool doesn't care and we just say okay we're done with resolving this conflict and now there's two new commits our work tree is called on the hiking branch on the hiking branch again but this time it's the new version of the hiking branch which is rebased so now again we have a linear chain of commits in the repository and everything is good you can look at those in detail with the log-p command and you see the log messages the data author information and the changes that were actually committed so what's nice about this tool is that compared to CVS it gives you actual change sets across several files and everything and this really helps me also just looking through basically I stop pretty much following the commit mailing list and I just update my git repository and browse it to see what people have been working on it's pretty neat the browser oh no where we are here no this is a different one okay so people have requested features so I was basically done at that point with the feature set that was all I really needed apart from adding removing files and things like that and also stage changes for commit and contrary to git in this tool staging is entirely optional so you don't have to use it you can just run commit and always commit everything that's in the work tree but if you have stage changes the commit and diff commands and status commands change their behavior accordingly and only show you either staged or non-staged changes depending on what you ask for and commit will never allow you to commit unstage changes or something staged you also cannot update files which have stage changes and if you run into a problem there where you're behind the head of the branch and you want to commit but can't you have to actually unstage your changes which means you merge them back into the work tree and then update and then stage again if you like then there's a hist edit command which is like what git calls interactive rebase and it allows you to re-order commits you can merge them and edit log messages and all this kind of stuff and this should of course only be done with your local history but this is a great way of preparing diffs for review throwing out unneeded changes that you weren't really sure whether you needed them or not and just committed and all this sort of stuff so those two features combined allow you to manage your diffs pretty well there's a browser talk which allows you to browse commits view diffs, annotate files and read the tree of the repository browser and I wrote this mostly because it's a really really nice way of prototyping the needed functionality so this actually started very early on before it could read all the objects I already had some interface for this and it allowed me to verify quickly that my code was doing the right thing and I already had a user which is MPI who used this tool a lot to dig through history and learn about how the network stack works in old versions of PSC and things like that so he was using a tool called TIG before that which is also okay but based on Git and this is basically the equivalent but written in C and it's faster actually even though it's pref-set so how did this start actually the roots of this whole thing go back to UBS Decon in Paris where a surprising number of people started talking about Git for some reason in the hallway at dinners and things like this and when I was present people looked at me and said well you know version control so can you give input and yeah so we ended up, I ended up thinking well it seems like a couple of people interested in this and I can help and I invited Carlos who's at GitHub now from the LibGit2 maintainer to a hackathon where he showed up in an afternoon and we went to the back room let everyone hack on their port stuff but a couple of us went back with Carlos to discuss how realistic such a project would be and what the pitfalls would be and we just basically people just threw in their opinions and their ideas and we discussed them and he basically vetted them against his own understanding of Git and at this hackathon I started writing code to read references which is very simple and started reading objects and by the next hackathon I had done all the objects all the object parsing it was not using pref step yet it was just plain parsing code and pretty soon later I could diff objects and I started pack files because a lot of tests I wrote for this tool were operating on its own Git repository initially and then I did a fetch or did a clone or clone it somewhere else and all the tests started failing because now things were packed and I didn't have code to read the packs so that was kind of unfortunate so I realized oh yeah I have to also add code to read packs later there was a command line tool I started using pledge I started to add fork and so on so it took like about a year to get to the point where it actually had a work tree that could be what was it doing that could actually be used to change files and edit them and I started using this tool for my own OpenBC development in February this year and it couldn't create commits yet but it could manage local disk which was all I needed to get going with mailing diffs out for review it also couldn't handle ads and deletes yet but that was okay because I knew how to work around those things and added that support pretty much after that I added the ability to update individual paths based on feedback from Theo who says that his build process pretty much requires the ability to do that and at the general hackathon this year we taught how to create commit objects and then things started to move a lot faster so once you have sort of like a basic toolset and all the stuff is there that you need to build more things on top it just accelerates and getting all this rebasing so basically I started with this cherry pick feature and then I had file mergers and then I could just do the rebases on top of that and everything just went really fast so in August this year we did the first release and we've had a lot of bug fix releases since they've been about for months or even one per week so every couple of days I just went through what people had either committed or what they had sent me or what I had done and if there were more than four or five changes that looked useful I just pushed out the release and it's in the pod street you can get it there and it's always up to date so this is where we are we have local versioning it's useful for individual developers at this point so it's good enough to for all the regular version tasks I only run git now to do fetch and push that's all I do with it the next thing that we need to make this really useful is to generate pack files because that's a prerequisite also for network traffic and this from my point of view this should be a separate admin utility that you use to do repository administration and consistency checks garbage collection and we also need to import for an external format of this data so git has what's called fast import or fast export streams I never remember which one it is that basically gives you a plaintext representation of data which is important because if all you have is a pack file and you can't even decompress it anymore because of bitflips on the disks then you pretty much hose and you can't you can forget about your project and I don't want people to rely on external clones for backup that's not a viable strategy I think we need a way to fix broken repositories locally just like Theo today is able to fix RCS files and I don't want to take that away from people like him who really have a tight chip to run, have a lot of responsibility and this data is really precious and you just can't afford to lose it so there I'm still looking for solutions and maybe these streams that git is writing are not entirely suitable for it maybe they are, I haven't really checked but if they aren't we can just make up our own there needs to be some kind of server and one important aspect of this is that we don't want to use this sort of MergeMeister model that Linux is using you know how this works so they keep pushing up changes between repositories and there's always a person who takes care of merging changes into this repository and pushes the collection up to the next one the problem that we have with this is that we don't want Theo to end up having to merge everything because he doesn't have the time also that's not how the project is supposed to operate we're supposed to operate as an equal collection of peers who have access to the entire tree and people are allowed to change things anywhere they want if they have enough review or if they follow the community process nobody stops me from going into UTF-8 or wireless or even relay to you or other things that have something to fix there and we can't require a hackathon of 70 people or 40 people in average to keep fetching changes from a server every time someone makes one commit so we have to have a way of basically doing rebasing of changes on a server if you've just gathered before or tools like this you will pretty much know how this works except we can skip all the review part in such tools that allow you to manage commits and merge them only once they're ready we would do our review as before in an email but a QA mechanism could exist on the server that allows people to just keep adding changes and the server makes sure that they can actually be folded in without colliding so you would provide the hashes of your base blobs and the paths that you believe these blobs exist at and if those assumptions are no longer true then your commit is out of date this is pretty much how SVN and CVS do it so you can just emulate this with the QA mechanism in Git and you would have your changes in the main repository with different commit IDs but it doesn't matter because they come back eventually roundtrip to your own repository and then you would just rebase your own commits on top and some of your local changes will just disappear in the merge this should only use encrypted communication for obvious reasons it could also be used to support a mirroring infrastructure and it would also be nice to have a protocol speaker here that's compatible with regular Git I don't have details in my head for this yet but I think it would be good because then this could become an easy repository hosting solution for small setups that are secure run maybe on your home firewall or and use OpenBSD in free-line unveil and pledge and so on of course we want to be able to transfer changes between repositories for pulling it would basically fetch changes and put them somewhere in a reference so you can access them and perhaps even automatically rebase a branch that you're on in your work tree but if it can't do that because of conflicts you would have to manually rebase pushing changes should ideally be supported by the server as I just explained Thio had this idea that he doesn't want to see the branches he just wants to keep working as he does now and I guess that's a valid use case and it's also something that I guess not he would want but other people would want to and it's also something that Fossil is really implementing so Fossil by default pushes commits to more than one repository when you run a commit so I thought well this must be possible somehow right we can probably do that and so there is a good way of doing this if you only look at local changes that aren't committed yet you can create a temporary commit object that the user doesn't see and you use the same push mechanism as you would normally use changes in history and you can just reply locally and you're done otherwise you require a fetch and basically then you boil the command set down even further and you won't have to use rebase unless you have real conflicts and you could just basically use the checkout commit update update workflow that people are used to from tools like CVS and SVN this is of course something that would need to be added once all this other stuff is there but in my vision it could be something where you say oh I want this branch to synchronize to the main server and then the branch would operate like that whereas if you have other branches where you say now this one is local or this one is not synced it's just pulling or pushing to this other server then you wouldn't have this behavior that's one possibility another thing I'd like to have is a web front end that works pretty much like CVS web it could just be another front end alongside God and talk and it would use some existing web technologies that we have probably it should probably be written in C because that gives you easy access to the library that is already there but I wouldn't be opposed to adding pro bindings or something like that if people prefer to have an easier time writing this kind of stuff okay I'm just two minutes over is it 45 or 40 minutes? 45 all right we have time for questions yeah we have time for a couple questions if you've got one come in the front Stefan thanks for your talk it was quite interesting I'm curious if you see this as a potential replacement of CVS in base for general development not in its current state in its current state it's good enough for myself I'm happy with that it's good enough for people to try it's just a package out of way I would guess that we'd need a couple more years for it to mature and it was already considered to move it to do development of this tool in base but there's a bit of a chicken and egg problem especially because once there is a server I would like to use that server with this project and then having to convert back from CVS to Git which could be done but it's just cumbersome so for now it's in a separate repository that I maintain thanks speaking on your personal repository is it already self-hosted? not yet but the server is there now so I was waiting for a proctor in Berlin to set up a server and that's been done and now I have to find time to actually set it up but it's gonna just use standard Git tooling that exists on Linux if I had a server already I would use it but I don't alright thank you very much Stefan thank you


Hey fellow reading warriors and welcome to today's video. I'm super excited today's video I will be talking about some books for a pride month this month Mishmashed in that there are going to be some books that I've read that I am recommending and then a couple books that I have Not read that I'm hoping to read for pride month this month Also, some of these books are contemporary, but not all of them are because I recently found some non-contemporary LGBTQ plus friendly books That is really exciting because I've been like looking for fantasies for the main character is not always just like straight. I Finally found some and so I would like to share them with you. So this will be Multiple different genres, but that's not to say that I don't have contemporaries and my first recommendation is a contemporary And it is her Royal Highness by Rachel Hawkins. This is a book where A girl from the States has always wanted to go to Scotland And so she decides that she's gonna go to college in Scotland and she ends up being roommates with one of the princesses and the royal family and it is an enemies to lover and I Loved it and it's just such a cute like enemies to lovers They spend so much time with the enemies though so that when you finally get to them being in a relationship It's like so satisfying the next contemporary have to recommend I recommended so many times so I won't talk about it that much, but that is red white and royal blue by Casey McQuiston I'm sure if you haven't heard about this book And then I don't know how you've managed to get by without it because not only do I love it But so many other people here love it and it is about the Prince of Wales and the son of the female president of the United States and they hate each other It's another enemies to lovers But then it also has a long-distance relationship and there's just such a thick political element to it I and there were so many times where I burst out laughing just in the middle of like a public area And I was listening to the audiobook and I know that's been true for some other people as well So if you've heard of it, but you just haven't picked it up yet Why you definitely should if it sounds even remotely interesting because it was hilarious. It was fun It was a tear-jerker Seriously The last contemporary that I'm gonna suggest is the Love and Lies of Rukhsana Ali This is such a beautiful story.  It's just not how it works, but it's just such Such an emotional story of a girl and her family at first not accepting her but then being forced to go to her parents home and kind of learn where they come from and spend more time in their culture and it's It's it's a good one. I think it was a solid three star, but I But I could see how it could be four-star Like it was a really it was a solid book and I just love the intertwining of like culture as well as like Like a modern-day American teenager and then add relationships and There's a whole mishmash of fun and then next I'll have three Fantasy-esque books to talk to you guys about the first one is a recent read and it is called Labyrinth Lost and it's by And this is the first in the trilogy and I'm currently listening to the second in the trilogy The trilogy is called the Brooklyn Brujas and it is about this girl who her family is a family of Brujas, which is the Spanish word would for which But they're slightly different because you know, they're not like witches Now an interruption from an outside person I Am Laura's husband. You might have seen me on a couple of other videos I listened to the very end of this trapped in a car with Laura. It was pretty good Trapped in a car. It was enjoyable highly recommend He even started listening to the second book with me, so Anyway, so our main character at Alex knows that she has power, but she really doesn't want it She's not interested in being a bruja with the rest of her family. And so when it come time for Her death day her day where all of her ancestors and family Can gather around her and give her a blessing to help her control her power as well as like gain more power She decides that she's gonna try and get rid of it and instead she kind of gets rid of her entire family So now she has to travel to the mythical land of Los Lagos to get her family back because um Oops, I really enjoyed this book. I won't spoil too much about the romance plot in it Especially because at first she seems like she's straight, but then later on you discover Maybe she isn't I believe she's a by-me-ing character and Oof The romance plots in this book are especially interesting because let's just say that every element of the book has twists and turns Moving on. I would like to mention master of one. This is a fantasy by Jada Jones and Danielle Bennett and this follows a thief named rags who is forced to discover a fey relic for the enchanter who works for like the king of the land or whatever and He discovers that the relic he needs to find is not a physical piece of something But is this really attractive like ancient What y'all looking dude? It was like an elf and so you see where you see where it's fine friendly there, don't you? But yes, no, they have to go through and they have to find all these different people and relics and Do something with it I I had a hard time with the book But I also know that if I had focused on there a little bit more probably would have been a better book And I know a lot of other people have liked it. So if it somewhat sounds interesting Go ahead and pick it up and let me know what I missed and then the last book that I have to recommend Also fantasy is one that I actually sat down and listen to the audiobook in one sitting It was Like we just went through it so quickly But we just couldn't stop and that book was girl so print thorn by Melissa by Shardos and this was Really good. I rated it five stars. It definitely wasn't like perfect But it just it gave me like the feels of a five star book like by the end of it. I was like Oh my goodness. Oh my word so much happened. There's so much political intrigue There is so much romance our main character Sarai here has the curse of being poisonous to the touch And so she's kind of kept hidden away in the castle so that she doesn't actually accidentally touch and kill anybody and Because of this she finds out that her brother is getting married and she's like I really want to be there and So she tries to go and figure out what is behind Her curse and how to stop it. So this features a by main character as well Alrighty and then for the second part of this video There are just two books that I would like to talk about that I want to read this month for pride I'm only giving myself two to read for pride because There is so much happening in June for me. I would love to read more and I think I might But I also don't want to say I'm gonna read like these ten books and then only end up reading my two of them So I'm hoping that this is a realistic kind of pride themes TVR for myself Yeah, cuz I've just I've been planning for so many things and then I don't actually sit down and read anything but Anyway, the books that I want to read Clap When You Land by Elizabeth Acevedo. This is because um the one of the sisters in it, I believe is I don't know if she's gay or bi But she has a girlfriend and she has to talk to her newfound family about it So this book if you don't know is about One girl who lives in the States and one girl who lives in the Dominican Republic and through a plane crash They found out that one of the people on that plane was their father and that they're actually have siblings And so they come together after finding this out and they have to grieve this man's death who they Don't actually think they knew that well if apparently they have a sister in a different country But I think it's gonna be very emotional. It's it's gonna be so interesting and so much fun So I I'm wanting to read that one But then I'm also wanting to read and I've said this for a little bit now And I kept thinking like oh, I'll I'm gonna be so excited when I get to it I'm just gonna read it no problem. And then you know, of course here I am I bought it months months ago, and I still haven't read it That is you should see me in a crown and this is by Leah Johnson And this is about a girl who wants to go to college But she really needs a scholarship in order to do so and she finds out that prom queen Actually gives you a scholarship. So then she's like, all right. I'm gonna become prom queen I am going to campaign and prepare and I'm gonna be prom queen and then all of a sudden this new girl at school shows up and I think the main character might be a little bit interested that also might foil her plans just a bit as well I believe this takes place in a town where we are students are not accepted and so I think for her to want to take this new girl to the prom is going to be very difficult very sad and That's probably what's ruining her chances to be prom queen, but I really hope she gets to be prom queen and just so So those are just the two books that I want to read during the month of June for pride Yeah, comment down below what you're reading in June whether or not it is queer friendly I would really love to know what you guys are reading and just talk to you down in the comments So feel free to comment your current read what you want to read Anything along those lines if you liked this video give it a thumbs up so that I can know that you liked it Otherwise feel free to subscribe if you're not already and hit the bell for notifications I post every week on Thursday ish And I look forward to seeing you guys in the next video, but until then I wish you all a happy reading


We are with us Philippa Brown global CEO of PhD and we literally have her all to ourselves for the next 30 minutes Thank you. Thank you for joining us. Thank you for having me. I'm delighted to be here in India And I think since your last India visit I think a lot has changed For the first time last year we had digital addicts kind of over taking the television addicts in India Which is huge so I want to understand from you from a media agency perspective Is it more procedures today to have a client who's investing more on TV in India versus someone who's spending a lot of his money's on digital? So that's a really good question. The way we look at it. It's not one or the other It's really what is the best mix to deliver the objectives of your clients business And we have a brilliant tool called investment planner which sits within our platform omni And investment planner helps us understand how much we will be spending on TV versus other channels like digital And so we never really focus on whether it should be TV or digital We really do focus on what's the best for our clients to reach their target market And that's the way we approach it. So we're very media neutral as opposed to what which way we should go Okay, and in the in the late night late 80s if I may say so most media agencies were focused largely on the media buying process PhD at that point in time had emerged as a challenger brand which was standing for which stood for Creative strategic media planning. It's been many many years decades since then and you're a much larger Older agency. Do you still consider yourself as a challenger brand? Yes, we do and I think the thing that gets misinterpreted by challenger is that it's about the size of a business It's not it's about a mindset And our mindset is very much about thought leadership pushing the boundaries challenging the status quo Innovating, you know anything to do with creativity. So that is still essential to our DNA and Really at the heart of our core values So that remains without a doubt and some of our largest brands like Diazio, for example Have a challenge of mindset as well. And they're one of the largest companies in the world So it's not necessarily about size. It's more about behavior and mindset Okay, and you know on one hand you have scarcity of attention from consumers Which I would call a challenge On the other hand, you have this option where the consumer is available 24-7 across mediums Which I would call an opportunity. Would you say the opportunity Dwarfs the challenge or is it vice versa? It's such a good question I think this is something we're sort of graphing with at the moment One thing that we now talk about is it's not about reach just pure reach. It's about attentive reach So we've built this algorithm into Omni which allows us to measure attentive reach not just pure reach So we spend a lot of time looking at which channels will give us the best attentive reach not just reach and So if you can blend the two of them, then that's really what we're looking for is really the whole I suppose the sweet spot as they say And you know interestingly, I think you were appointed the CEO of Ph.D. Globe with CEO Little before the pandemic 2019 Did the Black Swan event that we all came across tamper with your blueprint for the agency Globe? Yes, I mean it really did. I have been running Omnicom Media Group in the UK And I'd always been based in London and UK based And when I was given this opportunity by Omnicom to become worldwide CEO I was very excited and I imagined myself, you know going to see the 6 000 staffs that I have across the world and then yes the six months later the pandemic hit and I basically ran The the network from my bedroom in London, which was Mother while they're disappointing So yes, we had to like everyone we had to Change the way we operated. It was all remote And now I'm just so delighted that we're out and about and meeting people face to face like here in India So it was a very very difficult start. It didn't stop us though from doing great work You know we during that period Well, we just won Diageo. So we transitioned Diageo We won Chanel over that period. We won Ekatera We had brilliant retention rates. We became media network of the festival at Cannes in 2021 So we still did fantastic work. We just did it in a different way We had to adapt really quickly to that. So it wasn't the start I was expecting And now I feel like I'm sort of you know on the road seeing different markets getting to see clients Face to face because I do believe you can't beat face to face In traction. It's it's the best way But we we did well. We had three very successful years or two two very successful years, which was great Which are the big clients you're meeting while you're here in India? Well, I'm seeing a number of clients. I'm seeing VW group. I'm meeting with HSBC. I'm meeting with Diageo So I'm seeing a number of clients, which is great Okay, you know a little after the Phantom make I think we could kind of leave it behind us and normalcy was just on its path to return We saw the slowdown in Europe. I want to understand from you. How did that impact phd's revenues? Globally and for specifically in India. Yes, I mean PhD I mean it started in London But actually our biggest office is in America and we have been growing hugely in apac as well including india as you know You know, um, we had brilliant billings growth in 2022 So we're much more balanced as a network now So overall our global billing still grew and so did our revenue across 2022 So the fact that we've become less european based as a network and more America and apac has really helped us So the impact was was less than you'd have thought really Basically because we've grown so much in the other regions with work line clients cautious in Europe while spending at that point in time Yeah, I mean there were some markets that had real slowdown another and obviously, you know, it wasn't just about the pandemic We also had the war in russia, you know in ukraine with russia and that had an impact on europe as as well But still the uk still spending, you know, some of our clients were very Pandemic, you know, it was it was more about less about What they were spending how much I was spending it was how they were spending. So for example Um our commerce revenue and billings just grew massively. I mean e-commerce during that period was you know Huge for us And so there was a shift in the way clients spent as opposed to not spending at all And I think we've all learned a lot from previous recessions Is that when clients stop spending behind their brands, it takes them longer To recover then if they kept the ad stop going and kept the existing for exactly and kept the brand equity Growing and and stable. So I think that also meant that there wasn't a complete drop-off at all So, you know, it's not like that's they're going from a standing still So, um, yeah, we've seen quite a lot of that happening I was going through the revenues of of networks across Uh, I realized the omnicom closed 2020 with 14.29 billion dollars Organic growth of 9.4 percent almost 10 percent WPP has seen a strong performance in 2022 public publicist group registered double digit Organic growth and this was not the nicest here considering there was slowdown the war in russia like you said So what were really and a lot of uh laydowns uh layoffs happened in the tech in the tech sector overall So what were the factors that kept the media agencies afloat and growing at that? I think um, we've really um grown our capabilities and we've really created products that our clients want So our data and tech product like omni and omni studio have um really Really caught the attention of our clients and they're really investing in our products in that area I've mentioned commerce. That was huge growth for us. I mean absolutely huge growth our content Our sponsorship division. So all these other divisions now I mean we are truly sort of at the forefront of not just media but offering the complete marketing and comms solutions for our clients And that's what's really really driven our growth. The other thing is clients are coming to us now I'm asking us to help them with new operating models So, you know, all our consultancy products and services are becoming really important to them and to us and driving our revenue growth So, um, I think you know, we're now really delivering a lot more than media planning and buying It's a much bigger suite of products and services and that's why we're growing so much Okay, if you were to talk numbers, what kind of growth has phtc in india and globally last year? Well, we don't we don't give any as specific numbers on markets, but it's it's in it's plus. It's plus It's in the plus, but I can't give you the exact numbers. Is it going to be double? I can't really say But it's good. It's it's a strong performance. It's one of our top markets Because I think overall umnikom has remained cautious and it's outlook for 23. I think three to four three to six percent I think five percent. Sorry. Uh, growth is what they forecast. Yes So just trying to understand would it be the same for pht even in india or is it going to be different? No, I think I think it's all aligned We're going into the market cautiously optimistic Um, you know, there's a lot of talk about the being an economic downturn But actually when you look at our revenue forecasts And the invest the forecast from our clients We're not seeing that come through. In fact, we are seeing growth in terms of our clients spend in 2023 That's what they're forecasting. So whilst there is quite a lot of our cautious Uh, cautiousness around the world and this is around the world And at the moment we're still seeing positive growth Being forecast for 2023 Um, but I think you know, we've just got to keep on monitoring it And seeing what the impact of the war is seeing, you know, um, there's some still supply issues There's obviously impacts of inflation in different markets So we've just got to understand, you know, what that means But the moment all clients are forecasting majority clients are forecasting a growth in spend for 2023 Okay, and just want to understand where does india's fit in the scheme of things for pht? What kind of revenue contribution does it have overall for pht global? Yeah, a rough number would do It's a it's an important market. It's a you know, it's a top 10 market for us. Yeah Okay And you know, we've seen a lot of layoffs happen in the tech sector. Did you see a lot of uh, good talent Come back to the agency that has been a challenge. Did you see this workout in favor of agencies? Definitely definitely without a doubt.  We've actually calling it now the great return Because we're having lots of people come back um from those tech companies, um, and that's meant that the pool of I mean, it's been great for us, you know, because we've got real capability and talent coming back into the industry and Agencies are a very attractive place to work. We work on all different types of clients. You can learn lots of different skills Uh, we invest in our people. Um, I just talking about some of our training and learning development programs We're putting in place for this year And so and and we have flexibility of working as well. So, you know It's it's a very attractive place to be. So, yeah, we're having people return from those businesses back to us, which is great Fabulous. So you spoke about your global clients. Uh, which are the biggest Indian clients at this point? The biggest clients that we have in globally in India in India in India. So, um, VW group would be one of our largest, um Clients globally as would Diageo is huge. Um, so, um, you know Skoda, VW, Audi or the Diageo brands are very very big here in India. Um, In terms of the local clients, I think Vivo is very big, isn't it? Um, so, yeah, we've got a number of big big clients here in India And are you very proud of the number of new clients that you've won and are you happy about the number of new clients you've won? Yes, I've been echo and Laughing cow if I'm not wrong. I mean, which are the others if you might Yes, yes, no, no, I'm I am and in fact, um, the pitch slate is massive at the moment. Um, The I mean, obviously number one priority is always going to be on client retention at number two, we always have to look at, um, new business to drive our growth forward as well and also You know to keep keep people motivated and try, you know, working in different sectors as well But overall, yes, the new business performance in India has been fantastic and globally Um, we're actually at the top of the new business league Net new buildings. So the way that's worked out on convergence Is that it looks at the difference between Gross buildings so net new gross buildings versus losses and phd is right at the top number one in net new buildings So which is great globally, you know, uh, conversely, I think in India I was going through the RECMA local agency ranking Phd didn't really come in the top 10. Um, at the same time, I think, uh, in the last three years numbers, you know It did appear on the eighth position, uh, in the, you know, the growth rate So I want to understand from you what what is where is the scope for growth here in India? Yes, it's a scale a problem or is it something else? No, I didn't I don't I think scale is a problem. I think, um Really now we have to double down on what makes phd different. So all the thought leadership the create our approach to creativity and innovation Um, we've got a really talented senior leadership team here Um, we had had some turnover issues Um, and now I would say the team is really settled and I think 2023 almost would be their best year ever actually I really do believe that I think they've got everything in place. There's no reason why it shouldn't be Okay, you spoke us. Uh, you spoke sometime back about how client relationships today are much more than about media buying Yeah, so what does the client of today want from a media agency? Yes. Yes. Well, it's lots of different things actually So I think one of the main things that we have to focus on As a agency is understanding what clients want Um, because we shouldn't just be selling to them We should be understanding what clients want then packaging up what we have in terms of our capabilities and talking to clients about How we can help them achieve their objectives and grow their business So that is a real trick and something, you know Part of the learning and development program that we've put in place called phd learn is about brilliant client leadership Um and being able to work with clients to be able to deliver to those Um questions and help clients grow. So, um, you know, that's it could be anything from helping them with their commerce Um, you know, their e-commerce challenges right the way through to as I said Helping them with a new operating model, you know, what do they in house? What do they offshore what to You know, what sits within agencies still, you know, they're also asking us a lot of questions about how they can Work across the whole of omnicom not just omnicom media group But other areas. So how can we work all closely with omnicom pr agencies or omnicom retail agencies? So that's become a big question now as well and how we can go as a collective Together to our clients. So there's a whole host of things really Inhousing a very big challenge as far as yeah, well We embrace in housing actually because there's certain data and tech that we can help them with and provide in housing So we're not sort of scared of in housing at all, you know, we we then become all the consultancy to help clients Um, you know in house certain products and and we do agree that certain Things that you know part of the marketing mix should actually be in-house, you know, it's it's just makes it They may be Well, I mean, yeah, I mean there's uh, well, there's you know, a whole host of things But quite a lot of clients now are doing, you know, some of the parts of the commas in house Um, you know in um, seo is going, you know in house So there's quite some of the content, you know, um is in house So there's quite a few parts of You know the marketing mix that makes make sense for it to be in house without a doubt Okay, you know another threat is, you know, we always hear about our consultancies are kind of encroaching into the media agency space Uh visa we I want to ask you do you think media agencies are getting into the creative agency space today? I don't think we're actually getting into the correct I think we're very different in terms of our starting point What I'd like to see is more is, um You know working more closely with the creative agencies Especially the omnicom creative agencies. I think there's a real opportunity You know, when I first started in the in the business, you know, it was all for service I worked at Bartlett-Burgle Hegarty, you know, and it was big agency as you know, big global and it was all together Then it separated and now I think more and more there's an opportunity for us to work together and actually omni Which is our platform is a platform that is set up for creative and media to work closely together And that's again going to be a big objective in 2023 for us to work in that platform together to explore audience insights You know to work on ideas generation together to work on briefs together And so we need to see more of that happening Yeah, another I think a big trend that we've seen in the creative space Let me say is coming together of digital and traditional agencies You've seen something similar happen very recently even the media space with essence and media comm coming together Do you think that's a way forward like every big agency which has been very good at traditional needs to come together with A digital agency. Is that the way forward for phd? Yeah, no, I don't think so From my end, um, I think what we should be better at is packaging and digital Um offerings because actually if you look at our Um total billings 50 percent of our total billings is digital globally So, you know, we have a huge amount of digital Um people and digital buildings What I don't think we do as well as digital specialists is package and market What we're doing Um, and I think sometimes when you're doing so much you get called a generalist as opposed to a specialist But actually we're doing exactly the same Specialisms. I just don't think we're packaging and marketing enough and telling our clients enough about the brilliant stuff in performance marketing For example that we're doing we have a huge amount of performance clients And yet we're not, you know packaging it in the way we should because You know, we're not focusing on packaging it in that way. We're focusing on creativity or strategies So a big thing for me in 2023 is making sure our clients understand our capabilities in digital and data better Okay, and you spoke about how 50 more than 50 percent of your buildings are on the digital side. Yeah, how was it in India? That was globally. Yeah. Yeah. Yeah, exactly in india. It's about 25 30 percent Digital 20 25 digital. Yeah. Yeah. Yeah. I mean, obviously there's there's always definitions in what is digital and what isn't But it's it's a big portion of their spend about third, I would say. Yeah Um, and you know another thing we are noticing now is you know, there's a lot of talk about how Chat gpt may eat away agency jobs. Yes I want to understand from you have you formalized ways by which it can actually eat the process of media by Is it in it in the pipeline or is it already there? Yeah, I mean, it's completely in the pipeline We've got a working party on it at the moment. It's really exciting I think we'll enhance what we do I don't think it's going to replace jobs because having looked at a few demos of what it can do You need human interaction, you know, because it's not the answers aren't always correct In fact, they're never correct. But what it does is they stimulate thinking So I think you can get to the answer quicker Definitely And therefore I think it's really exciting, but it's really yes. It's very much in the pipeline I know John Wren talked about it in the earnings call And you will be seeing some announcements in the next couple of months about our product and how we're going to market It's very very exciting. Any new efficiencies you're adding in the network at phd phd In terms of efficiencies any new Services that you're offering? Yeah, no, so I mean, I've already mentioned our commons offering and that's called Transact Which again is is bringing together all the different Retail marketing elements of Omicom So it's bringing together Omicom retail with all our e-commerce opportunities and creating this product called Transact Which is a consultancy, but it's end-to-end Customer journey in terms of retail. So that's something we're going to be pushing very hard We've also got another product an Omicom media group called Tracker, which is all around working and working with clients on their global marketing offering So google marketing offering, sorry So we've got a number and then importantly and very importantly is omg momentum Which is all around our d and i sustainability offering So a lot of our clients are looking at progressive media sustainability And that's our that's our product that we're helping again from a consultancy perspective Helping them identify what their future strategy should be in these important areas You've been with Omicom for more than 15 years. Yes, I'm correct You know, we hear so much about diversity inclusivity. I want to understand from you Did you ever come across any kind of discrimination while you were climbing up the corporate ladder? Because I was speaking to somebody very senior from when I was at can And she's heading a network and she spoke about how the industry colleagues would absolutely ignore her at industry parties Of course, it's a small part of it. But have you seen something on a bigger scale? Yes, no, so I think you know as I was so I started in the industry in the late 80s And so I think the industry was much more biased in terms of male gender And when I looked up and looked around and saw who was sitting on the boards and the senior leader There wasn't many women at all at that time I think we've pushed Really well And I think a lot has been done and now I look at boards around the world and they're much more balanced And I still think there's some you know, there's more to come. I don't think it's job done in terms of diversity And and it's always top of my mind and top of my agenda But you know Being a global female CEO just shows that omnicom You doesn't feel that way There's many global CEOs within the whole of omnicom that are female which is great But we have to keep on pushing and give um, you know Make sure that we give women and men equal opportunities to Grow their careers at omnicom and phd But I don't see it now anymore But growing up. Yes, I did in the industry without a doubt I really felt, you know, that it you know, I was being You know overlooked I would say but not anymore not anymore So you were the first I think a global CEO of an omnicom Network agency and then I think your chief talent officer kit. Yes, of course. And when I was in India So there are fair bit of women out there any specific policies or anything that you think in your agency should You know adopt or have in the our agencies to make sure that Women contribution. I mean women in leadership positions are not a rarity. Yes. No, I think um I think, you know, I mean as you say if I look in in India and phd manas is that you know The the CEO of phd and she's incredible I think, you know, we've just got to be more understanding in terms of making sure that women can have the The good balance, you know between their family and home life and their work life And I think there is much greater understanding than the way it was before I was talking about it earlier And also I think women should be confident about prioritizing and not trying to do everything I think one of our, you know, it's just sort of Part of our nature is we try to do too much And I think we've got to get better at prioritizing and saying no So that we can get a greater and a better balance Um, and therefore that does allow us to you know, be able to have families and great careers and You know not being afraid of putting ourselves forward for new career opportunities Um, I think men are better than women at doing that to have more confidence We've got to keep, you know building our confidence because it's equal. It's not, you know, there's some brilliant You know men and there's brilliant women. So it should be completely equal Fabulous. May you continue to strike that amazing gender balance and continue to inspire. Thank you so much Thank you very much. That's great. Thank you. Thank you very much Thank you


The frontline workers had limited knowledge on how to respond to this pandemic. I was getting worried because it's very, very important that the frontliners, which most are nurses, we make up 62% of the health workforce. If they get the right information, they should be able to influence the community. I wanted to be a nurse because I was impressed with the uniform. And I had relatives who were nurses. They were part of the community, but they stood out. When you do public health, it takes you to remote areas. In the places that I went to, the only way of communing is by food or horseback. You talk about delivering babies in the plantation. You know, I can almost write a book. Those experiences, they are gold, they are priceless. Certain cases would come to you and you would know nothing of it. But if you read and get the latest information, the latest research, it would reduce the panic attack that you have. When I was director of nursing in Fiji, we saw that the nurses in the remote and maritime stations will not get continuing professional development very easily. I was working in one of the remote stations. Things are according to the bus schedule. As soon as the bus leaves, then you really don't have any patients. So you start to do work on other things. And every time I'd see the nurses go off into another room and I saw them all gathered around and then they had the radio telephone on. This was happening every week. We started a radio program called Health on Air. It was funded by the Australian government. We had developed that program to reach the nurses out there in remote at a particular time and they can have the knowledge and skill that you want them to have. Sister Selina would be coming with different topics. And this was basically to educate the primary healthcare nurses. We learned something new. I learned something new at that time. So I would also join them every week and listen to these sessions. In the context of COVID, the main concern was the fear amongst the nurses. They didn't know how to protect themselves as healthcare workers given that they're frontliners and then protect the communities that they serve. Capacity building was one of the greatest needs. We were sitting around the table and the challenge was how do we get to the nurses at this time where there's lockdowns. And that was the light bulb moment when I realized that, you know, yes, we've done something similar to this and we could build on this program. And that's how the whole idea of healthcare care came about. Healthcare on Air Pacific. We were able to develop this program not only in Fiji but make it a regional project. We came up with 41 topics. We developed scripts in a way that would be engaging. It's something that we give them that are generic and they develop it to suit them. Some of them translate it to their own language like Tonga. Fiji unfortunately received the Delta variant in country. We are glad that the Healthcare on Air program had started way before this current outbreak that we're having and one of the tools we are fortunate right now to have is the vaccines. The misinformation was one of the biggest threats to the vaccination program. And to accelerate the vaccination, we had to ensure that the nurses were well equipped when they're talking to the communities. And so we developed scripts around how to engage with the communities when talking about COVID-19. The nurses, it increased their knowledge and the subjects that they were coming were of interest. It was very short, simple to the point and very much what they were lacking. It allowed them to be more confident and to ensure that they are able to protect themselves and continue the services that they are supposed to provide to the communities. It's not something that is just for this COVID. The world is going virtual now and so this may be the platform to continuous professional development.


Hi, my name's Catherine Collara. I'm a teacher at Northern Peninsula Area State College. I teach at Bamega Primary Campus. I've been teaching for three years and loving every second of it. I gained my education through a Rata program which is Remote Area Teacher Employment Programme and that was a five-year course. I was a teacher aid for a Grade 5 class and the teacher at the time had asked me to to apply for Rata and he had a bit more faith in me than I did but I gave it a go and I was thankfully accepted. I studied two years at the Fire North Queensland TAFE and three years at James Cook University which enabled me to study on-site at Bamega. To gain a degree in any field I think you need to have determination, commitment and direction and you need to have a complete support network surrounded by your family and friends to ensure that you can achieve those goals and be the person that you want to be. High education has enabled me to teach in my home community and it has allowed me to be an inspiration if not hopefully for some of the people in this area. I think the the most positive thing that you can gain from any success is being able to do something that you truly and want to do and to inspire others to do what you're doing as well. I have thoroughly enjoyed meeting new people in the program. I had the privilege as well of giving the graduate address at the university graduation so I thought that was a massive highlight and a great achievement. My family were very proud of my successes and I was very grateful for their support and you can't get far without family and friends.  It's a great process and it's a path that you won't look back on. You'll get to meet new people, you'll learn new things and as you develop through your career once you become a teacher you'll continue to engage and learn with the children and the community.