 Alright, so I'm Karthik and so I'm kind of confused what I want to talk about right now, but this is Meta Refresh, so I was a speaker last year, I spoke about performance and I see a lot of new faces, so what I'm going to do is like give you like a two minute drill down on what you should do to actually make your apps performance and then I'll talk about what I actually want to talk about. So basically, you know, there's a tool called Weiselo from the GoodPokes at Yahoo. So just install this in your browser, just click one button, I'll give you a whole bunch of recommendations on what you should actually do to make your site perform well, follow them one by one beautifully and you will have much more happier customers and you will be happier ever after that. Once you do that, this is pretty much 101 and then everyone talks about putting stuff on a CDN, there's a very cheap alternative called Cloudflare, just go sign up for your registrations, one click again, your site is magically faster. I mean it's not all that faster but I think it works for someone just starting off to make your site faster and this is pretty much it. Now when it comes to actually writing your code, do not have things on your page which are not necessary, which is pretty obvious, right? Don't have fancy animations and stuff, not going to help anyone. The other thing is when you're writing JavaScript, it kind of blocks your page's performance. So load JavaScript asynchronously, there is this, you know, very beautiful recommendation on the Weiselo guidelines which basically says load JavaScript at the footer. That was kind of outdated I think, I mean it's no longer applies. So load JavaScript at the ahead of asynchronously which basically means your network request would start off immediately but the actual processing and execution of JavaScript happens later instead of you doing it completely towards the end. So do that, I think this is pretty much what you should be doing. So you have a bunch of JavaScript loaders, most popular being LabJs. Just, you know, that's one small I think 4kb minified JavaScript library. Just call that and put jQuery and all your other JavaScript files into it. What it'll actually do is it'll fire up the network request for loading these libraries. So the browser downloads these JavaScript files as soon as you hit it but the execution happens later, much later. So then the usual style of putting it at the footer and you trigger a download much later. So you can do that. It's pretty easy and it works. I didn't expect questions in this one. Yeah, go ahead. Five JS files that I'm loading and say after two JS files there is actually some script that I want to run on the page. Okay. So maybe you know there's dynamic data from the back end that I want to just inject into JavaScript. So after loading two files there's printed JavaScript and then there are more files. Would LabJs support that? What I'm trying to say is what you should be doing is your loading and execution is to be separated. So you still download your script files but you execute them on demand. Yeah but what if there is JavaScript that needs to be executed between, say there are five files that are loading. Let's take this offline. Sorry? Let's take this offline and discuss it. Okay. I think we need to do this after this. I'm going to... And so this is what I wanted. Basically I'll put performance and this whole new pet peeve that I have right now is Obsess Over Metrics which is what I actually want to talk about. So there's this awesome library from guys at Etsy called StatsD which is a Node.js based library. What it basically allows you to do is, you know, is something completely isolated from your app and all of you guys who are running a startup building products, you can track trivial things all the way from a user coming to your website clicking something. You can basically obsess over data. It's called data porn. You know, that's what it is. So you can track all kinds of stuff. The benefit of this is you can do all kinds of fancy analysis and actually see what works for you in a very cheap and reliable way without actually breaking your app's performance. It's completely asynchronous and all that. So just check out Etsy's StatsD. There's a wonderful blog post by them. It's called We Measure Everything or Why Measure Everything. So just have a look at that and I think that's pretty much what I want to say. Yep. Thanks a lot, Karthik. Let's quickly get through this. Supreet, come on up. Give it up for Supreet, everyone. Hi. You might not believe what I'm going to tell you next but let me assure you all of it is true. So this talk is about an email I received from a Nigerian friend of mine. It starts something like this. Compliments of the season to you and your family. Before proceeding on my mail, let me quickly see this opportunity to intimate you that I got your email via one of India's web directories. Nevertheless, let me introduce my personality to you. My good names are engineer Mike Agis Milakomba. I'm a 61 year old South African but permanently residing in the United Kingdom. Actually, as a means of establishing abroad, I'm soliciting for high network individual or company that can help assist me in setting up a business venture in your country. Please, I need someone that has vision and passion with real sense of humor and must be about the age of 18 at our age. Well, for further information regarding this proposal, if interested, do contact me via a personal email address stated below milkiy4sa at webmail.co.za. PS, please do not take this for a joke slash child's play. Only reply if you're interested. Otherwise, ignore this mail. I would appreciate if you are from India, Indian citizen, because investing in the land of India is my major concern. I await your response regarding the same. Thank you. So you would think that this is a spam email, right? You would just automatically spam this and Google will never let Mr what's his name get in touch with you ever again. Have you ever realized that these are real people? They can be sending us emails. So I wrote an email back to Mr Milikomba and turns out he's a real guy, right? He's in Nigeria and the poor guy wants to invest in India and you guys are all spamming him, right? That's not cool. So what I do, I write an email back. I invite him back to Bangalore and he's coming down to Bangalore. He flies down and the flight lobby is full. Guess who is there? Rita from Kormangala. Stella from Indiranagar. Who else? I made notes but I forgot who else was there but there were a swarm of young women, right? I had seen their pictures when I was on Pirate Bay. I was trying to download some Torrents and do my stuff but they were there in real life. I thought there was some kind of you know, spam. But these guys were there and you know they were there to welcome Mr Milikomba, right? So I don't believe any of this and I go and I mingle with people and turns out there's a lady who makes $350 a day also, right? Like you know I've done some S.C.M and I could earn $350 a day but I never thought that this was real. So turns out that lady who earns $350 a day is there with her daughter, right? $17,500 in Indian rupees. That's so cool man, right? So then turns out I go back and I talk to all of these really, really cool people. You know Natasha from Baswankudi introduces me to her grandma Rita who's 60 years old and she just wants to make friends and you know she feels this weird energy about me and she you know she emails me and then I add her on Facebook and then there's this Nicaraguan businessman who sends me a proposal believe it or not, I am today an internet millionaire, right? Just by responding to the emails of these kind people online I have made a living for myself, right? That was in the end. The ex-girlfriend's club got in touch with me. Right now all of them are forming a committee which says netizens against discrimination. It contains Mr Orgil Batar from Israel, Ben Johnson from the UK, Mohammad Aziz from Israel, Japsim from Korea, but I think he's from Vietnam, Millen Abraham and all of these people, right? So the message I want to leave you today is that the next time you see an email from any of these people, please respond to it. Please be kind enough to write to these people. There are real people behind all of these images and they want to talk to you and reach out to you, right? Thank you so much. Sorry, it's part of a short story that I'm writing. If you have any other ideas about internet people that might exist in real life, please feel free to talk to me and you know give me your ideas. Thanks. Incidentally, Supri, it's also the guy tweeting from the Metarefresh Twitter ID. Oh, that's why the tweet stopped while he came up. Yep. Awesome. We've got three more to go. Rishabh? Rishabh, are you in? We are waiting at the end of this event. Hello. I would actually like to talk about a tool I made sometime back like back in 2011. One second. Hello. Hello. No, on the Mac, it's loading. Is it slow? One second. I may need to log in. So, this is basically a tool I made sometime back. It's like JS Fiddl where, yes, I made this tool. One second. The internet is a bit slow. I want to play this. Tab isn't working. There you go. It's a lot like JS Fiddl. Okay. You can write code and it renders in real-time in the real-time preview, the pane. So, and then something like let's say it supports Zen coding too and then you can save it. So, it saves there. Now, on the homepage, you can see a lot of cool stuff made by different people. I mean, these have been contributed by the community. You can do the same if you can create something cool with CSS3, HTML5, and so on. And it has few other cool features too. Let me show you. One is this codecast thing. The codecast feature is basically like if you write some code in those HTML, CSS, and JS tabs, the boxes, when you write something there, the environment is going to record it and save it in the server and other people can then play it back. So, for example, let's play this one. So, you can see it. The guy who made this, he just typed all the code just like that and it got recorded. And then there's this player where you can play it back. You can fast forward it. You can rewind it. Play at different speeds too. Let me take it a bit further. As you can see, this piece of code, this is getting typed. So, you can actually see things getting built in real time. And then they get rendered on the pane. And this is, I think this is a good way of learning HTML, CSS, JS. If you want, you can create codecasts and I can just review them and add it to the homepage. I can feature them. And there's one more feature I would like to talk about. You can also create private bins so that no one can see. You get a unique private URL and one more thing. It also supports real time collaboration. So, multiple people can code and chat in real time. There may be some bugs or quirks. You can always use this feedback form on the right side of the button. Click it. It'll show you a form in a model and you can send me feedbacks. I just opened the same page, the same bin page in two tabs. You can see under the collaborators list. You can see me twice. But if 10 different people they join in, you will be able to watch them. I mean, they'll get listed in that collaborators list. And then there's this chat. You can use the chat. And you can also code. It'll get emitted to all the nodes in real time. So, that's it. And if you would like to contact me, there's this about, you can find my details on that about and contact page. One of the URLs is to my Twitter account and the other is to my blog that has the contact form. So, that's it. Thank you. Thank you. That's one way to meet the creator of cssdeck.com. Big round of applause, man. Awesome. Big fan of your work. Big fan. All right. Navjoth, you're up. We're going to run through these next three. But yeah, let's do this. Let's do this. Go for it. All right. Hey, guys. Back again. So, these are just, I like taking photographs. And I had the opportunity to travel around a lot when I was working at Opera. So, when I take photographs, you know, a lot of times I'll take a picture and I'll get something in mind. You know, when I see this through the viewfinder or I'll look at it later on the computer, I'll get something in mind. And so, what I try to do is, you know, a lot of times I'll put some pictures up and at the bottom you can see I try to put a caption to kind of give that picture, you know, a different kind of an angle. So, it's probably hopefully not very long. So, I'll just run through a few of these pictures and maybe, you know, just mention some of the stories. So, this was actually taken in Munich and we were just waiting outside to go to a conference. We were in a car and we had a flat tire. So, we were standing there and it took this picture and I just, you know, I named it, I'll be watching you. Kind of, I saw that tower in the background looking over, which looked like a church or an old church or something, looking over the cars. This was in Italy and this was a couple who is, it looks like they're about to kiss, but they weren't, they were actually, I saw them kissing and I was like, I need to capture this and they were, you know, just finishing the kiss. So, but it looks like, and it reminded me of the hallmark or the Archies, cards that, you know, you used to get in India when we were teenagers. So, I named it, they still do that. This was in Oslo. I was walking back from work, this is when I used to work for opera. So, I was walking back from work and I saw this guy. So, this was, you know, in Oslo, six months, it's darkness. So, this could be 3 p.m. or 1 p.m. and it'll look like this, it'll be dark. So, I was walking down and this was one of the roads, I saw this guy, he was walking up the street as well. So, I saw him and I kind of felt that this is kind of how I look when I'm walking back. So, I took this picture and, you know, it was just a walk back home. That guy was also walking back home. I was on my way, he was on his way. So, I kind of found it interesting. So, I took this picture. This was in Kiev to the, to the Ukrainian Vladimir here. So, this was, we were sitting in a restaurant in Kiev and these two women were chatting and I just, I was just clicking pictures and I saw, got the shot. And really, and the caption I used was, I think the spell worked. It looks like the girl, you know, telling her which grandmother or something. You know, I think the spell worked. This was, this was again, I think in, again in Ukraine, Lviv, saw this guy carrying a Angelina Jolie handbag and I clicked it. And it, it kind of very interesting because you can't see anyone else in the picture, but you can see Angelina Jolie kind of looking over. So, I called it the voyeur. This is, I think in Russia. But yeah, there's a, there's a broken, this was the driver. He was driving around and the glass, glass was broken. There was a crack on the glass. But he stuck a cross on it and, you know, he was driving around. So, it was kind of, you know, just one of those moments you look at it, you're like, okay, you know, he's put it there. It is, so I called it where does the faith lie? This was back in Oslo at a club. They used to play live music and there was this picture which, so they had, they had a lot of random stuff behind them. This was a bar where there was a resident band. And one of this was these pictures and it was just a picture I saw again and again and just kind of stuck to me. You know, it stayed in my mind and I just got this picture, took the picture of all these guys sitting in front of her playing their instruments and, you know, she was just, so it was kind of like, yeah, the forgotten entertainer. This is, again in Oslo, this was I think at 3 a.m. I was, I just walked out of a club. I had a camera with me. I walked out of a club and they were just got this picture and I didn't realize what I clicked. But when I looked at it, I called it someone lucky, someone odd. You can see this guy standing alone. There's a couple there and there's three guys. So, it kind of just resonated with me, you know, someone lucky, someone odd. This was a friend. She was walking and I took this picture and I called it the fly or the spider because all these railings on the side, they kind of looked like a spider web. It could be spider web or it could be her wings. There's kind of, yeah, that's what made sense. This was in, I think in France and this dog was sitting in the display. Everyone was looking at them and he really looked miserable. All the guy, all the couples and the girls standing out there were like, oh, so cute. But he looked miserable, right? And so, I called it one of trade places. Everyone's just looking at him or her. This is, I think, by far the most interesting one and I'm going to tell you a small story around it. I think Shvetan's already heard this maybe a million times. But this was in Kiev. I was there to talk at a university, give a talk at a university. Kiev is the capital of Ukraine. So, when we got there, you know, opera had this concept, you know, when you travel, we traveled cheap and, you know, we would fly economy and you'd see at a hotel which shouldn't be more than $100 a night. So, we landed there. I looked at where I was going to stay and it said Hotel Kiev. I was like, okay, it sounds fancy. You know, it's Kiev and it's Hotel Kiev. So, we go to the city and it's, you know, in the center of the city, it's like Brigade Road or MG Road. It's, you know, the main shopping street. At the end of the main shopping street, there's this big massive building and that said Hotel Kiev on the top. So, I was like, wow, I'm staying in Hotel Kiev. It's like the main hotel, it seems like. So, we go there. I was with two colleagues of mine, a Ukrainian girl and a Russian guy. And so, we go in there and they're like, and you, you know, you park the car and you walk in the lobby and you kind of know why you managed to get it for less than $100 because it looks shabby and it wasn't, you know, well maintained and it was quite old. So, anyways, we go in there, we check in, we go up to our rooms and I open my laptop. I have to, this was over the weekend and we have a conference. I have to give my talk. So, I wanted to prepare my talk. I needed the internet access. So, I was sitting there and I was like, I can't find Wi-Fi. So, I go down to the reception and I'm like, Wi-Fi and no one talks English. So, I'm like, Wi-Fi, Wi-Fi. So, you know, she's like, data machine, which is a computer, right? I'm like, yeah, Wi-Fi, I need internet, internet. She's like, okay, she just points and she's like, go across the, you know, she's like, go there. And I see a door across the lobby. So, she's like, yeah, just go there. I was like, okay. So, I go there, I have my laptop in my hand and this door is a door with like beads hanging in front of it and there's a guy standing outside, like a big guy in a black suit and I'm like, okay, I was like, and he, I go there and he just looks at me, doesn't say anything, he opens like, you know, just pulls the beads aside and I go in and I walk in, it's a black, it's dark, you know, lights around, it takes me about five minutes to realize, look around, I'm standing in a strip bar and like, whoa, I needed Wi-Fi. I'm in a strip bar, what just happened? And you know, I go to the bar, there's a counter right next to me, so I go there thinking I can sit down there and, you know, just check. And luckily the girl behind the counter spoke English. Probably the only person I met in that hotel who knew English. So, anyway, I sit down and I open my laptop and immediately she's comes over and she's like, oh, you need Wi-Fi? I was like, yeah, yeah, she's like, here's the password. And I don't know what to say, I'm sitting there in the strip bar and I'm like here and I'm like looking over and I'm like, is it rude if I don't look there? And I'm like, and after a while I realize I'm like, hold on, hold on, hold on, I'm in a strip bar, why am I looking at my computer? I switch my computer down, right? So I start looking the other side. I get a drink, I get a drink and I go and sit down on the couch and I, you know, take my phone, I mess with my friends and I'm like, the Wi-Fi is in the strip bar and I'm not kidding. So come down. So I'm sitting on the couch and my friends walk in and they're like, oh, you were right. So eventually, you know, we have a few drinks and we're sitting there like, have to make this presentation. So open and it was the coolest thing to do, you know, you're a geek, the story you can tell, sitting in a strip bar. You do get some Greek credit for it. So I open my laptop, you know, and I'm working and of course you get all these funny glares from these women, you know, the girl, the couch next to me, the girl there, she's giving a lap, lap down and she's like, what are you doing? So anyway, I start working and I'm on Skype and my friend back, you know, my colleagues back in Oslo, they're online. So I see this one guy, Roberto, a good friend of mine. So I Skype, call him, I video call him and he's sitting at work and he just, he's like, oh, hold on, let me get my headset. He gets his headset and calls on. He's like, can't, dude, I can't see you and I've got my headphones on and I was like, oh, okay. I was like, don't worry, don't worry. So I slowly turn my laptop and he's like, what's going on? He's like, whoa, what the, where are you? So I was like, believe it or not, I'm sitting in a strip club. He's like, lots of questions. First of all, why are you on the computer? I was like, yeah, yeah, yeah, yeah, yeah. He's like, dude, really? I was like, yeah. So he's like, okay, anyways, we switch, I switch off the Skype and I try making my presentation, you know, works a little bit, but and this lady comes over and she's trying to talk to me now, you know, she's probably curious. She's one of the, you know, not a lot of guys there. So she's bored and she says, she comes over, she's like, this strip club, you data machine, like, yeah, I didn't know what to say. I didn't know what to do. So I was like, yeah, and she just smiles, you know, probably trying to make conversation didn't know more English. That's it. Anyways, we go back and next morning, so this is in the morning, we come back down and we're like, Wi-Fi, we have to, she's like, yeah, strip club, that's it. And believe me, we walk in and it's not a strip club anymore. It's a cafe. It's, there's no strippers, nothing. This is the morning and we walk in and, yeah, of course, we're a bit disappointed where we're like, ah, we're like, okay, we can make the presentation. So we sit down, start making a presentation. We get coffee, the same girl behind the counter, still there, you know, who speaks English and she gives us coffee and we're like, okay, sit down, now we'll work. And this is Sunday morning, I think around like 1130 or something. So we're sitting and working and believe me, all the strippers from last night walk in to practice. So this is them. So this is one of the strippers on the pole dance. This is practicing. No one else there, that no one, they're not in the addresses, they're just in there, you know, pajamas and whatnot, and they're practicing on the poles. So I had my camera and I had to take this picture. So I had my bag, my computer laptop bag, so I took out my camera while these girls were practicing. So you can see, these are laptops in the, at the bottom of the screen, these are our laptops we were working and there were strippers behind us. And in front of us doing the practice. So yeah, just one of the interesting stories from from Keeb. That's all. Thanks a lot. Thank you for the slice of life. He's a speaker and a storyteller, ladies and gentlemen. Next up, Houndby Kostub, bring it on. Everybody give a round of applause for Kostub. Hello. That's not my computer. Huh, that's my computer. That's not what I want to show, that's what Sajat's going to show you next. Oh, did I just close your tab? Sorry. Okay, so I'm just going to, yeah, this is the boring bit, no strippers involved here. But I just want to show quickly a couple of projects I've been working, I've been working on and it been involved in over the last several months. I work for an organization called Tactical Tech and we're an offer profit and we do a lot of work with activists. A lot of the work we do is around privacy and expression, a lot of work around net freedom. And we did some fun stuff last year and it's called me and my shadow. The idea of this project was to just kind of like look at it, look at in a fun way what kind of digital traces you're leaving behind every time you're engaging with technology. So we have this one really cool interactive visualization thing where you can like go in and go, oh, I use Facebook, I use a computer, I use a mobile phone. How much am I giving away? What, oh, I'm so screwed. And that's fun, but one of the other things that we did was actually look at terms of services and privacy policies of different organizations, different online web services we use pretty much every day and kind of like figure out what do they actually say? This is Yahoo. There's some stuff about Twitter and stuff. So yeah, so basically these are long really and nobody wants to read through them. And what do they actually say? That's all we really wanted to get to. So this is what we did. That's what it actually says. And we've done this for a few, huh? Yeah, so we've done this with a few of them. This is with Twitter, for example, that's an excerpt from the privacy policy sometime around April 2012. It's long. It says a lot of stuff. What? Oh, we don't do this. We don't do this. We don't do this. But what do you guys actually do with my stuff? This is what they actually do with your stuff. Anyway, this is not what I want to talk about today. That was that's one to use just like poke around a bit and play. There's a slightly more serious project I've been involved in a little bit of late and it's called Terms of Service Didn't Read. So like we all do, I do this too. I just click every time I see a checkbox which says I have read terms. There are terms in service. And I agree to it. And I just, yeah, go ahead and use the service. But there are times when I really wonder, okay, how do I actually know what these guys are doing without actually having to read through all of this stuff? And that's what this project does. It's a community project where a bunch of people get together and contribute to kind of rating what different TOS for different websites say it, the way it works is there's a working group which is a mailing list which anyone can kind of join and contribute data to. And then there's a bunch of browser extensions and an API which let you figure out how these things have been rated. So I have a little Chrome extension here. Do you see that little question mark right up there in my bar? That question mark exists because this has not been, there's no class that's been assigned to it. The working group's been doing a bunch of work on this and figuring out, okay, this is what Twitter actually does. It deletes your account after 30 days, it keeps the right to your content. That's a bad thing. Twitter provides archives of their terms. That's kind of a neutral thing. They do a good thing. They promise to inform about data requests. So if someone's government's asking them for your data, they are going to tell you that they were asked. So it just basically grades different terms of services on an A to E scale. A being really good and E being, oh you guys suck. So a lot of these haven't been graded yet, but one service that we all kind of like which has been graded a very high B is GitHub. They seem to do most things right except they can change stuff anytime, sometimes without notice. Your personal information is useful limited purposes. This is what they do with it. There's a few bad things they do. So yeah, it's just useful sometimes and it's just something I wanted to bring to everyone's notice because this project could use a lot of help and I think it's, yeah, it has been helping a lot of people use these services every day. So that's it from me. That's awesome. That's another service that I didn't know a buddy of mine actually made that I've used. Thanks a lot, Kastur. Next up, Sajjad. This is the last one and then we'll be heading out. Okay, I get to be the last speaker. Hey, I just want to show you a recent thing that I've been poking around so I work for a non-profit called Akshara Foundation and they do a lot of stuff around schools in Karnataka. So I'm part of this project called the Karnataka Learning Partnership and we had this map portal for a long time which was using Google Maps and it sucked big time. So recently I sort of rewrote the whole thing using some of the new stuff. So what you see here is actually a very interesting JavaScript library called Leaflet.js. What it does is it takes maps on the web and on any kinds of other display. It performs really well. It displays maps properly. It let you add custom control. So one of the things that you can do here is all right, it doesn't seem to be... Okay, so and this is staging so I don't know whether something goes wrong. So it clusters the markers according to the zoom level then turns pretty slow and you can do things like this. Like you can add custom controls and say I want to see... Go there. So it picks up stuff in the particular area that you want to see and things like that. So and it does a pretty good search as well. It uses the Google API. The search is right now optimized for Bangalore because we don't have a lot of data about schools in the other states. It should work. Yeah, so yeah, that's pretty much. Thanks. Thank you, Sajid. Have I missed anyone out? No? All right and that's it for this year's edition of Meta Refresh Lightning Talks. Thanks a lot speakers. There was a lot of fun. It was a great range and we'll move on to the party from here. Thanks guys. Be sure to be here early tomorrow. We have another full day of talks and it'll be even better than it was today because I'll shave or something. Anyway, all right. See you guys. Head to the party.