 He's counting mine. He's not sick. I can't believe he betrayed us. Money isn't everything, guys. First of all, thank you for the speech. I think I remember, as you can see, I was told to listen to the podcast. I think it's the one you didn't mention. Yes, we have a podcast, but since I moved my house, we have stopped it for a while. We will start it, and many of you in the audience shall be a podcast guest target. So, keep a lookout. Okay, so, there again, thank you guys for coming today. As of today, luckily, I just adjusted the date. One day after the release, we gave a presentation about showing what is the main, the new features in the Go 1.6. What's the difference between 1.6 and 1.5? Actually, the big difference is 1.3 and 1.4. Yeah, I think the big difference between 1.4 and 1.5. It was 1.5, the lifter, everything is new in the Go. It's bigger than C, so it's more manageable. Everything is more... It's improvement in both the garbage collector and also in the runtime. There's a lot of change. Okay, let me quickly go through about the history of Go. So, it was released on 2012. So, it suffered like 6 years ago. I mean, there's a geopoint something, like 6 years ago. 6? Yes. 1.0 is in 2012, which is 2 years ago. Okay. Yes. So, if you go to the blog, go there. OIG has a post 6 years ago. It was originally developed by Dover. So, after that, every... I think recently, every 6 months, it changed. It updated new versions on the 1.5 in August last year on the 1.6. Oh, yes, it's a meeting today. February 18th, 2016. So, if you want to... You can download Go Land 1.6, write this address. The new update is... The full slides will be on the talks on Go Land S3. But today, I will only show what is the name of some of the new features I'm excited about. So, to talk about the standard libraries, there are three main changes in the three libraries. Net HTTP is a text template on the short package for the net HTTP. Yes, that's all. I want to put a short hand here to know about... I mean, have you ever used HTTP2 before? Wow, it's so cute. So, HTTP2 is actually a new standard that you remember that your browser using... Do you know what was the current protocol? What was our version, 1.1? Yeah. Yes. So, the drawback of 1.0.1.1 is... I remember that once you start a server and you have a client to listen to the server, you don't want to listen to the server anymore. You cannot kill the server... Actually, the server cannot kill the client. Because the connection is sent in one way. There's too many complications. Check hands back and forth. So, HTTP2 is a new standard. Let me show you a demo. So, here's how... As I get an example, how to implement HTTP2 in Go 1.5. We have to use... I think in Go 1.5 is actually HTTP2 is an experimental package from Google. So, you have to import, go-lander, YG.NET, HTTP2. And you have to define the server to be point-to-address, s.o.s.o. Now, start with hand functions in Go 1.6. Okay, let me show you when you run this one. What do you see in the document? I use Chrome. So, in order for HTTP2 to be working, you have to buy a new browser for example. So, Chrome is not doing enough. With this browser, some people support HTTP2, Chrome is the only browser for HTTP2. Make sure the browser supports HTTP2. Anyway, I don't know... Yeah, but you can see from the terminal, it actually cancel in. Can you make a code, maybe? Oh, this one actually brings out the header. For HTTP2, it sends out the binary. Yeah, I was wondering what code support there might be. If you want to look at the code, then... Yeah, this is the 1.5. Yeah, so in 1.5, you have to, like, HTTP2 defines HTTP2, so probably point-to-sort address. Yeah, you have to import it from the Google, the go-lander experimental package. But in the 1.6, you can do it faster. So, actually, in HTTP2, we will integrate the binary inside the left of HTTP. So, once you are using HTTPS, by default, you are actually on HTTP2. So... If you just remove all those stuff from HTTP2, then actually you are on HTTP2 already. What happens if your browser does HTTP2 and you have a go-lander HTTP? I think it falls back to 1.5.1, I think. Yeah, it depends. It depends on how the browser will respond to your header with the request. I think that's just now you see it's actually equivalent to the download because instead of that, it's playing full text. Okay, back to the presentation. Yeah, so this is how... So if you want to run a normal HTTP1.1 in your go-land 1.6, you have to set some configurations. You have to, I think, set the parameters in the transportation layer. You can read more in the go-land release. So, another... The second change is the introduction of block action in the text in the HTML template package. Usually, I mean, how you read the HTML code and you can call send me your static code so you can use this template. So... Should we run here? So, Jason. Okay, so you can see from here the... Here is one example. I don't know. I mean, go-land learn from some language and they actually... They add a trick. So, actually, when you... You use the curly brackets. Okay, ready? Curly brackets. You add a dash. Then, actually, you automate, clear the space. So, for them... Is this spot? I... I want to print something here. And I add a... branch and means... These are for root. We actually clear all the... the space in between. So, finally, I want to... This list. I have a list of all the names. And I want to... Call the print function. So... The template block function map. We actually join all these strings and print out nicely on the template. So, we can run this code. Yeah, so here's the code. Well, now... I try to run this one. Okay, so... You can... Can you see it from the behind? Find something, guys. Yeah, it's... Yeah, so... Technically, the block actions... The new block actions... We... We help you to... You see the template? You can really find the template many times. So, this one is the new... New things. I myself should... Try to use for... I will replace the template. We use it in different places. For example, you have a... A layout file. You have a header. And I have a filter. That page is used by many pages. So... By using blocks, you can define the default... Value for header. It's like when you have a... Go lang machine. And the body will be like... Speech or something. So... Yeah, I think it's like... Quite useful for... If I develop... I want to generate HTML using Go lang. Okay. Anyone... Do you see the goal here? Or anyone... See libraries. See libraries. Okay. 1.4 broke. I see libraries. 1.5 made it work again. And 1.6 I'm still testing. Yeah, I think one... One thing I love about... Go is like... Able to report... I'm not sure is it able to... Report Python to... Go? Yeah. No. Maybe in the future. But... I see like... Just... Yes. So... For Go 1.4... So... For Go 1.4 or Go 1.5 they use... Google use Go 1.4 to compile the... The binary for Go 1.5. For Go 1.6... Go 1.6... You use Go 1.5... To compile to the Go 1.6. Yeah. But actually... Thank you. For Go 1.4 you can compile for all the libraries. For Go 1.4 or Go 1.5 on the... Above. So... Yeah, that's one thing I think I... I'm very good at seeing though. But I mean this one might be useful if you use like... IoT device. Which actually is... Cool. I think... Great work. You use some IoT device and then you will make... Hopefully you use some C library. Then we can... Yes. Yeah. So people will need to get call it. I mean you will use a low cost... Running data server. Actually... For me the biggest pain point I have with... C Go... Is 1.3 work very well. 1.4 because they changed the garbage collector. They illegally collected some of the C pointers... And they crashed the program. 1.5 fixed the problem. And hoping 1.6 remains fixed. So... It's quite scary. If you use... We see the very new one. I use... Pemby's... Zero MQ library. Which I use a lot. So when you go build with the C library... It builds in the... Drags in the... Yeah, it's basically... That C library is basically a C library. And... It tries to... Reap... All the C library quitters. Garbage collect those pointers... Which are not supposed to be garbage collected. And it crashes the system. So... The good thing about Go is garbage collected. The bad thing about Go 1.4 is... The garbage collected but... About 1.5... So far touch wood... Fixed the problem. 1.6. Still testing... Before I release the production. Oh yeah, this is my slide so... Not running on... Google App Engine. So... It's not about the compiler. Okay, the next one... The runtime. So now I can go lang... Our basically... Be a bit smarter. So I mean... If you use... Go... Go race... To like... Attack the... Race conditions... In your... Go lang. Then... Now on Go 1.4... Actually you can tell... If you run this code... Yeah, you have like... Run no access to the map. Which actually... You should add a new text... Or you should use a channel. Use a channel to... Make it synchronize. Yes. Use channels. Because basically for... For... If you use map... Map is unsafe for concurrent access. So... Yeah. And you don't... And that was unsafe for concurrent access. Okay. So... Now Go 1.6... We support more operating systems. So... Windows... Usually... Last time I run... A library on Windows... I need to specify... The OS environment. And... More devices coming... Especially the iOS and Android. So that's why you see... Go 1.6 can run... I think for 1.5... Now 1.6 can run on... Can combine to iOS or Android app. So... You can see the future. Yes. No, not iOS. Oh. Yeah. That's a new thing. It's vendor support. So... Maybe you have a quick show... We use any dependency... Management tool in... For example... Go there, go there. Or... Live... Only everything. Yeah. So... For Go 1.6... It's actually an update from 1.5. So 1.5 is an experiment feature. But in 1.6... You... You have it by default. If you put everything in vendor... Then if we... Your go code... We look up all... The library... The package inside the vendor first. I mean the... So for that I have on... Server 1 and Server 2... In the main... In the 2... 2.5 vendor code. I bought a... Gorilla... Mox... MUX... A library. And also in the... Server 2 I have a... I also have... Github.com... Slash... Gorilla... Slash... MUX5. So the server one we use... The library from Github... Like from the Go part. But for the second one... We use the one from the vendor. So... Hopefully I don't know... Hopefully shouldn't use the Go bit. But... Anyway... I... I think it's a little bit... There's maybe... Some change... The Go bit... They also want to... Maintain a little... Freedom... That's all. A lot of users... Hopefully there are some... Discussion going on. Yes. Let's go show. Oh sorry. Okay. Gavage collector. This... Is a... Every time I mean... When I see the new versions... I will see the Gavage collector... Countless... Like... Here is a... What happens? One bank four... Jump to one bank five. So... I think the identity is a lot... A lot much. But... I mean it's just like... Compared with the Gavage... Gavage collector... Poses... On the hip size. But in the 1.6... I think the change... The improvement is... Quite notable. So you can see that... On the hip size it's something... In case that... You... Think about it. 4.5 gigabytes... Who has achieved that thing? Yeah so... I think I believe one of the things... Like... For example... There's a lot of... Improvement in a small package library. And for example... You use a sharp right... I say... It has some... Improvements... On... To... When you look at the time... It's always at 40 milliseconds. Yeah so... Apart from that... I think there's a lot of... A change... I mean... For the tool name... For the... For the runtime... How it will go then... 1.6 comparatively with level. Actually you can run... And compile on... On different platforms. If you... I mean... My... My... My... My... My... My... My... My... My... My... My... Any questions? The generics and... You know... Thank you for asking. Thank you so much. You work together. Generic... Everybody works together. It's very clear that they're not coming... For runtime. Yeah thank you very much. Are you a beginner right? Are you a beginner? Because... No. I'll write it in the whole piece. OK, cool. So what have we? We can start with small projects. Last summer, when I started with chat boards, it's like I'm pressing bar, it's just a response. Receipt, send request, and update response. So it can be an app. Request for gems? Well, at least people come to go. I don't think so, not yet. Don't hold your breath. Because for example... Soap. You can see it's also like you have a program in all streams. Yeah. Go is too strong this time with all of these things. All the scouting can be good actually. Yeah, so I think it depends on what purpose you are going to achieve. I mean, what's the purpose you want to do for me? Sorting was a problem for example. I have to implement it for each... Right? Or going some complicated structures or classes. I think from what I know, I think it has... Very less support for, like, 35 at least. Or like a short list or whatever. So those things, if I would do something, you would have to use a library. I have to forget some job actually. Yeah. So I mean, there's always like post-apartment, when you want to do that. There's a lot of things. I mean, right now I haven't done those things. I don't really miss generics that much. And I found that one of the things that Go helps with my code is as the project grows older, when you're going to be in the space, it's actually easier to be taken because it is stupid easy. Go is stupid easy. Well, if you try to do the same thing in Scala, you're scratching your head trying to figure out what I'm trying to do two years ago. I can't even figure out what I'm trying to do. But Go, there is... standing at you is easy. But in case you go, sometimes you have a little more affection like if type is in one way, if type is straight, second way. You do not need it in case of... It is very repetitive and very stupid code. But it's obvious. So it's not repetitive, it's not serving. Easy for us. Waterfrontation is easy. Just one thing, right? You have a point there, but on the whole, generics in that case... Okay, so there's a blog post from... I think it's the link I put in the first slide. If we introduce all the changes in the Go 1.6, so I mean if you trust and you will... if you go to the blog, go to the Go 1.6. Yeah, it has all of this. Any more questions? Thank you for the great update, Dan. It was... I believe that Go 1.6 compared to like in Scala or in... by Coms. We are growing... more growing in Go 1.6. Can I make a shout out? Yes, yes. Has anyone done maybe an API with Go 1.6? I'm just interested to hear how you might have done... authentication or something. Just please talk to me. Oh, my God. That's so good to hear. So, and... Right now, there's some conference going on. Go 1.6, I think this is like... Tomorrow, like... Yeah, tomorrow is Sunday. So... No. Yes, just some other conference during this year. I think one in Europe and one in Denver. You guys maybe even have a chance to attend. This will be like a great time to meet. Right now, I think for three... for three... Please, most of us will attend your conference. So, I'm waiting for their comments. Bersilu, is it? Bangalore. Bangalore, okay. So... Did you read the books in Bangalore? Yes. Yeah, thank you for coming the time of day. We hope you like food. Thank you very much. Thank you. Thank you very much.