Hello and welcome to CMC Markets and this quick look at the week ahead beginning the 12th of June. And what a last few days we've just had because what should have been a fairly straightforward election victory for the Conservative Party has turned out to be anything but. In fact, Theresa May's wish to get an enhanced mandate for her negotiations with Brexit has only served to weaken her further and make it much more complicated with respect to further negotiations with the EU over the Brexit process. Now these negotiations are supposed to start on the 19th of June, but at the moment we still have no clear idea of what form the Conservative Government will take. The Conservative Party is the largest party, but they have fallen short of a majority which means that they will have to rely on the kindness of strangers to get over that 326 seat mark to be able to govern effectively. Now the likely candidates for that look like Democratic Unionists who won 10 seats. And ultimately I think if they are able to come to an arrangement with the Irish Democratic Unionists then we should find out whether or not the Conservatives are able to form a minority government. That seems the most likely outcome if the Conservatives are unable to come to an agreement with the Democratic Unionists which seems unlikely given that the Labour Party remains some way back and Liberal Democrats have ruled out any form of coalition that doesn't necessarily mean they won't rule out a confidence and supply type of motion with respect to supporting the Labour Party and obviously the SNP as well, but on the face of it they don't really have the numbers. So I think unless there is an agreement between the Conservatives and Democratic Unionists the likelihood of another election somewhere down the line remains a distinct possibility. Against that uncertain political backdrop we've also got a raft of UK economic data coming out this week starting with the latest inflation numbers and they're expected to remain broadly as they were in the previous month at 2.7% so UK inflation data for May 2.7%. We're also expecting to find out the latest unemployment data and the latest wages data, the average earnings data and that is expected, the wages data is expected to come in around about 2% including bonuses at 2.4% a slight increase. Their unemployment is expected to remain unchanged at 4.6% and we also have the small matter of a Bank of England rate meeting. Now it probably won't be any surprise to anybody out there that the Bank of England are likely to do absolutely nothing at all given the political uncertainty currently unfolding in the UK at the moment and if anything I think there's a decent chance that Kristen Forbes in her last meeting as an MPC member could well actually reverse her vote to raise rates simply as a result of the political uncertainty they were seeing played out as a result of the surprise election result at the end of last week. So that's the key political risk with respect to the UK. We also have UK retail sales as well which should give us a good indication as to whether or not we've seen or we've seen a slowdown in May after the bumper retail sales number that we saw in April and whether or not the rising prices and the flatlining wages has further crimped consumer spending further. So it's going to be a big week for the pound this week and the likelihood is we could see sterling come under further pressure against the dollar. We've broken below that very key support level at 1.2750 but at the moment we still remain above the 100 and 200 day moving average but if this particular problem isn't resolved fairly quickly then I would expect the pound to come under further weakness in the coming days and weeks ahead. One thing that could support it however is the prospect that any type of hard Brexit is pretty much now on the back burner and maybe there will be much more softer version if you like and maybe Brexit may well not happen at all. At the moment that's still pretty much up in the air but the market could start to price that in. Also coming up this week we've got the latest Fed meeting. The Fed is expected to raise rates this week by 25 basis points. It would be a big big surprise if they weren't to do so but what they could well do is they could come out with a particularly dovish statement and a particularly dovish press conference as well because certainly given some of the data that we've seen out of the US it has appeared to be evidence that the US economy is slowing down the reflation trade is starting to unwind and Donald Trump's problems as US President could well mean that any reform package any infrastructure package could be delayed even further and that's likely to place further downward pressure on the dollar. Also keeping an eye out this week will be Chinese industrial production and retail sales data and given the trade balance data that we saw at the end of last week there could be some evidence that we could see a significant pickup in that data for May. So that's it for this week. Thanks very much for listening. It's Michael Houston talking to you from CMC Markets.


We know when we sit down we are definitely going to have a nice conversation So today with me I have Bill Ha Now she is an actress, she is a model And she is the leading lady in a movie that is about to premiere That will premiere next month, a very very good movie by the name Meno So she will be telling us about herself And we'll get to see the trailer of this movie And just to know what is there So that's on the day of the premiere You can actually get to experience the movie itself Bill Ha Welcome to the show Thank you very much How are you?  Say one now Okay Young and beautiful I am 19 I am a model I am an actress And I am a student of the Kenya Institute of Mass Communication Okay, so which one came first? Is it the modeling or acting? Acting Acting definitely came first Because I started acting way back in class 4 Going for the Kenya National Drama Festival All the way to Form 4 And now in college I'm still going for the drama Yes So how has acting been for you? Definitely something that you loved from a young age And up to now you're transitioning from theatre to film So let's talk a bit about theatre So that you can get into the film side of it How has your experience been in theatre? Theatre Theatre has been I can say life changing Because once you are on that stage You're not yourself You're a character And it boosts your confidence to some high level Because you're not just in front of two people You're in front of a whole crowd of 50 plus So from class 4 to right now I can say it has changed me a lot Confidence I can stand in front of many people Something many people can't do I know I remember one time Because I also loved acting back in high school Until now I remember one time we had gone for National Drama Festival So I was on stage I had an emotional scene And then palekwa window nona Mtu la paya You know what Doing walking faces And you have to keep You have to remain in character Even when they do that So stage is not the easiest It's not the easiest I remember having problems with Articulating my voice You know you have to That's why it's too much But that's still a thing That's why it's too much Because when you remove it from here It's all coming from here And also from my directors All the way from My primary school to college They have been the best Honestly Because once you're up there You must tell you Relax It's something you love So I would just like to Say thank you to them Without them And I'd still be like You're still doubting yourself Okay So stage and film Are two different things Because you know Stage you have to I don't want to say Overdo is not the word But you have to Use your body Use your face And use everything that you have But for film So how are you finding the transition From stage to film The transition from stage to film It was quite difficult When I started But as time goes by I'm finding it easier To handle it Because the first time You're just there like Yes You have to do this And this But then in film It's just being calm Relaxed And just being yourself Just the way we're having a conversation That's the only way You have to do it in film That's true Not like stage film So it's not It was difficult But now You have adjusted to it Yes So you've told me that This is your first film Yes Wow Okay, tell us a bit about that And how you got To be the leading lady of Mino Well I got to see the audition Online I was sent for by a friend And I forwarded it to my mum And I was like Do you think I can do this? And then she was like Okay, so which role are we taking? Is it Mino or the best friend? And then she was like I was like Okay, you have a lot more So I went to I came to Nairobi I'm from Nakuru I came to Nairobi At like 9am And then I went in for the audition Did whatever they told me to do There were so many people There were like 100 plus people Okay Just for one audition For the role of Mino No, everyone But also That was a lot The audition ran from I think 2pm to like 9pm Or 10pm I don't know So we did whatever we did And then after a few days I got a call back They told me You've been selected You are one of the few people who have been selected So just come to the Kenya National Theatre tomorrow At 9pm Now let me tell you There's a story behind that Okay, we love stories I was in Nakuru And they told me Tomorrow in the morning You have to be here Morning How early is this morning? You know there's morning at 8 Kuna morning at 6 Kuna morning at 10 Morning at 9am Okay And I'm like So I told my mum First off I usually scream a lot After I get a call back So when I was screaming My mum was like I mean in Afanika So I told her the news And she was like Eh, okay So 5am in the morning I was up And in a car Coming to Nairobi So by the time 9am reached I was already here And then When I came back There were still so many people there And everyone had been given a role But the number of people Who were given the role of Meno Was so many And I was like Okay, you thought you had gotten it I thought So we did a re-audition Again And then At I think 5pm I was chosen And I was I was amazed Because I'd never done such a thing Ever It's your first one And to get the leading The leading role So I was like Eh, okay Amen Just amen Okay, interesting Eh, I know it must have been A lot So we have The trailer for Meno But before we get to See the trailer Just tell us a bit about Meno In very few words I don't have to see any details Now what is Meno about Meno is a Is an African themed movie That talks about this girl Who was really not agreeing The norms of the community Because it's based on the 1800s Where whatever was said Was said And if this is how our community does it There's no other way we can do it So Meno is a character who She just wasn't taking it And in the movie So many things are unfolding About very different things In communities Especially African communities Many secrets are being revealed Many secrets are being told And very detailed stuff Are being told to us Through the movie And there is a message At the end of it all That we are going to see About this whole thing Meno That Meno brings to us So she is Meno So let's check out the trailer And just get a glimpse of What Meno is all about Chief I know you're in there Can you come out I want my husband Mama What is going on Sorry to break your heart But my heart belongs to someone else And the people of Buju I am the people of Buju Is it too late in the night For such matters I want you to marry me You are a very big disappointment Every sunrise Every sunset I see the mistake that I made Meno was not meant for you So face it So you have just seen a glimpse Of what Meno is all about And as you can see She is the leading lady In that film And this film Because I had interacted With a few people who were part of it And from the stories I had You people were shooting In the forest During that July season When it was a very cold Shizon ya baridikam sa Ile baridikin Atatungi kotunona na mele During that time And you were in this costumes that They are covering a lot And shielding you from the cold weather So how was that The first day We were like Are we really going to shoot Because it was so foggy Misti Kuluku kwa ku white Literally And tuluku kutunengi wukondani Kwa forest But then Let me tell you I don't know what happens But once you are in character And once you have started rolling Once you removed your gamets Your shukas Una jipata tu Ya At first it was But then as we went on Tulizoya Tulizoya So how long did it take you to shoot the film? We took ten days Since the 13th of July Onward We started in A different location A much warmer location And then we switched A different location So being your first film ever How did you feel after completing it And knowing that You have actually delivered It was a nice feeling You see when you call yourself for a meeting In your head And you're like Okay, we've started living our dream We've started actually doing it So this being the first one Let God open up many more doors Ya, it meant that So you know When you're acting You are a different person And you have to tap into a lot of emotions A lot of Different range of emotions Filming for ten days Will make you be that person That person You have to switch back to the person That you are How did you handle that? Transitioning from Being mino And coming back to being pilha It sounds easy by the ear But it's not that easy It's actually easy Coz when we were filming We are village girls We are in the analogue era Where communication was through Whisling Fire That type of stuff And then when we finished Filming when we wrapped up It was like Tap back into reality very fast Because you go to your place You go to your homes You don't see the usual people you are Used to seeing The clothes you're now wearing The clothes you've been wearing For ten days straight You're now wearing jeans So it was tricky A little bit Just a little bit But then As time went by I got back into the system Back to Instagram Coz for those ten days No phone No phone I just wasn't really even interested In my phone Plus even at the end of the day You're tired You just wanna rest for the next day Or be fresh and ready for the next day So do you have any ritual that you do Before you start filming Or maybe before you go on stage Is that something you do? Not really But I usually Try to stop tensing a lot Coz people tend to tense a lot And become really cold Coz my fingers usually get very cold Before anything happens So I just talk to people That's what I do I talk to people But at the same time I'm still internalizing What I'm going to do So at the back of your head You know what you're going to deliver You know what you have to deliver But then You're just interacting with people To let go To let you So we have seen the trailer Of me And I know maybe people are wondering Where can we get this film When is it gonna premiere Tell us a bit about that The movie is going to be premiered On the 16th of December Just a few days from now I'm so excited You don't even know At the Allianz Francais The tickets go for 1,500 For regular And for the VIP It's 2,500 So 16th of December At Allianz Francais From what time? From 5pm They're going to be cocktails They're going to be some food Food is like food You're well-certed You're in for a good treat So what should people expect from Mino? Mino is going to be one of the films in Kenya Not only in Kenya but all around That's going to be different It's not like any movie That people have seen It's going to be a new face Something new, something fresh And from the producers and the directors Their aim was to bring out new faces Yes I mean it's required I mean when I don't want to say that Maybe I sound shady But we actually need new faces The film industry So bringing out new faces For a fresh thing And from what you've seen There's nothing like that That I personally have ever seen So it's going to be Among us Yes, okay So in the event that You won an award I'm sure that By the time next year Comes around a time like this Is when we have Kalasha and everything Because I know Kalasha is The biggest film and TV Awading show in Kenya If you got a nomination God to win an award What would you do? First of all I know you'd scream Next That's a fact I'd just scream first of all And just thank God Because It's not easy And this far It's just him And also my parents Especially those ones Because through everything They are the ones who have been there They are the ones who have been encouraging me To pursue what I love In everything that I do And everything that I'm doing From way back when I was small And also encourage people to And show them that it's possible Because very many people Usually say that I'm young And I can't do it Let me get to 40 And then I'm going to do it Do it as young as you can Now As many things as you can That's very true Because when I was filming I was 18 I was like I'm not going to wait Until I'm 40 Because I just turned 19 This month actually Okay Happy birthday Happy belated birthday Thank you So For the young people It's possible To do anything you want You want to be an engineer Go for it You want to do low at 16 Go for it No human is limited So What are your expectations now That you have done your first film And it's not so many people End up in a film And as the lead character You want to know what others are You make your way To the supporting character Supporting us until you become a lead role What are your expectations My expectations are Going above and beyond I've been doing films with people That I've been admiring for the longest time People like Brenda Wairemo They are Catherine Sara Hassan Melissa Kiplagat Those ladies And just pursuing what I love Okay So where can people find you on social media On social media You can get me on Instagram At mis.mubui Also on Facebook And also Twitter When the premiere of Mino will be happening This is my camera So hi guys The premiere of Mino Is going to be on the 16th Of December at the Allianz Francie Tickets go for 1500 Regular and for the VIP You can get them at 2500 The official page For the Mino film is Mino Movie Official On Instagram Facebook And Twitter And also YouTube You can check out our Trailer And also our teasers Behind the scenes Everything For the people who love food Like me You can come There are going to be some Drinks There are going to be some snacks over there I'm going to see you there So thank you so much for making time to join us Thank you for having me I appreciate everything It was so much fun Thank you We will be there to watch me Thank you very much So you have heard Try those things as young as you are The older you get The less time you have for trying things So try them Because you have enough time to correct The mistakes that you find along the way So head over to YouTube Check out Mino trailer And remember to purchase the tickets Let's support Kenyan content We don't only support music We also support our movies Our films Short films Everything Kenyan


Zero so hello everyone. This is the weekly docabase chickens quick start example for GSO 2023 and today we have Ashutosh our contributor the avianto mentor and maybe we'll see Jean-Marc later on. Thanks a lot Go ahead Ashutosh wanted to share with us what you worked on lately.  So Let's example if it's working on dog Okay, so you would like me to try that. I can share my screen if you don't know go ahead, please You can see my screen, right? Okay. Yes. So I created a custom Docker image integrating The list of plugins we'll install I Did did the I added all the default plugins that get installed when the startup comes And when we run It should get us to the Jenkins startup With connected agent as you did in your PR But this one also dr. Compose file is easy for a beginner to read Okay, so as John Mark suggested that we can hide the complexity in the docker image. I Tried to do that. Let's see if it's working or not. What is the spins? Oh And you've got the Docker agent. Wow Nice progress. Well done Thank you Okay, it's connected Great Kudos, that's exactly what we were looking for Uh, that's cool. That's good news. Thank you now for bad news, just kidding, but Um, I saw that you made an image And posted it on your docker hub repo Registry whatever the correct name is that's cool but where is Your docker file is it part of this repo? Yes, right now It's the one it is just next to docker compose. Yes, yes Okay, cool What I was wondering is Is it necessary to host this image In docker hub or could we just use docker compose build instead of just Yes I don't know if that would be quicker or not. I don't know but People may be wondering Where even if the docker file is there where is the source of This docker image. How can I see what's inside? So I think that build instead of Just up could be better Better Yeah, what's your idea about that? Yeah, I think I agree to use work instead of just Using real image Okay Thank you Let's say I have another repo Where I do the two things at the same time in fact, you know, I reference Local docker file with build in my docker compose But I also have a github action that builds and pushes to docker hub registry The image that corresponds, you know, each time I make a modification in the repo It is built and pushed to the docker registry just in case there would be another use case So that I could share this image. So I don't know if that's that's not monetary I don't know if I made myself understandable, but maybe you could use Also a github action that builds and pushes to your Docker hub registry your image, but that's not monetary at all. That's just if you want to discover This part of github action But frankly not monetary at all for this project because it even doesn't use Jenkins It's you're interested in discovering that I can give you a link to something that already works for one of my repos But if you don't want to do that Fine with me. Okay, Josh Yes You can give me a look Okay, let me put in the note that your example was fully working. I Was also experimenting with creating SSH key pairs new SSH key pairs for every Every time docker we use docker compose up, but I was having some problems with it if I generated on the host machine Then it will be able to I will able to pass the keys to both agent and Controller, but if I generate on controller, I can't pass it to agent and with docker compose file I can't and generate it on the host machine so I was John Mark suggested to experiment if you if I can generate keys to So I was trying So, do you know any better way to effect that can work? I Have never thought of that never experimented with that I have no idea for the time being they are gentle. Would you have any input? I don't have Yeah, I was thinking I was thinking we can generate Key before docker compose file to it will get two commands Yeah, I have to use two commands I think if you want to use gitpod, I think there is some kind of hook That is called before running the docker compose. So maybe you could put something in that place But I don't see anything Gitpod related for the time being in your repo if there's something I haven't spotted yet No, it's just something that works with gitpod, but there is no gitpod configuration, right? Yes. No, it's not right now okay, so Maybe You could have a look You try to find the documentation Okay, and now I would try to find the link to the action My first, okay. I found the link So what was I saying? Yeah And so in the documentation I put them Link to a working kit of action that would do Well, there's a same thing and I put it in the chat too just if you want to experiment with that I was also wondering if we will need the persona After this if we hide the complexity in the docker file We might get to build only one if it's for beginners He or she will only look at the docker compose file and build with it if it's for or even some of them wouldn't even Look at the docker compose file. You just click on the gitpod button and get started So yeah, it was of I don't know if it was if it was a first or the second one But yes, of course some people would just want to have something up and running in seconds so these Kind of people will benefit from something that works out of the box Even if the complexity is in the docker compose or in the docker file or somewhere else as long as it works for them So that that's cool. So what was I about to write should find and share What oh, yeah git pod Git pods documentation about pre hook So we can generate SSH keys before launching this docker compose Once again, this part is not mandatory. It's nice to have but Yeah, not mandatory in any way. That's cool That's good news. In fact, you know, I was wondering how we could progress and you made it during the weekend That's cool. Now What would be maybe even better? Now that you have your default plugins would be to install the jcask Sorry part of it. Yeah, of course, you wouldn't have worked without jcask my bad So one other thing you could add before we could call this sample complete Maybe it would be to have a default job Working when you start Jenkins and unfortunately Jobs hand aren't handled by the jcask Plugin it's more roots more low level Do you know how we can add a job to a newly created Jenkins instance just with code Not right now. I don't know. Okay. That's perfectly fine. Sorry. That was not a tricky question or You know, I just wanted to know if you knew that it's not elegant as far as I know Bevian to tell me if I'm wrong, but the only way I know is just to create on a Jenkins instance somewhere even in this one for example a job then have a look at the file system And copy the files which are Defined in the jobs part of the Jenkins instance running and paste it somewhere into your repo, you know, so that when you'll start a new Jenkins somewhere it will See that there is something there is a job configured already in the instance and Put it in the working Jenkins instance. So it just Matter of finding where the jobs are defined on the file system Copy one and paste it into your docker context. So that next time you start Jenkins with docker compose Jenkins finds the job and shows it to the end user Did I make myself clear or did I just muddy the water? Yeah, can you explain it again? I didn't get it completely. Yeah, in fact um Jenkins Has this configuration in the file system There is most of the time is slash for slash Jenkins home and in that repo you'll find the configuration of Jenkins You'll find the plugins that Jenkins is using you'll find It's another directory, but you find the work spaces You'll find the jobs you'll find just about everything within Jenkins So for your instance, for example, you could enter Into the running container and have a look at what's running in slash var, I think v a r Slash Jenkins underscore home and you should find lots of interesting information With your running instance, for example in git pod you could create a new job You know, for example a freestyle or pipeline job, whatever And then have a look in the sub directories and try to find In the sub directories where the jobs are defined And once you know where the job are defined, you could try to copy the sub directories Where the jobs are and paste it when I say in your docker context I mean in your repo which happens to be your docker context because there's a docker file docker compose and so on okay And next time you restart then Jenkins should be able to find that there is already a job defined So it will add it in the user interface and let the user interact with it So I think the first thing to do is to create a job within your running Jenkins instance And then have a look at the file system and if You don't manage first time being to Put a job a defined job into your Docker instance, that's not a problem as soon as you understand How to create a job how to find it on the file system that already a nice first step Then if you are stuck Just let us know and we will work With you On the next step, which is how do I replicate this job into my docker context so that I can have it Running as soon as the user starts with docker compose. I have a working example I think um But there is no documentation associated with it. So maybe it's a little difficult to read But I will give you a link nonetheless, but please ask for some help if that's too complicated for you Which is perfectly fine Frankly, I had to scratch my head for quite a long time before understanding how all of that works And I think I didn't find a really good documentation about that by the way So that's perfectly normal to struggle with that part of the project Oh, John mark, you're there. Oh nice to see you And I'm sorry for being late Yeah By john mark. No, just kidding. Uh, you've got all the right to do what you want to do today if I'm not mistaken It's your birthday, right? No, it's tomorrow I mean, I was wrong No problem. No problem Here I wanted to add I joined the conversation late. So, uh, I don't know everything Uh Just for the discussion about uh pre loading jobs Uh, this is an ugly work around the technique That bruno is explaining Uh, it works Currently jenkins doesn't have a solution for that the paying version has Uh, these kind of solution and the technique that bruno described is really the way to go to bootstrap There is one difference though, uh, is that a shoe touch is using a volume Or is jenkins directory Yeah But there are other techniques that can be uh, that can be used so currently it's it's a lot of exploring understanding Uh, and understanding the, uh Internals of jenkins a shooter so Uh, so did we decide that this was the next step in automating? I'm afraid we decided it was yes, so we could consider, uh, the first example complete So, uh, you have a job. Yeah Yeah, well, no problem with that. Did I miss something that there was activity during the weekend on the repository? Yes, you missed the the best part I should touch has a working example of jenkins running with a Configured agent nothing to do on the end user side just enter admin But or maybe something like that and boom you've got to work in jenkins in France with default plugins Yeah, I followed your advice on what to hide the complexity in docker file Well done well done great. Um Is it it's in your repository, right? Yes, yes, it's a separate branch. I'll make the PR today Uh, okay, you you have it there. So, uh, I have the link in the chat So it's normal that I didn't see it or did I miss it somewhere or is it the channel? I'm not Did you did you raise my attention on it? No No, I just uploaded it like an hour ago. So Okay, good Right, so, uh, let me know when uh, we can have a look, uh, to it and um, I'll make a PR of Today good good. Well done. Well, I missed that important news. So Very good. And so now I understand next step proposed by bruno is having um a job available Yeah, I think this is very good. Yeah, that could be interesting. Um I should touch one I was also working on the uh, you uh, recommended to work on generating separate keys for Uh, while we were having chat on gator use suggested in a tip To generate keys separate keys. So I tried to do do that, but I was having problems with it. Uh, if uh, I generated it on the controller, how do I get it to the agent the public key? And if I generate it on host machine, I'll have to use another command instead. I can't do it in docker compose pilot Right. Um Good now I'm I I don't have the overview where we're standing and this is my fault because I came late Uh, do we have a list? Of pending problems or items being worked on So there is no just Okay, but here let's I'll I'll have a look to the automation of a shoot-off This is going to push today And uh, and I assume you're going to preload a job That's the next step, right? That's the goal Okay, good. Well, this this I can understand in my small head and that that looks good and Maybe we could use uh, the github issues to to list the pending questions and Problems this is um Because some we're going to put aside. We're going to do that later Uh So uh, and and maybe then on the issues we can add tips or experiment Uh with uh solutions Yep, sure. So ashtosh, you could create some github issues, but we could also do them Mark Merviantou on myself So we don't forget anything before the next meeting Thank you Maybe we could also just thinking loud and stop babbling The the question interesting question that ashtosh raised about why did his rsa key Not work Uh Open a ticket with it so that I can add to there the result of my experimentation. I need to be honest I forgot everything that I did on friday. So I don't remember what the conclusions were So I'm I'm I'm ashamed It's been a busy weekend Yes But the work around as far as I remember is that we're going to use ed keys which are shorter easier to to manage Yes, you mentioned that my key was not working Your particular key and did I generate an equivalent key and get pot which uses maybe a longer one I think you chose a four thousand ninety six default keys on mark Yeah This one I think ashtosh one was smaller Yeah, the default one Yeah yes Now I I I'm using a 4096 Since years This this length I don't know but Here this is not a critical issue No, but it's better if we understand why It works. Well, yeah Could help a couple of people but I don't want to waste too much time Yeah, interesting puzzles Okay, go ahead Yes, what you missed also, Jean-Marc, is that ashtosh used for the time being Nimeji built and pushed on his docker hub registry and we suggested that he Use his docker compose build instead of relying of an image. Yeah on that You know how to do that ashtosh Yes, I've done it before While making the first docker compose while doing proposal Right Otherwise, I can't reproduce what you're doing Yes, yes, yes And we also proposed as an optional bonus to continue to push to build and push the image to docker Thanks to a github action, but not mandatory at all It's not the main target of the project just just in case, you know, if you get bored sometimes you've got five minutes to lose Go ahead and try that and I gave a link to an example that works for me Just in case I had also a note. This is where the github issues might help Is so we're pinning the versions of the containers Yep We should use How does it work? We should use dependabot does dependabot check the container versions Uh I'm not so sure he can do that in fact Uh, I I think that jenki's project used a bit he lied for this particular job I'm not so sure dependabot can do that But yes, of course, that would be nice to have dependabot on this project. But the thing is His target is kind of limited It doesn't handle lots of different, um source files like Docker compose or docker files. I'm not so sure he can do that On the other hand a digitalize is super Smart, uh, but also very difficult to implement I know you heard me previously rounds about the regex that it uses So I don't know that could be interesting but I'm not so sure we have the time to use update cli in the coming weeks Maybe no, but just note it note that that this is a nice thing to do to improve Yep, uh, I will check if dependabot can do that We can steal scripts from the info team Yeah So is it okay if I I create these kind of issues so that we don't forget that Please do so. Yes. Yes. I should touch your okay with that Yes, yes Okay. Well, okay. Hey, you've been busy in quarter of an hour I've been doing well Uh, Jean-Marc, why are you there and I should have showed us something on githpod. Um It works out of the box without having configured anything So maybe we should do something on the repo to make their experience More seamless or is it a waste of time? um How seamless should it be? uh, normally, uh And this is a question to ashutosh Did we have to create? A githpod yaml file a configuration file No, not right now. I didn't create anything.  Oh, yeah, I have a I have a question Ashutosh, are you using docker dash compose Or are you using docker space? space space space So it's a more recent version. Yeah, you're not an old an old fox like me. Okay. So because I have to change My my habits there Okay I was also using dash While I was working on the proposal then I shipped it to space. Yeah. Well done. Well done Let's talk about the history. I think it started as a separate product then it became a plugin Then it became part of docker. I guess. Yeah, and I know the chap who wrote it quite well Nicola de l'Oeuf Oh He wrote he wrote that part. Do you know him? I don't know Bruno do you met him? No I've not met uh, yeah, I know uh, not everybody's perfect Just for the little story just for the little story. I hate myself for doing that but Nicola de l'Oeuf is is A very funny guy and makes great presentations and it was at the time Before kubernetes picked up and so there was docker swarm To create clusters of application. He made a conference to To show the principles and so and so he had a running cluster And I say now we're going to make one of the nodes fail And at that moment he takes a helmet And a circle saw And cuts the raspberry pi in two Just now I think it's destroyed And so that was a huge laugh in the complete and indeed and so we watched the cluster having this catastrophic failure But there were things that were still working some not and and so that was while he was he was cutting and then showing the cluster So so this is a kind Nicola de l'Oeuf, yeah Yeah, Damian already told me this story hilarious. Yeah Good good, I apologize for interrupting but I like no that's funny We don't have to be serious all the time and giving some anecdotes and on background stories Is really interesting to me. Thanks a lot for sharing that remark I had a question and I forgot about unfortunately No, no my fault. I'm getting old and forgetting things all all the time I have a question for sotosh. Well, maybe that will be are you still maintaining your journal? on What you do or so I I always forgot about it. I'll maintain it. I try to maintain it Can you Can I give you a tip there? So I think it's a great idea a great idea And you can do it as a journal, but it will be easier If you create one single file With that and you add just a date and you put the current date at the top of the document So you don't need to scroll All the time. So do you see you have a reverse order? where And you can also write there The problems that you face the questions you have or the things that you have been exploring I do that all the time in my projects Because the first reader of that Is myself A couple of a couple of weeks older And then I rim. Oh, yeah, I was doing that and then I looked there and pasting your URLs of things Now you can do it Formally I did that I did that I did that because you're communicating with us as mentor But here we between Here well educated people so you can also Put your personal notes in there so that would be a little bit like we would look Over your shoulder and we say hey, this is something I already said so The journal is important very useful the form you're using right now is is Not handy at all just a tip So do I make separate one like on google sheets and share link? One of the repo is fine. I guess in the repo is good. You just do one single Markdown document okay This is my tip, but but you creating one file per day Yes, and then you forget updating it and These kind of things so Yes, I do need to change the Make it make it more useful Yes, and make it A convert and conversation to your To your doppelgänger to your your alter ego or yourself watching you work working Do you understand what I want to say with that Ashutosh? Yes. Yes We're getting into weird things, right? So but yeah and and and be kind to your older self So yourself from one month from now will be happy to read the notes and say oh That's why I did it that way Can be shorthand too Yeah Experiment that technique. Yep Um, I know it's an ugly hack, you know copying and pasting the jobs into the darker context or A nice work around. I don't know the level of the thing. I had another Target a few months ago. I wanted to do it. Thanks to job gsl But lots of people came to me and said no, no, no, don't ever touch that plugin forget about it. It just doesn't work Uh, have you experimented with that? No, I I didn't The Job dsl works doesn't work. Uh, there there are different opinions Uh on that Uh, it exists Uh At this stage Uh I would not look into that a job dsl is interesting for huge professional systems to create the seed jobs And where you you need a higher reliability and where The amount of jobs Is very large and can change Quite a lot. So job dsl is more for professional settings Uh The alternative I would look rather than copying but this is opening another can of worms Is using the jenkins cli The command line interface Uh and sending commands to the jenkins It doesn't fit What we're planning to do here? No, with one single command Uh I I had a similar result. Uh It can be debated I I used ansible quite a lot For that it allows you to tweak the files, but I was not using a docker so A long story short, uh, Bruno and Ashutosh Let's go with copy copying the the jobs Uh designing Good-looking jobs That are representative enough To show the principles Uh at this part of the project Uh is good enough and let's do that Getting into defining a good job That doesn't require connecting to github or or these kind of things Because you could use uh Uh a small local they're Thinking about what this initial job should be It requires already a lot of energy Then looking into what tool we're going to use to create it So I'm more interested in the content of the demo For that this is my my point of view I agree with that Bevento, what do you think? I also agree with it because uh Last week I was Experimenting about job DSL, but I think it's quite hard to set up Yeah So are you getting gray hairs because you're trying to make job DSL work? Yeah I looked at it and run away and ran away Okay, so But I think you're you're further than me in your experiments there Go ahead. In fact, I didn't go Father than reading the documentation because I had question and and I asked questions to Mark for example or Damian DuPoteau and they told me stop right now and forget about job DSL Yeah, it's it's getting nowhere It it works it fills Uh, there are other things that I hear about that will solve This problem So Ashutosh One of your next challenges is to find the right job to add to the running Jenkins instance Shawmark or Bevento, would you have any input on where to look on the documentation to get some inspiration or? Uh, maybe it doesn't exist in the documentation.  Go ahead, Omar So I I went I went the others, but I have some some quick Easy jobs Do you want me to good to say or or maybe I should have ideas? Yeah, I should you have you first have ideas I don't have much ideas about job right now Okay, uh, I think they're very easy pipelines It can be done uh, and pipelines that Do very stupid things Like saying hello world in showing things having Timeouts or not timeouts but delays in it. So just showing some activity That that it runs. So it's not the full ci implementation Where you have Uh Git repository when you push to the git repository a job is triggered Uh, this is this is the second scenario I don't think that we discussed about the personas, but we we have one where The persona wants to what is this Jenkins about? How does it look like? A simple job that does hello, hello world with a delay that you see I can start it by hand and then I have to wait You can even introduce a random failure And it's so be creative, but a very simple pipeline job that does not require any dependencies That's a problem Uh, not a problem, but maybe a point of attention For example, I'm trying to write a series of articles about how to install and run Jenkins on android I know that's stupid, but whatever and the only job I found In my head was to Get a git repo That has some c code sample and I chose a sample that does come Crunch, you know the the pi decimals and so it compiles that and then runs it But the thing is it needs a gcc compiler And that's a dependency that you don't have in the default agent So that's not a good idea for our use case maybe for next step Let's yeah, and and this is where designing the demo And thinking what do we want to show? This is the and and if we go back to the persona And uh, so you want to see What Jenkins is What can I show you? I just have five minutes to show you what it does What it is Yeah, uh, this is And um Now what what the example that you're giving this could be an advanced one Yep, there would be a second where we could invite the The person to well, okay, you can do this and this by hand or this the automation of it And uh, there you go Thank you Jean-Marc So I think you got the general idea, uh ashutosh. So make it simple Okay Uh, Jean-Marc, where are you you're there and talking Um, we talked a little bit about git pod. No, no, but I need your expertise Uh, we don't have any expertise Come on Jean-Marc. I'm just enjoying I'm I'm enjoying myself Experimenting things and ashutosh gives me an excuse to Learn things.  So what do you want to know? Yeah, it's working for them being within git pod without doing anything special So what would be the advantages of git podifying the repo? I see one immediate one So you don't have to enter the docker compose command. It just works All by itself it's starting all by itself. I guess But ashutosh was also looking for a way to Generate a different set of ssh keys for you know, whenever you start the thing and I thought of git pod pray hooks to do that Yeah, I got the message No, uh I I have a metallurgy problem with that. So we're already jumping on the tooling to automate something We don't know what it is see the point. So for me Git podifying or automating that Is already one step further. We know this can be done Now, how are we going to do it? Uh, and I thought about that with the with the keys What I would suggest Or or that we as a group here think about Is uh To have the initial setup run as one or several bash files scripts Before we actually do the docker compose up and uh So that we will update a couple of things either in include files for the docker compose or This is the path I would I would go and so you can do it locally And in git pod don't forget that not everybody is going to use git pod It will be the recommended way yes but uh So this is my point of view on uh on it, but I don't want to Think so Not much clearer now. Thank you Oh at least for me, uh, I should oh is it okay with you?  We have to think also um about people that will use everything So we have to have bash file that would work locally And then maybe in the future link that to a pre-hook within git pod. Am I right? Yeah, I think I just would make one exception in the statement you made uh It will work locally on a standard Configuration and let's say a mac or nubuntu machine Yeah, that most of the people here have But once you're going to try to make this work locally on a windows machine There you're going to run into troubles and and we don't want to take care of them We're going to say if you don't want any risks I want to be sure that it works do it on git pod This is our preferred demo environment And does that make sense it would be Yeah, of course, and it would be a nice bonus if it could work on a windows with wsl 2 for example, but I'll take care of that Yeah, no I am using that. I have no choice. It has to work on my machine Oh Here I need to be honest. It's it's uh Six years that I didn't touch a windows machine. So I don't even know where the front and the tail is You know what the company I worked for forced me to use windows or ubuntu and frankly I had trouble choosing as I was using Uh, have the call I forgot a line of distro, which is not handled by the system. So It is what it is. I am using windows and sweating just about every other day I have to paint in the neck, but anyhow, so if it worked on the windows way with wsl, that would help me Let's let's just do a sanity check here. Ashutosh. Did I understand right that your working machine is ubuntu? Yes, it's ubuntu. It's not a vagrant machine or something like that. No, no, no bare metal work Okay, great. Good and berbia berbiento. What what is your home system or your base system? For my work, it's really use windows, but uh for my personal using linux linux. Okay, what distro? Fedora Fedora That should work That should work too. Okay, so at least we here in this team Have about the same configuration. I'm working with a mac glass Which is a flavor of Of unix And and I'm Most of the examples work And you're using a next 86 64 mac am I right? It's not an arm 64. It's a no I'm I'm So, uh, run of the mill. I think most of the people we're targeting have these kind of configuration fedora ubuntu or You have an interesting configuration but We have the common denominator being git pod on git pod. We're sure that it works Um sounds good So john mark, uh for you no need to get podified for the time being or if they are just an advantage of having no comment to enter Uh At this stage if you're asking me at this stage don't do it don't do any automation that we we have otherwise I will start the environment And I will load it up. I have plenty of things that start all over the place and We're still experimenting. So I want really to do it in a controlled way. Okay, let's go Dr. Compose up I can I know when I need to watch otherwise By this my point of view at this stage, we know how to automate it, but let's Do it. Yeah, keep it for another step later. Thank you john mark. Do you agree with that? Um, yes, okay Okay, don't don't hesitate to chime in in and very unto to because I'm I'm I'm really have fun with this project. So I'm Not all good ideas Uh, I'm sorry, but we have an administrative point to address Uh, I think we all agree that we lost say a few weeks ago and we had chosen this time slot So that it could accommodate with say, uh agenda So, uh, do you think we should find another time slot for this weekly meeting? I could make another doodle or should we keep this one? I'm okay with this one or if Or any other I can manage. I'm not that busy these days Except with The project I hope Just kidding A berbiento is this time okay or you're still at work, right?   I'm okay I'm okay as long as I don't need to go to mot to get my car through it. So, uh It took more time than expected Ouch, okay So fine. No need to create another doodle then we're all good Um Approaching the end of the meeting. Yeah, go ahead. Jean-Marc Bruno, uh, did you talk about the midterm presentation? I'm afraid I haven't addressed that yet. Let's go Uh, we can eventually raise that next week, but here Ashutosh was not at the I'm totally no. Yeah Did you watch the record?  I am Okay, this is what I wanted to lead in. Uh, we don't need to discuss it right now, but uh, Bruno For next week's meeting this will be a very important topic So we need to discuss the content What how where how do we Help Ashutosh to prepare it And I need to know also, but this is my org admin hat hat Are you available? What uh, don't remember when was the date But we can discuss that during our one I was proposing I don't even remember. I think it was Uh, july 6th So it's not end of june. So beginning of july Yeah I don't remember man. I'm forgetting. I'm getting too old. I think you proposed around the 14th of july Then some people would not be available. No 14 14th of july. This is where we need to give the assessment And the the presentation is part of the assessment. So it would be Before but uh one of the contributor Had exams Yeah And Ashutosh, do you have exams too? No, no, I don't I had my exams Okay, you're available on july on july 6th Yes, I'll be available. I may have college So I'll have to I can skip a few days. I don't mind. It's not that important Skipping college Well So no Here uh bruno, uh, this is an important topic that we need to discuss Either offline at least at the next coordination meeting here So that we we can guide ashutosh on the content What how and also help him to prepare it Yeah, of course And ashutosh to be clear you'll go back to college in the coming weeks No, it's uh It's sure to open up in july the date this has not come yet Okay It will now you're on holiday Yes, uh, now i'm in holiday on holidays It will open in july second week. I think i'm not sure about it. They haven't given the date yet Okay, okay Got it. Thank you ish touch Jean-Marc anything else before we wrap up? No, I already stole quite a lot of time No, I don't have anything It's fine Uh ashutosh berbento any feedback input questions I I probably will be available at six uh july so Okay, cool. Good to know Thank you So Thanks a lot for your work. Uh, I do like think that kind of progress And don't hesitate to get in touch with us on Elements matrix whatever getter If you get stuck or want or if you don't forget to tag us in the github issues prs so that we can Chime in and see what we can do. Yeah, or on getter ashutosh or the others If you want me to react to something Let me know Tag me I have too much things going on here And and uh, I'm I'm I'm not a millennial so I I don't I I can't cope with informations coming all over the place So, uh, please, uh, let me I apologize for that I'll tag you Otherwise and insist if you don't see the the reaction The eyes and say I've seen it. I'll deal. Um with the question or otherwise Sorry for that Uh, one minute late. So I propose that we wrap it up. Thanks a lot for your time folks and see you on getter and next week And in the office hours, whatever Have a wonderful end of day Okay. Bye. Bye. Bye. Thank you


I don't remember if we didn't talk about history about your nose and how that occurred. I was woken up by it and I I can't remember if it was like this or if it was like that. But I was woken up by it. Again, we're past the voice.   She just telegraphed that. I don't know if it was hit this way or that way. A little bit of both. Really interesting. It's funny because she's got the most emphatic illustrator jet because this actually happened. We know she broke her nose. These are weak questions.  Or tell me about your nose. Not something that's so close in that it doesn't force her to talk. This is passive voice.


Hey everybody, Dr. O here. In this video I want to go a little bit deeper into the cerebellum. We talked about it in our brain overview, but the cerebellum is the second largest part of our brain. The name basically means little brain there. As you can see it has white matter on the inside, gray matter on the outside, just like your cerebrum. What you see there is actually called the arborvitae or tree of life because it does kind of look like a tree with a bunch of branches. So the primary functions of the cerebellum would be, number one, to adjust and control the postural muscles of your body. So like if you're positioning yourself or you're sitting, you're standing, these types of things, the cerebellum is constantly making adjustments with those postural muscles, subconscious adjustments. And number two, the most important one is programming and then fine-tuning movements, whether they're controlled at the conscious or subconscious level. So the fact that when I go to reach for this coffee, I can do it smoothly, has to do with the cerebellum and that takes practice, right? When you and I were babies, we couldn't reach for anything and if we tried, we'd miss and we wouldn't be able to control it. Well, over time, your cerebellum continues to fine-tune movements and you get better and better at them the more you practice it, right? This idea of muscle memory.  The cerebellum kind of taps the brakes and that's how you smooth movements out. So for me to do something as simple as grabbing a cup of coffee, there could be 40 or 50 muscles involved, right? Walking isn't going to involve hundreds of different muscles and you need some to be turned on, some to be turned off, right? It actually is very complex. We just kind of make it look easy and the cerebellum is what does that. All right, let's look at a few things here. So one thing I find fascinating inside the cerebellum, we have these special cells called Purkinje cells. They're highly branched and they actually can have as many as 200,000 synapses. So one cell can form connections with up to 200,000 other structures. Pretty amazing. It shows you how much information the cerebellum is receiving and sending out. So you see the cerebellar peduncles, you have the superior peduncle, inferior peduncle and middle peduncle there. Well, they're going to be the tracks that carry information to and from the cerebellum, the brainstem and the spinal cord. So balance, posture, coordination is where the cerebellum is responsible for. I always like to say nerves that fire together, wire together. So the reason we practice things is you basically want them to become reflexes. That's kind of how I look at it. Like you can practice something and your cerebellum can fine tune a movement so much that it almost becomes a reflex, like not by definition. But you know what I mean? Like if you're, whether maybe you're into video games or playing an instrument, when you first started doing things, simple controls of video game controllers, playing guitar, things were very complicated, took a lot of conscious thought. My stepson is really good at playing guitar. And now he just sits down and plays the guitar, right? He just does it. Or athletes, like some of the best hitters in the history of baseball aren't really good at coaching or teaching people how to do it because what do they do? They see the ball and they hit it. But by the time a baseball player has reached Major League Baseball, they've swung a baseball bat between one and four million times. So they've turned it into a reflex. Their cerebellum is so fine tuned that they just see the ball and hit it. They don't have to consciously think about it. And that's great because you can't, you know, it takes too long. So we can actually learn movements so well and build a muscle memory so well that things that used to take a lot of conscious effort now take little or none. So I actually remember, I think it was a Yale professor proved it's physically impossible to hit a 95 mile an hour fastball, which obviously they can do. But what he meant was in the time it takes that pitcher to throw the ball, you have to find the ball, you have to track it out of the pitcher's hand, you have to determine what type of pitch it is, determine if it's going to be a ball or strike, and then determine if you're going to swing. And then you got to swing and hit a round ball with a round bat squarely, right? Well, it's impossible to do all those things consciously in 0.4 seconds, whatever amount of time you have, but your cerebellum can kind of take over these types of things. That's why I'm fascinated by the cerebellum. This idea of practicing, practice making perfect and this idea of muscle memory was the cerebellum fine tuning all these processes that allows it to happen. Now on the flip side, what happens if your cerebellum isn't working well? Damage to the cerebellum or alcohol intoxication can lead to what's called cerebellar ataxia, which affects your ability of muscle coordination. So even a major league baseball player is going to have a hard time hitting a baseball if they're drunk and that's because the cerebellum can't function properly. That's what a field sobriety test is for. It's actually trying to diagnose you in a sense with cerebellar ataxia.  Now, does it mean you're drunk? No, you could have some sort of brain damage or damage to the cerebellum, but generally that's what it means. Okay, so that's a little bit more information, kind of some interesting stuff about the cerebellum and how it works and why it's so important. I hope this helps. Have a wonderful day. Be blessed.


Good evening ladies and gentlemen, if you can give me two minutes so I can set up, it will be very, very quick. Mostly quick. So are we? Right. All right. We're ready. My name is Benjamin Levy. I am an entrepreneur into virus based on Bob's currently in IT, but I might turn into a Schmidt later on because it's really fun. And we've got to stop or start eating pandas that are not actually alive, which would be great. But anyways, what I am going to talk about today is about PCL application configuration for Xamarin forms in C sharp. So I don't know how many of you already use Xamarin at all or mobile development in any no mobile at all. Well, unlike, let's say, web application, APIs or desktop application, the difference between each platform is quite, quite big. And there is a kind of a bit of a challenge to try to keep it as simple as possible while configuring an application. So let's have a look at that. So configuration in the Donet world in ASP.net. For instance, we have the good old web config system configuration building transforms. Let's say that you have multiple deployment to debug UAT production, whatever you'll be able to use transform in ASP.net. For instance, or a web API to be able to deploy to those at build time or later on if you're using a deployment server, server like Octopus, you'll be able just to get those renderers and to transform your package later on. On WPF, Winform and services, you can have a mix of app config settings, settings, system configuration and use some third party libraries such as Loschita to transform your configurations into the settings that you actually need. Silverlight, we've got XAML web config, system configuration and also we have build-in transform. So that's kind of relatively sweet. Whoever you want to deploy, you'll be able just to get your configuration, stuff it there and then it will be transformed at deploy time at build time. That's all very great. So in Xamarin forms, obviously we are developing mostly using a portable class libraries. And if you have been developing with PCLs, you will know that it will be only a subset of the full .NET API. A couple of things are not included. A file system for instance is not really there because obviously each application which device each appointing system will have a different file system and that will be just a pain to unify it and it will literally point less to stuff that into the PCL API. SIFTAN.configuration for instance is another example because each platforms are quite different as we'll see later on. This is just simply not there. So pretty much as I mentioned each mobile platform has its own file management system. Each mobile platform has its own configuration management and also SIFTAN.configuration is a pretty heavy library especially when you're trying to create some custom configurations that is pretty heavy. So that might be a really good idea to not attempt to include it into the PCL library. So what would be the options available to configure our cross-platform app? So again as both Sol and Udara mentioned beforehand, we will end up in Xamarin forms having a PCL shared project that will have our view models, our views and just like any code that will access your API and so forth. And yes, literally the platform-specific project for iOS, Android and Windows form or else would be mostly empty shells. Well, it depends but mostly empty shells. So we've got literally three options, about options for configuration there. I'm talking about configuration within the application such as for instance probably the address to an API or just on an awesome settings just like the normal app config stuff. We have native configurations on each platforms. We also have constant configuration reader for instance and that is another option. And a unified configuration which is a little project I mocked up today that is actually already available on GitHub and that I might just package as a new get later on with other stuff. So let's have a look at the different platform configuration pros. So on native there is only one thing I can see really, it's built-in. You can just already use it out of the box. You don't need to write anything else. There are just a couple of differences that we'll see later on such as on top of having a normal simple application configuration, certain systems of roaming options that will migrate or just synchronize configuration between devices which is pretty useful. So the cons of native platform configuration is just one config per platform. If you are going to develop for iOS, Android and Windows Phone, you'll have to put that on the three platforms separately. There is no known Xamarin form support for this. So you can have a look at the documentation. You won't find much stuff there present. And different configuration APIs, the good old system of configuration, billowed by some of the developers, very simple. One configuration and the API, get your app settings or your config manager done. Here you'll have to just go native, do some bit of dependency injection if you really want to go this way, and you'll have just to learn how to do it. That's obviously a pain to maintain, especially if you tend to have large systems and many, many environments. No support for configuration transforms. So again, if you are using build and deployment servers and are expecting a package just to be delivered to your build server, to your deployment server and then just transform the relevant settings to then deploy to your environments, you'll be out of luck or you'll have just to script all that with your little hands. And it's obviously not familiar to the net developers. So again, this is something you'll have to learn from scratch. So let's have a quick look at what we've got natively. Native iOS config, we're using those files called PList, which is this kind of XML site repository. And we have some way to access this through the native iOS API doing this kind of stuff. It's not very exciting. It exists. This presentation will be online on my GitHub, so you can have a link to documentation if you're interested. And with config, I didn't even fill this part. You have the shared preferences that also exist, which is just like a key value per store. That's also another one. And then you've got the native UWP configuration. So you've got a few flavors here. The local app data, which is, again, good for persistency between app sessions. Roaming data, which allows just to synchronize your configuration between devices and a temp data, which is literally a cache. That can also, as a cache, be wiped by your user. So that's probably not a good place to put your configuration settings anyways. That's the way you access it. That's all very great and fun. No, I'm not going to do a demo about the native configuration because it's boring. So that's a good reason, I suppose. I'm going to discuss a little bit because we're going to get somewhere else. I'm going to talk to you about CoreApp, which is a little project, which is a wrapper around something called xlabs, which is where Xamarin is going to put some stuff in their main branch that happens before. There is quite a lot of goodies in this project, literally all the things that are missing. If you are into, let's say, Prism, if you've been doing a lot of WPF, that would be something similar instead of literally just looking at the view models and other views to handle the navigation and just stuff a lot on your UI element that allows you to separate the layers properly so you can access, let's say, an alert box from your view model directly via the navigation. Anyways, what it allows you to do is full control of the application lifecycle, unlimited dependency injection. I will get in details about it. There is a support on Xamarin on dependency injection, but it's not so great yet on Xamarin Forms. It allows you also to do some view and view model registration. On the demo we've seen a little bit earlier, I believe, by Sohail, the view model pairing with the view is kind of not really explicit. You just have to create your view, your view model, and then you will navigate to one that is paired with the other, and that will just happen, some magic will happen in the background, but you won't be able to do anything more exciting than navigating, and you won't be able to test it either. I'm going to show you. After this page, again, control on navigation. At present we can just really push and pop, but, for instance, the stack of the navigation won't be testable if you want to be able to test, let's say, your view models for a command that is going to produce some result of some sort, and that will ultimately result into navigating to a different view using the Xamarin Form built-in navigation that will not work. You need to be able to access a stack that is separated from the actual application navigation. And we do also have unified platform events, such as when the application goes to sleep, starts, wakes up, and that each platform will have a different way of handling it that is unifying it and makes the unit test testable. So let's have a look at a bit of code for what I've just been talking about. Code, code, code. It's not here. Hello? Oh, yes, of course. Okay, portable one. There we go. So this is just a very simple application that will later demonstrate how to manage application settings through the usual configuration manager API, cross-platform with Xamarin Forms. So let's have a look at what it is already. What did you do? Yes. Yes, no, I need to just go through another piece of slide. Sorry. Yes, so about the dependency injection on Xamarin Forms, we do have one which is called the dependency service. What it allows you to do is on the Xamarin Form shared project to declare an interface as you'll do with normal dependency injections and then create one implementation for each platform such as the camera, for instance. The camera will behave differently if you are developing on Windows app or Android or Apple, you will need to be able to have a unified hook through it. So usually you will just declare an interface that will have a method called takePicture, for instance. And then just provide a different implementation and then bind them when your dependency injection container will be just built and you will map your interface with your implementation for each platform. In Xamarin Form we do that this way by just using this kind of attribute on the concrete implementations of your dependencies. The problem with that is your dependency will only be meant for Xamarin Forms. Nobody else will be able to understand what those attributes are for. So if you are like me and like to share client and server code, for instance, that won't be able to be possible. This file will not be recognized and that would be a bit pointless. Also if you want to use the dependency injection service to make your choice like auto-fac, unity and inject, that will also be not possible. You will have to go with the one that is baked in the platform. Also if you want one registration method for all, for all your application ecosystem and for all the actual services that will be in the different platforms of your application, that will not work. And if you use advanced dependency injection features such as generic dependencies, which allow you to register some unknown generic services, let's say, that's not available. And if you want to register one concrete type with multiple interface, that will not do as well. But if you are quite heavy on class inheritance, having some core project, for instance, that will have a partial implementation of a feature that will have some other kind of more concrete implementation down the line that will also block you there. So what we got available again for reading is a constant reader. A constant reader is simply a simple reader that will just take a key and will then look at a switch statement that will just look up this key against what is there. So let's say I would like just to configure my connection string. So I will just pass to this connection string key that will then look into a switch statement, get like a constant and you get it. Well, it's not very elegant. Good thing it works on every platform and I will not really recommend it. It's a bit of a pain to maintain. So there is no support for configuration transformations. So if you want to have multiple environments, that is just... Well, you'll have some preprocessor directive, I suppose. That's going to be a lot of pound sign if and, and that's not going to be very, very fun. And you won't be able to alter that after a compilation, except if you start doing some extreme code weaving, but yeah, I wouldn't do that either. So let's say it's not very elegant. It's probably the one that is the most widely used so far in the Xamarin.Form community, I believe. DEMO, no, because it's also boring. That's why. Then we've got a fun one, the unified app one. So you just have one... It's literally a port of the app setting reader, but for the Xamarin.Form platform. So you just keep your XML file with your app setting and then add key. There you go. One config for all platform. You just need to stuff this file in your shared library and then simply reference the file on your platform project. One API, which is again simply... Well, we'll go through the API, but you simply just pass the key that you wanted to find, and that will fetch it. Familiar to the net developer. That's great. Support for configuration transform, all the same. So again, if you're using build server, you've got a lot of environments. You still will be able just to have your transformation at completion time through the code sheet, sorry, slow sheet library, or via a script that you'll have on your department server. And you'll be able to alter that after a compilation. So I think this is pretty good. Yes, because it's not boring. Actually, a little bit of that as well.  Yay. I'd love to answer a question. How do you say monkey in Spanish? Google. Oh, come on. Really? Really, no? Okay. What's the name of the guy behind Xamarin? Oh, yes? Oh, yeah. Missed. Who is the guy that kind of found Xamarin and that did also the monoprojects? Who said that? Yeah. Yeah. Yeah. Hit. Oh, yeah. Okay. Two, four later. Got to save the monkeys. All right. By the way, I'm very, very happy Xamarin is kind of free now. That is just like very, very good. It was just like about a grand USD before license. Now it's just nothing. Like nothing. By the way, did I make sense? Was it just too quick or no? Did you care?  No monkey then. Right. I did say balls. Right. So I'm not going to do some life coding. It's just something that I mocked a little bit today. So the idea is quite pretty simple. I'm just going to run it first. I'm going to run this one. I'm going to run it on iOS because I like iOS and it's a bit faster. So the idea is I'm just going to click on a button and that is going to give me a key from a config file, like a simple web app.config file. That's it. That's going to be cached as well. And also by the way, you can encrypt it as well. If you're afraid just to ship some config file that is in a plain XML, you can actually, because you've got full control over it, you can encrypt it, ship it encrypted. And the one you just actually run the app, you can actually decrypt it. And you can even decrypt it safely if you feel like it has a lot of ways to do that. Many ways. Is that running? Is it running? Is it thinking about it? Launching. Yes. There we go. So, yep. There we go. That was very, very exciting. I just clicked a button. It says hello from app settings. Have a look what app setting is. So, we are an examiner in form project, but it's been sweated with this kind of xlabs and a little library that I just shipped on GitHub today. And that will be newgeted. Think about prism, but in very, very lightweight. That will allow you to do roughly the same thing. We are in the app portable. Yes. So, that's our view model. If you're familiar with WPF, you probably will be familiar with commanding. By the way, if you are going to get into examiner in form, I really, really, really ask you to do something. Just lose the events.  Just like on click on whatever. No, please just kill them. Use commands. Commands are testable. They're good. And they are just like good for people in general. Events are just, as I've been there for a while, we just need to kill them. That's all. So, I do have like a few commands here. This command here is a special command. What I do, because I don't, I'm a bit lazy to write some commands all the time. If you're not familiar with commands, think about it as an action that you have security of execution that you can bind to literally any control on your example. And, yep, that's pretty much it. The good thing about it is if you want to test it, or if you are like a cucumberist or BDD enthusiast, or even a unit tester, you will be able to actually take your view model and then test the command directly. If you try to just test it on click, which is anything on behind on examiner in form, XAML, you won't be able to test it, and it is back practice in any case, especially if you keep on getting some new fresh developers. You won't understand a thing about what's happening in the code. Again, that's not a good thing to do. So, this command is simply just going to do something. It's going to execute this command, and that is just a prerequisite. It's true. We can execute it. You can also, in this kind of command wrapper, do some interesting stuff, such as before the execution of a command. You can tell, OK, I want to show a spinner after 50 milliseconds, for instance. If something goes wrong, I want to automatically log some thing to a logger, and I want to advise the user that something is going to explode, and you can do literally anything.  Again, where you can just put all your interesting codes. OK. Hello. There you go. That's a command delegate we're talking about. So, we're just checking if it executes at the start, and then we can just spin a task that will be able to handle whatever you want to handle around this command, which is a bit more interesting than just clicking on an event if you ask me. So, let's go back to this co-application. No. Sorry. Where were we? On view model. There we go. So, we didn't implement that because we say it was not very interesting. And if we just click on the method itself, which is get PCL, what it's going to do is simply going to resolve something called the IconfigManager, and just get app settings, and it's going to get that the value that is stored in the file corresponding to this thing. Again, if you're not really familiar with dependency injection, here I'm just simply telling the program when it kind of starts spinning that anything, every time I call, I resolve this IconfigManager, I'm actually calling or resolving a single ton of type configManager. I can demonstrate it this way quickly. And yes, so here we go. That is how you do the things here. Instead of using the built-in Xamarin.Form dependency injection container, I'm just set up some hooks at every single level. So, at the PCL, at the PCL share library level, iOS, Android, and Windows Phone. You can literally register whatever you please. That would be available absolutely everywhere in your code. That doesn't have even to remain within the Xamarin.Code ecosystem. It goes everywhere. So here we're just saying IconfigManager is going to be of type configManager. By the way, if you're interested into generic registration with dependency injection, that's the way we do it. The delegate commands actually just takes two types, parameters, but we simply pass absolutely nothing and at runtime that will just be clever enough to figure out, oh, I just have like a virgin delegate command here. Let's resolve it. So, now if we go to configManager, we can see what's happening here. So, I actually made this one a bit extensible. It will be able to work with the normal app settings and then add value and then value, value. But you will be able to extend it to create any kind of custom, again, markup in your app.config because it's actually mapped to a simple Poco. We're mapping a Poco to a XML file and that just works like magic. So, the only thing I'm just doing here, I'm trying to, I'm loading an XML file which is done kind of here. And then I just, as you could have multiple configs, we load that into a dictionary and then whenever you try to resolve it, we know where it comes from and we simply get the key that is corresponding to this, to this stuff which is getting upsetting. There we go, upsetting that is we're loading this section, go to implementation. If the section is on the root, we just really want to get the root of the file and then we just take any configuration section that we have in real what it actually gets is, oops, sorry. There we go. That is the upsetting that is leaving in our PCL app demo app and that is precisely what is just getting returned by this configuration manager. So, ultimately you end up having a configuration manager that will work on iOS, Android, Windows Phone, any other platform using the good old app settings from the app.config file that you already have. This is cached. You can, if you just use Xamarin key value per store, you can just write it to the disk and just restore it whenever a user is going just to spin the app again. You can encrypt it. You can do just literally what you want because you just control over it, which is kind of cool. Yeah, that's literally pretty much it for this project. Again, I will give you the link if you want to actually get it, to use it for your development because actually nobody else did it yet and that's something that I needed really recently and that's why I'm talking about it today. There we go. I think that's it for me for this application configuration, I think. Do I have anything else to talk about there? Nope. Cool. Questions? About anything? Xamarin? Well, I've been literally looking with Xamarin at the time that just started existing in the new old times. I've been working with my team with Jason Smith that is developing, which is a lead for Xamarin Forms before it was in California and now they move to Seattle because Microsoft solved quite it. We've got a pretty good knowledge of the inside out of Xamarin so literally you can try to find anything at me and might have the answer. Ah, yes, there we go. You're the first to get the call. There you go. So, I started with Xamarin but I had a hard time compiling with making a compiling machine for the Mac and I moved on. So, is there any easy way to attach a Windows phone with a Mac for compiling and running on simulators? So, you're having a hard time compiling your application? Connecting a Windows platform with a Mac. So, is that the same Mac? Was that like a Mac that is... Are you using Mac Mini for that? Next up, maybe. Well, a good way to do it is just to use Parallels. So, you just actually use Windows as a VM on your Mac. That would be definitely the most reliable one. That's what I would recommend, number one. If you cannot do that, is your Mac Mini within your premises, your network? Yes. Well, there we go. Yeah, just install Windows on your Mac and just install Mac. Is there any cloud? Is there one test cloud? Xamarin Test Cloud. You want to know about it? Yes. So, it's pretty good. Xamarin Test Cloud, if you're not familiar with it, is literally a pool of devices that are attached to cloud-connected computers and you can actually push some BDD, which is PFCode-driven development tests which is written in Cucumber. To some extent, you may or may not be familiar, but basically, that goes along this. As an unauthenticated user, when I am on the login page and I put my username on the user mailbox and my password on the password box and then I click the log-in button, then I am directed to the welcome page and I can see on the top right corner, welcome button. So, that is literally what is Cucumber. So, that is really removing the fear of testing from people that are afraid of testing. This exactly is a text that I just told you. You just press a button that is going to create a scaffolding of things to test, so you don't even have to think about what to test. And then that's it. You just make your way up by Xamarin. That will be looking at a view model and then just look at the properties. Just simply call a command. So, I'm going to add the view model, my username, my password, and then I'm going to call the command login and then that is going to redirect me through navigation services that has been abstracted by using XLABS, which is a stuff I've talked about. If you just go playing Xamarin, you won't be able to do that. But by just using XLABS, you'll be able just to have a hook on the test navigation service and then you will be able to have a hook on the view model that is currently present. That's one thing. TestCloud will actually use the same test to simply input your username and password on a device and just actually run it through TestCloud. So, all you need to do is simply send your script, which is what I just told you in plain English, that is going to have behind the scenes a little bit of TestCloud specific for Gherkin or TestUI, that's what it's called, that is going to behind the scenes just tell the test runner to actually input some text and to click some buttons on the device. So, that allows you to literally test like, I don't know, ten hundreds of devices with just different operating system, different formats, form factors, whatever, and that will provide you as well with screenshots of when things go wrong or screenshots of every single step. So, you'll be able to figure out when your application is not behaving, if the UX is consistent, if the UI is just properly implemented for the MegaGIGA dooper tabs or just very, very small iOS watch. That is just pretty good. And now it's super cheap as well, right? Isn't it? The cost is only $1.99 per year. Yes, that's it. No. That would be good. No, I believe that with the MSN subscription, you just get like 25% or 50% off for something that is all right. And, yeah. Yeah, as of these days, there is a Xamarin involved, if you know now, it's in the US. So, there's some, something new will come out, hopefully with a, you can say this, it's good news, sir. Just stay tuned with Xamarin, okay? That's what I get. Yes, but then, by the way, Xamarin Test Cloud is not for testing Xamarin, it's just to test literally any single app. It is platform agnostic because we're not writing code against the actual application. We're just writing code about a runner that is going just to tap some buttons on one UI. So, in any case, very good. A lot of customers are actually, not necessarily using Xamarin, would be using it. How about one more thing? Yeah. So far, it's Xamarin is all for the C shop, right? Well, no, actually, I love F shop. F shop is great. Unfortunately, I don't know much about F shop, but there was one that was on the desktop, and he says the rest of it. C shop is great, but it's very busy. Yeah, but what about the support for the JavaScript framework like Angular, Backbone? Well, do you want to make all this opinion on JavaScript? No, you don't want it. That's good though. Yes, you can make it. That's good. That's good too. Wow, awesome. Before that, oh, yeah. But I don't believe I've got plans to do anything with JavaScript because it would be wrong. Just one point of that. They wanted to implement in C shop. For programmers that have this. Sorry. Yes, yes, yes. No, sorry, I really can't stand JavaScript. It's just type safety should be just like given. If you don't have type safety, don't talk to me. That's it. What are good resources to then look about Xamarin? What good resources actually is Xamarin? Platform already has got quite a shilling there. If you've got an MSDN subscription, you will have a link to the Xamarin University, I believe, which comes free for that. There is a huge support. The community is very vibrant. If you've got a question, just post anything on the forum. I can guarantee you'll have somebody replaying to you within not that much time, especially since Microsoft bought Xamarin. I support that a lot of Microsoft minions are going to help the Xamarin team and everything will go faster. It's a bot. Yes, a bot. Yes, yes, sorry. I've been fantasizing for Microsoft to buy Xamarin for the last three years. No, it happens. No, it happens. I can't register it. That's terrible. But yes, honestly, Xamarin forums are great. If you see any issue, yes, there's only one thing. Miguel, the ICASA, just really like Bugzilla. I don't know why. So it's just forcing Bugzilla on everyone, which I don't know. We've got JIRA. We've got a lot of nice bug tracking system. Bugzilla is not one of them. That's all. Except if you like, I suppose if you like common prompts a lot, or maybe, maybe, some extent. Xamarin forums, are they production-ready? All the production-release are good. Since release 1.3, they are fine. Before release 1.3, I wouldn't. But now when release 2.0, 2.0 a lot, it's really good. As both Soelle and Udara mentioned, they are very good. So there was a misconception on Xamarin forums, which was you cannot do what you have. You're just tied up a little bit, like an accelerator, or just a sensor, or this kind of stuff. No, the mapping is actually really, really open, and they keep on just adding some new features in order to make this mapping and customization easier. So for the line-of-business application, I think it's all good, because usually line-of-business don't really care about UX, or it just changed until at my last call. But I think if you don't want something overly pretty, that is still pretty, but just not like crazy. Xamarin forms natively as just all the control you will need, and all the animation you may need. If you want to do something slightly crazy, or really have a UX and UI guy that are really into pixel perfection, which, by the way, they should, then you use Custom Render Errors, FX, and that would be fine. And again, I mean, I wanted to give, like maybe in a couple of months, a talk about some best practices with Xamarin Forms, because that was a bit too long today to dive into. But I really strongly would recommend using Xamarin Labs, or like a wrapper for what I'm going just to put online, actually it's already online, or Prism actually released something for Xamarin, but it's not production ready yet. The reason why is if distance of tour has to be tested, and it has to be TDD, BDD, whatever, but tested first, otherwise it's just going to collapse, and nobody will cry because it was badly designed at the first place. So that, I think this little layer really allows you to do some great testing with Xamarin. There is something that is still not quite there on Xamarin Forms, but I actually solved the problem too, and I might just put that as well there. That allows you to do some BDD, properly using your favorite runner. So it would be the visual studio runner using a unit, Xunit, or MSS if you want as well. For example, there is a little issue that makes that, whatever, you need to actually run your test on the unit itself or on the simulator. That's a bit silly, but that's easily overcomeable. But production, yes, just go for it. If you haven't been doing an Xamarin Forms, six months time you can have an app out, I believe. Yep. Monkey. Oh, sorry. All right, wrong person. Yes, sir. Okay, my question is, do you have any controls or library for PoE and maybe for arbitration? Oh, no, no, no. Powering. Yes, control the library for? PoE, yes. Oh, yes, yes. So, luckily, oh, that's very noisy. Microsoft has been doing some really nice stuff with Xamarin indirectly through Azure, so you will have a lot of mobile services and a lot of support on Azure. You have some, I believe, some open authentication libraries for Xamarin. Xamarin, by the way, will have also a component store. It's got something called Recipes, which is where a lot of people post most of the problems that you may have. But ultimately, open authentication boils down to literally a couple of parameters on the header. You're sending what your username password. You get back a token. You keep your token. Ultimately, that's 15 lines of code to do it yourself, but people just wrote those 15 lines of code for you. I did. If you want them, I can just send it to you via email. We've got some pens. I'm not going to throw them because I might damage someone. But we've got two pens there. Whoever's got a question gets a pen, even if it's a question about cheeseburger. What is your favorite cheeseburger? Yes, yes. What are the challenges of migrating into the system? You already have the code base in Android and iOS. You want to explore Xamarin and see how to standardize to share the logic. Yes. What are the challenges? Do you have any advice? First of all, it depends on how it is on your app at the start. If you already separated your layers nicely, kept the UI in one end and the rest somewhere else through services, through whatever is your favorite practices, then that will be just like super fast because you've been doing some Windows on app, you're saying, right? Yes. And Android as well. So your team or yourself already have the knowledge of native apps. Native apps, yes. I always like Android apps. We have quite gone deep in it, and then we haven't written a lot of code out. That is good. So I would even recommend that to go and look at Xamarin. No, absolutely. If you've got native knowledge, that's going to be much easier because you'll be able to know what is actually the limits that you can push the framework to. You'll be able to see that you can achieve it. So again, as soon as long as your code is separated, you can actually take the code you already have that is non-UI and just put that. Is there any case study or something that I can refer to? Someone has already tried this, already published app. You have customers, and you want to try whether you can standardize it because we spend a lot of time trying to. Or you've been trying that code in different code bases, so it's missing a lot of time. Xamarin will help a lot. Xamarin will definitely help. And again, it's C-sharp. I've got a Donut background as well. That would be great. It's easier than people think. Mobile development used to be a little bit like five, six years ago, messy, to say the least, with all these different cross-platform companies launching devouts, product, JavaScript base, whatever based.  And again, if you were a developer, well, OK. You can go Java. It's easy, but it's just a bit slow. It's fine. Then at the time, Swift is better. But Objective C is literally not something that you really want to code with if you're a sane person. Yeah, maybe you can take it offline. Yeah. All right. I just want to add that. Oh, Pen. Thank you. If you are concerned that I spent six months on developing what I wrote up, and I spent another six months developing what I was at, why do I need to spend another six months developing the same in Xamarin? So the answer is you are just going to spend the six months in Android and iOS. You are not there to just do it six months and then publish it. You are going to maintain it for years then. So that's the main point. That's the main point when it comes to the cross-platform. You will maintain it very beautifully and using very nicely-totally, and that's fine with you as well. So that's the one thing that I want to add to your question. That's fine. I hope you have a good time. Thank you very much. Thank you. Well, that's it. Let's see what pen, couple of badges, and some stickers here for somebody. So can I get the pen then? I would like to say thank you very much to these speakers. And I would like to say thank you to Michael from engineers.sg for the recording. So if you miss out on anything, you can receive engineers.sg for the recording. Thank you very much.