 Er mwn i gael y gweithio awrthyr llei. Mae'r gweithio ei gael gwybod, er mwyn i'r gweithio awrthyr mae hynny a efallai fan gwybod eu teulu'r awrthyr yn ei gael ffocosig ar y gwybod rhaen nhw i gweithio awrthyr i'r gweithio ar ddi gylingio ei casus gweld amser ganddoeddol a'r gweithio i gael hyd yn eu gael awrthyr i gael am y cyngor ar gyfer yr waith i gael ei gael gweithio ei fawr dim, felly'r awrthyr mae gweithio ar gweithio ar gweithio gwybod. If you don't build on these foundations, you're really, really likely to fail because they're awesome. So that's why I've been doing open source for 152 days and counting. Partly to give back and partly as a process for me to learn lots of new things very quickly. Learning new things such as hardware. Hardware is really fun because it allows you to yield really cool results with actually very little effort and also building some really useless shit as well because the world needs a euro lengthen up. You can thank me later. And prior to this I wasn't really doing any open source whatsoever and that was mostly due to this project Conduct IO. It was around the time that I was starting to learn AngularJS and Ruby on Rails and I wanted to get really good at it so I banned myself from working on any other projects in my spare time. This project really suffered from a ship it failure. It was never quite ready. The mobile version or the API and the documentation just weren't ready and I was a bit too precious about it and never shipped it. 18 months going by. I've not worked on any other project. I'm just feeling incredibly demotivated. But eventually the cycle was finally broken when I released Kevlar. This little project that I spent an hour building and tens of thousands of people used it and this got me excited again. I built another thing that I wanted to build for myself for the JavaScript group that I run which is a polling system, real time polling system and I released this and hundreds of thousands of people started using it. I got excited again. Even a French university used it to run their student elections which was just amazing. So I decided I'm going to open source like everything. So I'm going back through my old hard drives and finding old tools that I built and things like that and just putting everything that I've ever built up and this taught me quite a number of things. So one of those things is to ship early. This is the first version of Kevlar and the mobile experience on the left was really sucky the first version. But it's not nearly as sucky as the one on the right. No website whatsoever. So ship early, ship often. I wish I shipped early with conduct because on day 18 I decided that I'll just put that live as it is because you know a new attitude I'll just go for it. And it's something I spent 18 months on and nobody uses it. I don't even use it. So nobody cares. And this GIF really has nothing to do with the talk but I think you all agree it's awesome. So lessons learned, working on other people's projects that spaces you to new processes and different opinions. So I worked on 24 pull requests during this time and in doing so I learnt that Hamill was fucking awesome despite what all my colleagues had told me. So yeah, that's brilliant. Don't be afraid to give stuff away. Not everyone wants to steal your ideas. I have time for new projects. Because everything's open source, if somebody wants the scale to a billion users go for it like I care. So I have time to focus on new stuff that actually interests me because I don't need to maintain the bits as much now nobody is ever going to use my work ever again. And I have less time for other things. So doing open source every day is quite difficult because I have to find the time for it and writing and doing events and things like that. I have less time to do that. So that's a negative. I've been Adam Butler. Thank you very much. I've actually just raised my Twitter handle from this slide which is really annoying. But my name's Claire. My Twitter handle is Cytation which is the word Cytation with a K because Ks are cool. And I work for a company called Yumi in Sheffield. We're a digital agency that mostly deals with charities, especially mental health charities and young persons charities. As part of this, I've been really thinking about data and what we ask users to give us. And a lot of this data is really sensitive. And something that's quite close to my heart and my interest is how do we ask people what their gender is? This is really complicated. This is kind of complicated because not everyone fits into the male-female box. So this is kind of half, hey guys, forms are a bit weird. And this is also kind of let's learn about non-binary agenda in less than four minutes, 20 seconds, which will be great. So between 1% and 5% of the UK population identifies as having some form of gender variance. This can be kind of intersex people. This is people who have kind of a chromosomal or physical abnormality. It's not really the right word. It's people who kind of don't fit into what we consider to be like the male body or the female body. There are people who are transgender and these are people who are transitioning between one gender and another. And these are also people who are growing number of people who identify as non-binary. These are people who identify as a third gender or as having no gender or as being a mix of the other genders. So this is a really difficult concept I know and it's awful for a lightning talk but there we go. But it's also really hard information to get because it's very personal. But how do you let people who don't identify with the male-female checkbox use your website in a way that's comfortable for them and is important for them? So the main issues these people will face are privacy is a massive issue. A lot of trans people, a lot of LGBT people will be in multiple identities at once. They may be out to their friends but not out to an employer. Google hangouts recently when that changed to hangouts from SMS outed a load of trans people because it merged all their Google accounts together. There's a lack of official identification. You have to be male or female on a British passport currently. The terminology is varying and if any of you guys have ever tried to look this stuff up there's a lot of words. There's a lot of very complicated words and there's a lot of insular words that belong to this community that you probably don't understand and it's really easy to give offence accidentally. You need to be aware that users will need to change information often with this whole multiple identity thing. People will be moving from one identity to another. They won't have official identification because that either doesn't exist or it's very difficult to come by and requires a lot of money and time and effort. You need to be aware of these things. I gave this talk at a UX conference and I had to explain to them I'm not a designer to which they all have. That explains the balsamic diagram rather than drawing anything nice and HTML. The first thing is to be really obvious about privacy. This matters to every single person with any piece of data that they give you but for things like this it's also very important because it's very sensitive data. Always say this field is going to be visible or it's not going to be visible etc. Don't use titles as a workaround. This really irritates me because people are like we can't ask them if they're male or female. That's kind of rude so what we'll do is ask them if they're Mr or Miss. I have solved that problem. Don't do that. A lot of people use doctor on a form to get around that. I have seen forms with doctor male and doctor female as separate fields especially do not do this. There is a gender neutral title if you have to ask for a title. You don't legally have to have a title but there's MX pronounced MIX and that is a gender neutral title that's accepted by the DVLA, accepted by the passport office and accepted by banks and utilities companies. The third thing is to really ask about what you care about. Do you really care about their gender or do you care about their pronouns? Do you care about physical attributes? Do you care about their body shape? Do you care about whether they are going to have children or not? Whether they would give birth or not, that kind of thing. Ask about those things. Make it really easy to change information. But how do you, if you have to ask about gender because like a high rep has said all the marketers really care about gender right and we have to ask is how else are we going to know if they like Barbies or Hot Wheels right? So if you have to ask, three text fields of the way. I've got a blog called asking about gender in which I'm collecting examples of really good ways to ask about gender. So a way a lot of people are doing this now is you have this big list of options. You see Facebook in the bottom corner, OKCupid. It's a bit crap at this resolution, I apologise. But kind of having the three text fields are letting people pick from multiple options. Oh god, I'm running out of time so fast. It's really good because you've got these. You can still kind of say we've got like, we don't have two options. We've gone to like 30 options or whatever, but that's fine. You can still do stuff like that. If you want more information about this, take a photograph of this slide because these links are really good. But these are kind of organisations that deal with other organisations talking about gender, non-binary gender and how best to kind of work with these people and take information from them. Thank you very much. So I've been doing a lot of open source projects on my own. So I have three of them here which I'm going to have to go through at speed because five minutes isn't four minutes and a half is not so much, OK? So the best thing is you just read this. The first one is an e-commerce engine. It does all the normal e-commerce stuff. It's on GitHub. It's very small. I used to use Spree for six years if anyone knows that. It's much smaller. One can actually understand it. And it's made for Europeans. It has VAT built in. It's an organisation. So anyone can do extensions easy. It's a website. I've even written user and development guides. There's tests and my wife's using it in her shop for a year. It's pretty stable. So don't check it out if you like it. So then I was very encouraged how fast that went, this own e-commerce thing. I went ahead and did what I've always been thinking about is a Ruby or virtual machine. Specifically I've been wondering why are those not, why don't they compile the code and why don't they use Ruby? We all hear, we all think Ruby's the better language, but nobody seems to be using it for a virtual machine yet. I've started. The reason, of course, is that C folks sort of own this compilation thing and it's supposed to be really difficult. So I picked up some gem and cleaned it up a bit, tested it, took me four weeks to get a hello out of it. No C code, what sort of involved. Also parsing is supposed to be very difficult. Ruby parsing probably is if you do it like 100%. But if you don't then it's not so difficult either. It's understandable actually. What is difficult is Ruby. Ruby is actually quite complicated. Always sort of, if you think about what send or what blocks are, I'm always getting confused about what is with compile and runtime. So I've written a book. Well, I'm in the middle of it. It's the basic. I can do executables by now. I've got an architecture virtual machine, a register virtual machine, arm assembly code, got some tests. But it's definitely a work in progress and if anyone's interested in virtual machines, very welcome to join. And the third one is I picked up sort of by accident is a wiki, which I was supposed to do with Florian who has maintained Gollum Rails for a number of years. But he's dropped out now. So I'm alone, which I don't really want to be. Anyone. So, well quickly, one and a half minutes. Wow, that helps not reading them. Just to go through them again. Oh, no, no questions, questions with us. No questions. I've got a confession to make. This has nothing to do with Ruby whatsoever. For years and years I've had an interest in just generally how the internet works and sort of learning. I spent a format of years reading RFCs because otherwise it would involve talking to girls and that sort of stuff that just frightened me. So just to give you a brief overview of the domain name system, how it works. A famous quote, there are only two hard things in computer science. Cash and validation and naming things. DNS involves both heavily. So this is just taking us through how a DNS request works. We have my laptop on the left-hand side here. We're looking to make a web request to my home page, the was.name. So first of all, the laptop checks to see if it's got an entry in its own sort of local static list of host names. That's stored in et cetera hosts in most systems. If it doesn't find something there, it checks to see if there's something in its local cache which is stored in memory and managed by the C Library. So it's available to all applications usually. If it doesn't have the answer there that it can answer immediately, then it sends out a request to a local DNS server. This will usually be configured automatically via DHCP or something like that, but it picks up the IP address of a name server it can talk to. Usually in your home network, this will be the router sitting at the edge of your home network. In my case here, I'm using Google's public DNS, so it's making a request straight out to the internet to 8.8.8.8. And so Google's DNS looks to see if it has an answer to the question already in its own cache. And DNS can be ridiculously fast because it often does have the answer to these questions and it can just answer straight away. However, in this case, let's say it doesn't. What it's then going to do is it'll either talk to its peer DNS server, which will be another one close by, or let's assume that it's talking directly to the well-known set of root servers. Now every copy of Bind, which is the internet nameset of Stamen, there are a few but Bind is the most popular one, comes prepackaged with a list of root servers there are 13 of them and the IP addresses for these root servers. This is kind of the way you bootstrap the domain name system. And so it picks one of these root servers at random, let's pick c.root servers on that, and it sends off this request to say, what's the record for what's that name? Now the root DNS servers couldn't store all of the information for all of DNS everywhere. The sheer number of entries is just incredible. So what it does instead is it's authoritative for the root zone, which means that it knows all of the DNS servers that you could go and talk to for each of the top level domains. So .com.net.org.name. So it can't answer the question directly but it can say, listen, for the .name domain, go talk to this set of servers. And for a bonus point, I'm going to give you the IP address of these servers as well, just because that can be helpful and that will shortcut your next step. And so it sends back saying, for the .name domains, you want to go talking to g6.nsltd.com. And so Google's DNS, looks to see if it's got the answer. Oh, shit, I've only got 50 seconds left. Right, so Google's DNS goes, it's got the answer to the question. I'm going to talk to g6.nsltd.com, ask it the same question. It's going to reply saying, I don't know the answer either. But I know the .name domain is served by cloudflare.com. So go and ask them instead. So the Google DNS server goes, okay, right, let's ask cloudflare.com. At last, we've got somebody who's authoritative for the .name domain. And so it returns back the IP address. Google DNS server caches that for the next person to ask. And it returns it back to the laptop. And that's it. Hello, everyone. I'm Francesco Canessa. I work for Quil content. I'm going to talk to you about next-gen payment system. But what are this next-gen payment system? I'm going to talk about Apple Pay. You can pay with your finger. Or Google Wallet. I don't know NFC. Something. No. Paypal credit cards. Yeah, like 70s systems, maybe. No. Bitcoin. No. Yes, Bitcoin. Why Bitcoin is better? It's not the 70s. It's new technology. So your stack will not talk to, I don't know, Cobble or Fortran code. Hopefully. No. And it's a push system versus a pull system. So basically I'm going to talk also about microtransaction and the reference client. So why push... No. It's a push system, not a pull system. So basically you have to authorize the transaction with your private key. Because it's based on public key cryptography. Like asymmetric cryptography. So there is a key pair, public and private. And you sign your transaction when you want to send money with your private key. And that's why it's a push system. And it's like WebSocket versus long polling. Almost. I don't have time unfortunately to explain everything. But yeah, let's talk about why it's good for microtransaction. I choose these three are my favorite. Of course there are tons of why Bitcoin is better. But yeah. Micro payments or microtransactions because there are no transaction fees or at least the transaction fees are very very small. So in normal you have a like fixed fee that is 20p. That's why when you go to a shop and you say can I pay with credit card this ice cream and say not minimum it's 5 pounds, sorry. And yeah. This is the current value. Bitcoin is not very useful as currency. So there are millibits that is 1,000 of Bitcoin and right now it's 20p. So 1 pound is 5 millibits but we don't care about the price because Bitcoin is an awesome piece of technology and we are programmers we don't give nothing about technology. Not about the price. We want to develop things because the world needs us. I mean we are programmers we are powerful and we can program now money. Like directly Bitcoin is a server like you don't have really a client server system like in every PayPal has its own servers or I don't know credit card like Visa Mastercard have their own servers and you talk to an API. No. This is like full system where every server is a node so I have only one minute and I will introduce you to Bitcoin D that is the Bitcoin D one. You have to download it via Bitcoin.org and it's a reference client so it's the main open source project around the Bitcoin ecosystem. There is a configuration where you can set the user password and this if you are on a laptop because now the blockchain is very big so you have to use these settings and you can use it via ROJSON Bitcoin CLI and you can check my presentation because I don't have time. There are a lot of things like you can ask for the balance, you can ask for accounts and the main account is the empty string account but you can create name one then help list comments and then this is an address and there is a dump private key command that gives the private key then the send and that's it. This Bitcoin this is mastering Bitcoin for more really written by Dres Santongolis and I have 3D printed some Bitcoin tags that I am going to throw you so watch out.