Merken

Opening Keynote

Zitierlink des Filmsegments
Embed Code

Automatisierte Medienanalyse

Beta
Erkannte Entitäten
Sprachtranskript
check and and and and so on and so what kind of thing it's great to see so many people here in this year of like see you I'm imagining that you're all out there and I so this year we're to release wealth by this what people clapping for what they do is you know with the gradient of this the weather you laughing at the end of class so I is is the as the numbers suggest the 5th major release of Ruby on Rails in 10 years we have release the major version of rails every 2 years since 2005 I started working on rails in 2003 and it it was about 2 years to get to 1 . 0 and and somehow magically as clockwork we've managed to push out release every every 2 years so I think maybe last year we can look at the release schedules said all we've been releasing a on the Amiga version every 2 years but is stated that that was the plan was to use get I I love yesterday's whether it's so much easier to predict I but I think there's also something of functi about 5 and a wide etc. wasted certain numbers feel special but it feels like a milestone maybe because it is so of 10 years of major releases the or whatever is about without thinking about what I
wanted to talk about of these rules from which is the is but the basis for the 9 the I remember having 2006 assumes are where else I saw that this this question of of the about wine yeah and particularly sort of personal life why am I still doing this like the 12 years it's been the majority of my adult working life i've spent building rubyonrail products with y and why am I still hear it so that question sort of goes to to the root of something I find so interesting about software which is suffers about people and people are about motivations would drive them on water their values in uh where they come from and I think if you understand that you have a much better chance of understanding the software comes out that have filled peeking behind the curtain and the convective feeling like worse all the stuff coming from and I spend a lot of time and often tried to so before do that to other projects again I look at a piece of software and i just be fascinated um it's how right here at how did you amassed in the early days of 2 thousand lines of XML configuration like what went into that process and use fascinated i wanna understand truly and and that's process and I was used to mediate effect and and so on poking at other our communities ladies of frameworks or whatever so I not understood of 50 major releases so appointed in which to and look at my own motivation and why still doing this stuff and what is it that actually drive me to do this at this obvious interest is not just 1 interest with just about anything i wonder reasons obviously I love the community a lot of what we have here I love the imagine that I have almost a daily basis in get help pull requests in on the ML urine Twitter or campfire any of the channels that we have to do to act and that's that's a lot on but not that's not that's not the whole would have other communities some evolve with and they're fun to and I did necessarily you spend 12 years pulling in tons and tons of my time into that so they can be a fulfilling wholesale that that argument which is 4 of the 1 I usually go to is that sort of motivation of his ideas enjoyed this is a pleasure to do writing the code is is the probability of the letter and I really enjoyed doing it so that's reason enough in itself then it gets very compelling on but there's also other things I like to think and this is again other the things where go in that much time so as I got deeper and deeper now and in the introspection on on white is that I'm still here on you I came to something sort of a little more primal perhaps band that's something part of switching motivations I guess that's been happening over the years for me is that what I said I would rails it was it was pedologist enjoy doing Ruby and it was sort necessity I needed to to build rails to build base camp and will be back in the day but over time those 2 things sort of the 1 a routine and the other thing became not really necessary anymore like I work with a bunch of great programmers based camp and I don't necessarily need to do everything myself but as that was happening along I also started to accumulate stuff and the accumulation of stuff to me it has this sort of that's great but it's great to build a company it's great to build up a popular product it's great to use rail so do all these things but the dark side of that to me at least is it comes with this invitation to a to a growing fear that all of a sudden you have something to lose and if there's 1 thing I absolutely fucking hate it's that nagging sensation of having something to lose because to me that's 1 of the prime drivers of fear and the ear is 1 prime drivers of also bad position also assumes that short-sighted conservative of thinking that's about defending stuff and and the I think constant that it is I what's that happened me by the people on nor observed in other companies and what happened to companies and people when they have something to lose I talk about this a bit in in the 2012 US keen about progress so I can develop this menace year the fear of the fear of losing things and yeah the I can decided what kind of through its 1st suspected arrived at the fact that I decided that was come to that but yes 1 of great discoveries for me personally over last couple years of that that they sort of reading about stoicism and stoicism is is all about finding the tranquility in your life and sort of contentedness and happiness and by writing at the year by writing views about science and the way you do that is to address the on and action by the mean and so have a lot of good 1 of those this is adjusting was this fear of somehow waking up and he was all gone like all the stuff that I have spent the last 10 years building the gone something terribly happen either through my own screw up or force majeure on a meteorite hit a dataset and was wiped out in also aware that thing you could imagine that that would happen right it's not necessary you thinking of a directly about these things as as you said this year but is there and it the it that was sort of this notion of
but today I work with 47 wonderful people at at base camp in and I enjoy that so much and I'm always talk about the called the longevity of the sewage greater work these people for 10 years and so on and again in that building up there's something to lose right so if I'm going to tackle this personal fear of mine that all of the sudden and it's gone and and I'm just left all alone again right if I were to tackle them will 1st about of accepted that and like that could happen like that could totally happen I people something I had this is going to be greater trade is going to continue forever and that's been be wonderful and we live happily ever after and and then something happened in it out right so I have about this mentality that if I want to address this fear that I can feel left alone in this world just need had to become the proper I had to become a sufficient and not that if calamity struck me I have my backpack and was locked and loaded and ready to go once more just just the just like 2003 left to your own devices and you get a figure the shit out of the that's what real system the it's might it's weird proved all this stuff that I'm like yes I do well going in the sun becomes popular gonna arrive at their well better have a shotgun all my interpolants or my active support or my record and they'll be locked and loaded and I'll be ready but I the so the proper mind-set which I really find that thing and I read this interview allow that with this user preppers and I thought about it so easy to look at that and black but there's something a cop populist it's not actually going to happen you do know that right but that's not really what about the years off in this direction of the and Punta people walk around the entire life with all these fears pile up never address and they never verbalizing here's a group of people who are willing to say I fear that some people or nuclear fallout of to earth is going in in some way and I'm going to be ready at that's commendable you're addressing your personal on and tried to tackle that I'm good for you the the 1 thing that's a place where I disagree is that the purpose at least as as perhaps steer typically aligned like they're happy with this but that it's yeah with have a shotgun and my dried fruits and my can that's the balls and my shadowing the names that were like the airhead acting out of fear that like that's not my my the idea of sort of salvation so but some men like the I Greedy enacted
be that my backpack is good enough that I can build Paul is building in the world was the curious thing in and I mean there ever after and some little island in the middle east of I just want to be able to recreate things through good space advantage is the that my own little personal half again at the and it could be applied for living once more that the wonderful thing that's sort of modest it is my view of the world approachable goal that I could have had so that the lot to aspire to but not so unrealistic as you like that's never going to fuck because that sort of shattered the illusion because this is all an illusion anyway right hopefully I that I'm prepared for this so the doomsday that I just would be able to do not recreate internet-scale web-scale like somebody else to do the 7 star hotel of web-scale scale I hope it's a great 1 of the things
again which is really what the backpack braille is all about and all tuned towards this autumn it pulled successful but middle tier companies of applications on again something that sort of stretch goal yes but uh theoretically attainable basis of these to me I did not theoretically attainable that I'm going to as a single person go go right at that that's a good that doesn't work for this illusion dreaming up for myself 1 is a
fighting chance yeah like I am not images so good on all over to my fears and and let that heated up I wanna find kids and 1 that that had to be ready impact and we feel good about it I would have been about right and go with OK shown that so that the value the I this ideal of self-reliance but that should be possible that somebody today should be able to pick up this that I cannot symbol for myself that I feel good about they can think about and as 1 person they can have a fighting chance and she hear about building software for ah so the teams of hundreds but that's not what phase me that's not what is the passion about open source that what gets me excited about doing another 12 years of pull requests and arguments about the bike yet and were fires me up is about that 1 person that is starting out from scratch with nothing everything either emitted or they just gone and they have a fighting chance the so if that's the value the thank the the key principle the that I am choosing to derive from this so that was the actual approach like this is also the little but the AC it dying motivations stuff but where actually need was that actually do was actually the the for
mean it leads through the integrated system this is how I feel that there's a chance to have a fighting then would be on it I'm going to use it an architecture and approach to software development that requires me to build all these separate individual entities that are sort of optimized for being very neat and nice to cut off separated and intractable team around like that as so what's going to do it that's not what should be in the back of of the backpack should be 88 to toward the events 1 of the main reasons so through what they stand for a decade and on been sort of grew a bit from just being a website right and today we have to not only make websites we have to make more websites for small devices reformate may act was well the biases we have to have all these outlets for for the application to be able to make the kind of sort of nice allows half of them talk about nasal basically a man ifold get of the nasal shot by on and you want to do that through the obvious there's tons of ways to do that right I a very common ways is to say OK well we know that the website that's 1 thing that don't that hopefully you answer 1 more time and develop all the other thing we know there and I was the signal mapped below that's that helped shape it right back and other that that have led to an need another sort of the running of it I can I find of information is that belong to think that too that is the most critical to meet that is and unclimbable mountains like that that happened on male akin to myself into thinking that I could build all these things from scratch on males so
if I go back to what can I go I don't want I can make it can go but diverse call and I can let it do all these things very well and good enough which sounds like a sort of the the inherent has something like adequate software it's at an which is fine I actually as a big supporter of adequate suffer an and I about this as a sort of I'm going through the divided so what is it reduces the means
that I I like this quote don't quote law every every quote the sort of work that if something is for them has to be a lot I think that your life existence my school but organizations with the sciences there's a constraint to produce the science which copies of the communication structures of the organizations I used to use this quote to the right and poke fun of overly complex enterprise the SOA architectures of sprawling mass as suburbia but they can also be pointed words and describe why wealth is the way is because you annotation structure of self-sufficiency and self-reliance is the number 1 right so if that's the key thing you optimizing for we optimizing very differently then if you optimizing for building software completed by hundreds of people and yeah and so that's that's on the philosophical angle of it and if it was just that I wouldn't be so bullish on the point because of the practical angle of it I about maybe 5 years ago but we were playing with what's now come to be known as a micro services with the skin I we came up with this features like God they see a text document inside a base camp and we want to use that feature multiple apps and like I thought that reservists they the have and I hope you have a chance to sprinkle http out over everything and it's going to be correct I would so we would put it 1st made as a stand alone you back called board . com and put it into base can then like the they put it into 2 backpack another product we have at the time and I was like for a full year like this now work 3 times this is wonderful right and until sort of like that of supply and then and then they hangover however was sort of try to operate this keep this thing in St. dealing with the dependencies between the different APs moving at 3 different places and the hangar was not as long as the parties like a rarely as island but that was sort of part of what you have these sort of moments in you career in your life graph that with cut scholar and in help direct you like the and I'm not going to do that again anything to say what that which is 1 reason maybe you just stupid and do it in a pool where that the tools that we have now and you'll be wonderful apnea I don't think that's case which varies me to say that he agrees of music anything because you get get response so I can just keep talking and making populations of rare which is really what I doing to do so this whole format is suiting the uniquely well i and aside I live but
in a sort of I came on an income of with I chose this notion of integrated systems because that sounds cool but that sounds great like yet integrates things working together and like the scientists who have some knowledge of each other and the flip side or the negative term for this then say thing is modeled right that's the term of derision that people usually use to talk about they they think a sort of to read and usually implies that I'm so if there's no cohesion I'm there's all cooling coupling and not to make work I and and that so that that's a that's a straw man or the argument forward right like that while laser just pull suffer designed to reduce the bigger the wall's spaghetti mud I'm a sensitive time that anything like a big bowl of spaghetti might I think that most majestic I think marvelous reflecting on and the really cool but also accepting that the word has not been tarnished and damaged so been rebranded and that's what we usually do offer industry whenever something is sort of trying to stand 1 out you slap a new name on it sell the same then the neuronal loss and weighted systems that's where that I and I think this comes back to what I talked about last year which is as a as an industry we're constantly searching for this recipe is recipe that's going to tell us exactly the right those of this thing and that thing is I make delicious of or if I could just follow the recipe back just find the magic recipe then it on everything to be wonderful so when you look at a sort of whatever suffer brought here on right now and you like Jesus this is a model of and you say that direction any sort of this is what you really mean is that this is just bounce off a lot right like your fucking model is the but if it looked like because you would be complaining because there is a majestic model of and and really I like how architect would be put it best
I say you have a poorly structured model would you like me to convert it into Willie structured set of micro-services which really gets the about all this which is that you do some of work right but that it starts to admit that you just have practice software so if you could just come up with an excuse you can eradicate here that it was somehow your circumstances so you're ineptitude you're lack of experience or you're just bad idea that I should now because I have plenty of all of that that took the poor direction and you end up with that of when Watson because you made 1 application and it's not going to get better because you make 10 applications and right so I can so caraway sometimes and the kind of by up about and integrated software but at the same time if that's what you would do if that floats your boat so
fantastic well I the mother of frameworks from IT services but don't if you wanna use well through to great that set up and have a lot of different things that sort of derive off 1 API basins really needed that's wonderful when they get into real 5 and lot and they fight and you get heated and a year too but that's all good because the science you will be playing the ends and we also want to I think that's the other that's the thing I I really love about the Ruby in the rows community is that even if we feel so passionate about certain things and I feel really passionate about the majestic model is an integrated software and how wonderful this to pack your proper backpack I can also say wow that's fine but it's simply want to collaborate on Active Record I can know which indeed they choose to try to at nite whether that is the altered micro-services store the 1 true modeling and the we selected I any some wonderful news of progress on and that's great so will survive then have a slim now version of the base default when you wanna start just an API at design of interviews does have anything else I can use be used as a back for play inside and you see I mean it can be used as a source and thing and we can collaborate on all these other of tools and frameworks where that's all shared and that's wonderful I would tell you to do that is not the feature necessarily of rails 5 that I'm personally most excited about so let me get to those I n now sort of at least some people in the audience there in the the strolling now is on the Net terrible break I'm not and is and people who might not uh ion I old and I will and and the only reason I don't have like a stronger reaction to this I've seen so many times before and as we go through things as development from scratch in a sort of an idea starts in 1 place and by the time of enough iterations and bond through it we end up somewhere else entirely the and also the people of it the rest of the bond with some people get the pipeline through small subset perhaps not script but there sort of this transition phase which I find is strongest with people sort of arrived that yes OK I have a set of now I packed my personal backpack my personal purple backpack and consist of these things and I got this duct tape and put these things together myself and I really like it and now you coming out with the thing that kind of some of the same things that I already had my backpack I I don't like because I had my P that's working well yeah that that's the great then it's a toy not suitable for writing real modern and this sophisticated web applications at that support I just made up because that sort of it that I process sometimes the feedback of what I'm hearing and about traveling and I think think then yes most things start out as a sort of a toy as an experiment as something fun out has that that they would pocket toys become like this terrible talk is entirely but you're not serious enough if you play with toys at I love to I love to do that 2 ways I mean we don't have to always reduce adults shift no I think you so then you use a gun on telephone story is as the numbers suggest the 3rd major duration generally even with any is that it sort of talk about a fight with its 5 wise 5 special I think in many ways like it again it's so much not about the software like the version numbers we applied a thing they don't mean anything which just christening this commit but this is the 1 that why was that the 1 before the 1 after the this is the 1 and it's a social thing it's how we talk about things and how we get excited about the like due has just been around I I I don't know they're going to be right and that's exactly the kind of enthusiasm the power the version numbers have and it's magical by it so demonstrated regulators of code now is sort of that code but this can become the thing that
happens 3 is in the it's getting greedy traveling is 1 into was started out with sort of modest hold that OK while we we want the speed of so a single page applications we won the responsiveness of that publishers do not the whole page because the 1st experiment right the 1st spat 1st approach of that don't work very well for a subset of applications where you're not keeping anything permanent around from sort of page 2 page just about making the transition between the pages really that's what not all applications are like that right so there are plenty of applications were so we could look at traveling and thinking and like the the and maybe not but I did but it doesn't work for my house traveling 3 is expanding sort of this circle of the apps that this will work for I'm by making it possible to have sort these release valves places where you can have some persistent data some client-side state and mixing it would stop the new so this is a typical example right that you making a career that this cannot be catalog is that everyone sees the same catalog everyone sees the same product descriptions in images and so on so forth that's stuff you really want cash you want as fast as possible so that everyone is the same thing anyway a perfect case for caching they have this court because the USA the card is on this in this example because stable across the pages and this is the problem then is about up now I can make like can use that pp right is that catalog of the grotesque but the page also has a cart knighting caching who I'm going to make the whole thing as a single page applications no of your choice this or we're going to so in the catalogs in the galaxy so sections article the products in and leads to put it into a apart all this your stuff which at least now we're heading and you have to be called a data turbulence permanent permanent means that this part of Don will survive page changes the same that will get moved over as you move between pages if the same element is present not the really cool thing about this is that when you said that the initial page does not be anything here it's going to be an empty blocked weighted to be lazy loaded because that means that the initial page request be fully cast super duper fast and then you subsequently request a lazy loaded cart with filling the size and when you've done that 1st initial request Johnny happens on the 1st sort of visit to the store store is now carried over G can keep that states the which means that you can sort keep displaying the products that somebody's putting the cart out in the in the sidebar and and that's great I mean if fixed in live on from each page that's a pretty big level of from what troubling set before it's much closer to what a lot of people within perhaps prior hopefully have chosen sale I had to make this as a whole said projector and the way logos is so you put something in the car it it's just a remote and link which used to a control the just
creates an item in the cart and in the controller what do you could dotted with a view I like this fall under slow because there's
nothing specific to the to of you I'm just calling a linked to put in CART remote there's nothing specific to the use I don't need any JavaScript that side of what do you
do with the JavaScript is I set up this part right so this has a little a little bit of the Clinton the right like we're keeping the car around from from page to page the batch or sprinkles best work I and then you create an item for the
card and goes into quite a name response with a pizza Bates amount the same piece of HTML the rendering of design in the goes into the part that you can reuse in other places this is for the coming back to this idea of the integrated system that you never have to recreate any media templates and you're reading using the same bits over and over again you only applying to sort of expensive efficiency on client-side received JavaScript when they're absolutely necessary and when they're not have a clue as in the case of presented the catalog you don't you boil it down to dumb it down as much as possible to straight of ICML all as much faster much each deal with 1 example of streaming video sessions for
example yes I don't even know on conference side with their blood comments of seen and on other sites it's a typical example of of enacted invites you to build it in as a single page up right Tony builders with turbulence 3 so if you again you metadata sasine going in there's alive comment out red on the side of being off the you can add to it other people can add to it it up
if you look something like this I'm streaming video section then there's the decide which is the comments the none of this is that you mark up with any specific triple links and decorating then when you add a common something interesting happens this using the problem with this streaming video thing is if you submit a form and then it reality goes on you pay lot in the video was not really playing anymore right it reloads in resets and like that doesn't work well what that you can use traveling to say I only 1 1 part of the pace of change and we're rendering the whole anything but I'm only changing in the Don comments sea-change comments that matches the ID of the aside that's ID comments so it look at those 2 things and say what out I'm ammonia a good chance 1 element of of the DOM of keep the video playing this is gonna feel that's consistent no hiccups in video joint of also this by the way is sort of wiping graphs this time around has a greater chance of striking resonance with people pooh-poohed the idea in the past is that there's been another sort of trend in the JavaScript world that's popularized this idea that you know what maybe I'm two-way bindings and maintaining all that crap was not the greatest idea in the world right react it we render the whole damn flow whenever something changes do not try to manage and update these individual little bits of that is a factor that idea chuckling says much the same thing is happening from a server-side perspective instead of points and effective on which in my world means the brake system means I can will be means all these other things on that I hold dear did we share the same sort of philosophical underpinnings as so as the reactive approach so my hope that hopefully this will learn to take a similar
way to another common example of of the page that in the past that problems so representing well enough the I which links and and with the traditional approach to this to Evan case development is content with a personalized navigation so you have something that says I gave their their worry about inbox counter you have other pieces and bits of information on a per-user and they're paired with this generic content that you want cash for everyone what again much the
same I approach as we did with the cock you have 1 part of the element data turbulence permanent is space from Pacer page you can lazy loading and and all the rest of the content you can treat as that would assure for everyone and yet much faster Austin so if should the with the 1 in the South and with the death of a job if I had been doing a bunch of work on believes lately they used to have a a client sends the framework called up about 90 that doubt after a couple years they decided since it's have to tell the source because like I can get the beauty about like how a phrase that and is like a ship to brazenly then people don't think like that and I just kind of rubbing it in to get be a little more diplomatic about that that train is going to Simon so they decided it was not right for them I use client side and the the fur for their particular situation with their group of people and their stakeholders and use cases so they some said but it wouldn't run out in what it tries interpolants instead and that's why we've sort of that like the point freeze here because of the great group of people at the shop by just investing so they've been doing all this work with turbulence permanent and they obviously have cases that are all let's say most similar to that 1st example of catalog in a shopping cart and then we then that at this confided from another angle which is but this problem of the system in the world were an the iPhone and Android and all these other things exist is that that's a lot of work to recreate that all that stuff again and we don't want that so traveling
straight were working on the security needed versions of that which is raising needed versions I mean it's a wet and whatever the hell with it is called an Android wrappers that work with that I'm interpolants says that links and so on are automatically intercept that you can do these super duper fast it changes it feels amazing and it's very hard to tell the difference between all this was indeed a page this was not a new page Rebecca all in and release it as open source because it's Boston so that's certainly straight I'm pretty excited about it I hope that that even if you did like the concept initially maybe reactors change your mind on the wisdom of two-way bindings in and so forth and maybe subterminal lot OK it so in it that's great from this is greater
action variables so and if they were going in this stuff at the moment in which the meanest staggered to play with new text in a way that I otherwise wouldn't it to revisit some sort of core foundational assumptions and end and play with this stuff which is also is a lot of fun and when things have been playing with a bunch is WebSockets so when WebSockets freedom Paul and john reasons sort of I don't think it's obviously it used a lot of applications already I use nearly widely enough and is because dealing with WebSockets so the fundamental it's a pain in the ass as a pain in the ass currently for some of the same reasons that job reviews to be more of a pain in the ass because different implementations there's different ways different browsers keep the connection alive where you can tell somebody's lopped off or not and all these sort of different ways of working with the WebSocket is is is kind of painful so will also work with topics of this new stuff I'm working on and that is that the is that the greater this I just report it's much easier somebody's done all the work that and we just look at something else and we can read off and if so unfortunately so what action that entirely true I did read some stuff up from the from Phoenix in Alex here stunted really need work on so this stuff and you'll see some of the reflections other characters anyway bonding arising
making integrated system capable of dealing with more types of things using the same system not happen would have to build an additional element just 1 only neural cells how this is best interest and have 1 of those examples I was using the forfeiture where it has the a bunch of stuff that's common common perhaps I can be cast in this in this case we watching engineer pages of generic collections and the national thing up in the corner it's really hard to tell the screen but the in box and has a number it says like you out 3 new states what does 3 new things and obviously those are the
ones that the sort of special to you have to be updated all this other stuff the blue stuff is
all the stuff that's near walk to I think that how how you that a year updated only when the person changes pages the lack Sox that they just on the locations of the constant they don't see it well you could do polling if your printer is indeed appalling but for research through and is that he's not real time is not that I actually have to be sort of thinking of pulling this is a reasonable thing to do a lot circumstances but if you wait make WebSockets even less work than all why would you do it right when you when enliven begin line known example if you
want to be on the jury plants span as soon as it hit your inbox anyone know about it right away whether you also have the opportunity of getting 21 million dollars from somewhere in Nigeria then I went notifications is really great way to get that this requirement about but how he said out nothing of course the whole purpose of what medications is that they show up right away the notification about something life having deliver them with notification or websockets again is a great way of doing that you're striving to something that sends them down and you get them right away and then finally of course
the prototypical example that used in every single WebSockets tutorial is the chat right that even more interesting than the other 2 examples because the other 2 exams were mainly just subscribing examines this is both receiving and sending stuff no we make that uh keep fighting 2005 n just pulling at the time it only poles once every 3 seconds and surprisingly that's about the resolution the people don't even notice that I am a bot that was 10 years ago we base the other test sets so that's another good example something I don't get it work all of the 10 years that the something that an even better 1 if there was something we could check all these 3 use cases even the same map and use the same system to build that that would be really cool
that's what action Daedalus so actually sample and this is concept of every user rating 1 connections to the application 1 cable that cable is a WebSockets connection you 1 1 per capita browser per native app or whatever so 1 user can have multiple but was session will have 1 connection the all the people related different channels those different channels and the individual use case as I just showed you 3 different channels there's a Chelmsford in boxes there's a channel for the weather stations and there's a channel for the chapter no reason for us to great Greece separated WebSockets connections to deal with that we just need 1 and just to leave this stuff it had a similar in some ways to what it 2 is gonna be like where you just have the 1 connection to interleave stuff as it comes in much faster and much better way to do things then finally got the concept of the broadcast be mechanism on the server side that sense stuff out through these channels so the use of the and in that connection in the action table is using red pops up because relative is amazing and super duper fast and pops up is just stupid simple and easy to use on is right so this is basically a my very sophisticated enterprise see on diagram explaining how actually able work a little bit so in would actually and as I said in grade 1 connection prior section 4 tap per whatever you have when you make that connection that of indicated that on the things they're not really necessary that well addressed in a lot of other WebSockets sort of set ups and how the way address it is that uh to initiate a Web Sockets connections use initiating an ACP connections and then it which is over so you can do your authentication is exactly the same way you would do Europe indication on a regular web request issues because so this of course requires the result lot then but they already would be any way to see the in box and see the chapter see so-and-so so this is connection of it looks kind of like a little bit like a control right and a little bit like God at before action field or something like that I what's different here is that with the before action stuff that only last a lifetime of that single request whether point by WebSockets part is that the consistent the persistence so when you set is this is a long delivered on living threat no longer just a throwaway things now that's a back to the example of the of the in box and walk through that all the way so activity
with this and set up you need couple different things you that initial cable connection to show you that that's just there to do with allocation is justices and with the current user they need a channel to say I want consumes some stuff you're wanna consume to along the in box that needs to happen in doubt as so the jobs that says I want to that and then on the on the server we need a broadcaster something to push stuff into the inbox right so so the this is kind of like the
JavaScript of stuff look like rain this only copy script by the way I mean and a work in progress and so on so forth but it should you create a new JavaScript side and channel by descending from matching cable channel on that know as a as a specific name I'm in this case we're relating that channel to run to DOM element that was that a lot of icon up
in the corner that's says to right now that saddam element that we like to do it with their behavior
so all that data behavior in box so we have a way to refer to it when we set up the document initially we can instantiate this on this channel as a sort of a persistent thing would just put in in the namespace of AC in whatever you want to this all sort of structured set can work with pretty much whatever preferences you haven't a job subside but are we like to do just with a plain old copper script is no additional framework here except for the fact of course you're inheriting from from action now with this thing here is that the 1 method called receives so when you met them when you instantiate this inbox channel it basically subscribe to the service and as I want everything that's coming in to this in part for the current user right with something does come in you get called back to get receive and that gives you the data the data that Jason is the action of the stuff that comes down in the case of the past all we want sense is when there's a new thing when increment the counter great we have to have a corresponding channel on the server side that actually that's how you set it up that's how well the connection is made what happens when this instances instantiate or this class is instantiated it creates a connection to this inbox channel it's rather automatically we have survival build rather that's where the gentleman goes through automatic f automatically matches up with the with the backchannels they called connect as the 1st thing I'm just like when you're creating their can't intonation rebels break or connected when you create any additional connections to the general make them net 2 and all of us in this case is subscribe to at specific out red pops up the narrator's pub-sub channel Radovan an important just pick a name off the current user this year
the channel for the channel for users just involves underscored the idea of the USA just the 1 per per user so you have something to send to have encapsulated in an in inbox class and which post is responsible for being the broadcaster sending of down to the client side were also responsible for keeping the the state of this in book-keeping account this examined is giving the counter as inredis as well and I really find something they care very well with red and a lot of these things with the WebSocket stuff not only from the pops up perspective of having the acute and things out also from the perspective of having any sort of data store for trends in data right this is just a phenomenal and the testing on it so good in fact that usually my 1st instinct whenever I see a sort of raw piece of axes middle is like how can build a framework and top of that I read is is very well the 1st thing for a not felt that like data structures themselves to just expressive enough that I haven't identified in the degree of fact about you as an aside in this case what happens is that there's something out in the system for example when you send a message or whatever it's in a call I impacts increment for that use it can be a call that it can be a specific thing trolan can be where everyone having ill call incremental when something new comes into that user's inbox belly increment the counter inredis until broadcast account back out and that count is going to hit the
um received is going up the text and do you see that this I think it's funny when I went through talk like this it's complicated right at this removing pieces and also in an area all uh compared to write this directed to the metal it's extremely not complicated but it's a of dissonance when the nature of the beast but extended
a little bit let's be able to send something back the other way to so this in inbox at 1st it could use receive stop that's nice but perhaps also would be here the couch like a what deal with their neighbors and right now we have a let's up in the corner whatever they were going to do is is on the jobs inside another method called clear consent that back where does this is called action clear which is basically a remote procedure call is gonna call back to the in channel and call clear on that we then the above shall here to be seduced anything we send a little further where you can see with connect again these channels from all live the threats so you get ideas said instance variables and refer to them later when you get this of the call to instantiate the box and in unclear which is called here in the about and did much when calls clearer system to the rest and is gonna said the broadcast account of was 0 backed up with you about this set up this on the client side we don't actually maintain the state there it isn't clear it is that you do any of the cleanup because that cannibal happen automatically when the practices and back out because zeros in back out so all recipients we're going to get this which is another thing that's really neat about using this approach especially with the multiple clients so if you have the same TAP opened across 5 different things they all the same connection they they'll 2 factors in general they'll clear out at the same time look at me I'm never quite sample hero
from of the Web notifications again that's just a receiving channel but
here's IT all the cold I I work that straight out of what I'm currently doing to put it in there that's all that's needed to to make these notifications new cases is gonna be sent down as again as days on title body your out ideas interval to go straight to it so when you click on 1
of these notifications will use several ways to go
straight to to that page that it's not you about if the if the thing is open and I a focus on screen look at and the of the more media
example and so in China
had undertaken 1 last year with chad that larger problem that that signal more code than this but let's just look at 1 example which is receiving data from the jet so in this example I I can receive to 2 different types of data I either the received at typing hint which is the will bit of information that says of Jason's corridor writing a new % that perhaps about the advanced a recipe often that's that's 1 type of data I can get down to the times of course in general on and what I want to have basically show here was how we integrate this again with the whole system what we sent back and forth over the channel does not need to be some waters and back and forth over the channel can be entire HTML fragments I so in this case when you receive a line the client that is not responsible for constructing what signal look like you just get that from the server because it's reusing the same partial that is going to use when it renders to transfer 1st place it's gonna reuse it when it person a set of that and yet this 1 partial can use over and over and over again arming and then it has a lot of logic of of how to deal with local what you wanna predicated rat something local in the new place and when you get something back from the server OK then the channel here
uses in constant connect to it at 1st but graph the instance to the chat rule that's the way you interact with and post up to it and subscribe to the room channels you get up at from the child in this case is different from the inbox case this channel a share so there's 1 channel per chat rooms and everyone tried to they get the same thing so you only need 1 pops up to you to deal with 1 channel not 1 per person pretty on use that example of of using the lines sending goes down as full HTML snippets not as the sun again the whole point would all this the whole point time back to the grid system is that you reuse and leverage the pieces you already have the tools you've already packed as much as possible you want that Swiss Army knife in your backpack to be able to do all sorts of things because you can already pack a few things right this fact that infinitely large if you were carried as 1 person in our really tortured this metaphor to that but and that sort of that the depth of the concept of it and I don't I again but that's not the general way that people do things right like the general way that we construct these things generally all that on pure sending HTML just back-and-forth whole snippets is not the way to do it you should just send data back and forth because of user data back and forth you can reduce the server to just being a guy and in this very land that's a maybe I matches perfectly for what you need for your name application with would you need for your on a single page AP on on the on on the desktop and you should just go like on the underpinnings of
this is really a sort of 2 ways of dealing with this I'm we have event machine that handles just the connection Logic creating and disconnecting these um whether it's sockets themselves that's great but it's not great fracture running application logic inside because wet or event machine places all these restrictions on the kind of stuff you can run and it's got the non-blocking in and so on and so forth so we paired up with France so when you see something like
receive the best running the threat not running in and on and it can just do whatever it wants to do when you can use whatever existing models that you already have again it's another example of using the integrated system using all the same models huge issues in them in channel you calling the same models in the controller recalling the same models in the malaise you calling this involves wherever you're going to use them so it basically
the best these 2 tools are examples of the satellites using the integrated system to get undue amount of leverage to be able to have tiny teams that can great these full-service false back to graph full spectrum of devices applications without having dozens of people and that Phys me out I I'm really excited about even more 12 years into this that we can still expand that spectral there would still make it yeah more capable of just how much stuff do and then we can keep up that we can keep having a fighting chance as just 1 person at worst tiny gene to make something that spans the full gamut of devices which is sort of coming table states this point and that and take up the fight to teams that might have and 10 x the number of developers 10 the amount of money and all the BC in the world so fucking what have a better idea of a great tools that be prepared and I would take up the fight they do very much uh few alone alone and so here is that it arises
Scheduling
Ruby on Rails
Klasse <Mathematik>
Versionsverwaltung
Automatische Handlungsplanung
Zahlenbereich
Fünf
Computeranimation
Gradient
Programmiergerät
Prozess <Physik>
Ortsoperator
Wasserdampftafel
Adressraum
Gruppenoperation
Besprechung/Interview
Gruppenkeim
Framework <Informatik>
Code
Data Mining
Richtung
Datensatz
Arithmetische Folge
Software
Gruppe <Mathematik>
Luenberger-Beobachter
Wurzel <Mathematik>
Figurierte Zahl
Konfigurationsraum
Gerade
Hilfesystem
Videospiel
Parametersystem
Sichtenkonzept
Güte der Anpassung
Gebäude <Mathematik>
Schlussregel
Physikalisches System
Primideal
Biprodukt
Quick-Sort
Arithmetisches Mittel
Modallogik
Druckertreiber
Interpolation
Forcing
Twitter <Softwareplattform>
Mereologie
Basisvektor
Projektive Ebene
Energieerhaltung
Zentrische Streckung
Sichtenkonzept
Basisvektor
Güte der Anpassung
Multi-Tier-Architektur
Kartesische Koordinaten
Raum-Zeit
Quick-Sort
Parametersystem
Lipschitz-Bedingung
Bit
Web Site
Desintegration <Mathematik>
Open Source
Besprechung/Interview
Symboltabelle
Ideal <Mathematik>
Kartesische Koordinaten
Physikalisches System
Ereignishorizont
Quick-Sort
Systemprogrammierung
Dämpfung
Software
Rechter Winkel
Bildschirmsymbol
Information
Computerarchitektur
Softwareentwickler
Phasenumwandlung
Bildgebendes Verfahren
Metropolitan area network
Telekommunikation
Nebenbedingung
Momentenproblem
Selbst organisierendes System
Zahlenbereich
Gesetz <Physik>
Whiteboard
Homepage
Multiplikation
Arithmetische Folge
Software
Existenzsatz
Gruppe <Mathematik>
Endogene Variable
COM
Datenstruktur
Schnitt <Graphentheorie>
Hilfesystem
Videospiel
App <Programm>
Graph
Winkel
POKE
Systemaufruf
Ruhmasse
Biprodukt
Quick-Sort
Arithmetisches Mittel
Dienst <Informatik>
Einheit <Mathematik>
Rechter Winkel
Betafunktion
Hidden-Markov-Modell
Mereologie
Grundsätze ordnungsmäßiger Datenverarbeitung
Dateiformat
Wort <Informatik>
Reelle Zahl
Computerarchitektur
Unternehmensarchitektur
Parametersystem
Einfügungsdämpfung
Gewicht <Mathematik>
MUD
Besprechung/Interview
Kartesische Koordinaten
Physikalisches System
Term
Quick-Sort
Richtung
Kohäsion
Strukturierte Programmierung
Informationsmodellierung
Menge
Software
Rechter Winkel
Wort <Informatik>
Metropolitan area network
Web-Applikation
Versionsverwaltung
Iteration
Kartesische Koordinaten
Element <Mathematik>
Homepage
Deskriptive Statistik
Online-Katalog
Dämpfung
Entscheidungsmodell
Permanente
Kontrollstruktur
Skript <Programm>
Default
Beamer
Auswahlaxiom
Phasenumwandlung
Regulator <Mathematik>
Ereignisdatenanalyse
App <Programm>
Magnetbandlaufwerk
Quellcode
Biprodukt
Arithmetisches Mittel
Teilmenge
Dienst <Informatik>
Garbentheorie
Menge
Verschlingung
Rechter Winkel
Garbentheorie
Aggregatzustand
Rückkopplung
Stabilitätstheorie <Logik>
Subtraktion
Gewicht <Mathematik>
Gruppenoperation
Mathematisierung
Besprechung/Interview
Entscheidungsmodell
Zahlenbereich
Derivation <Algebra>
Online-Katalog
Framework <Informatik>
Code
Informationsmodellierung
Datensatz
Arithmetische Folge
Software
Endogene Variable
Turbulenztheorie
Softwareentwickler
Speicher <Informatik>
Disjunktive Normalform
Bildgebendes Verfahren
Leistung <Physik>
Kreisfläche
Einfache Genauigkeit
Binder <Informatik>
Quick-Sort
Chipkarte
Mereologie
Gamecontroller
Bit
Entscheidungsmodell
Online-Katalog
Turbo-Code
Computeranimation
Homepage
RPC
Rendering
Entscheidungsmodell
Endogene Variable
Vorlesung/Konferenz
Strom <Mathematik>
Eindringerkennung
Siedepunkt
Sichtenkonzept
Template
Volumenvisualisierung
Physikalisches System
Quick-Sort
Chipkarte
Gruppenoperation
Garbentheorie
Verschlingung
Mereologie
Hypermedia
Gamecontroller
Stapelverarbeitung
Lesen <Datenverarbeitung>
Bit
Resonanz
Web Site
Mathematisierung
Ungerichteter Graph
Computeranimation
Videokonferenz
Homepage
Bildschirmmaske
Perspektive
Turbulenztheorie
Biprodukt
Soundverarbeitung
Schnelltaste
Binder <Informatik>
Datenfluss
Quick-Sort
Teilbarkeit
Videokonferenz
Twitter <Softwareplattform>
Garbentheorie
Rechter Winkel
Mereologie
Garbentheorie
Streaming <Kommunikationstechnik>
Bit
Wellenpaket
Punkt
Gruppenkeim
Gefrieren
Content <Internet>
Online-Katalog
Element <Mathematik>
Framework <Informatik>
Raum-Zeit
Computeranimation
Homepage
Client
Prozess <Informatik>
Permanente
Turbulenztheorie
Vorlesung/Konferenz
Inhalt <Mathematik>
Softwareentwickler
E-Mail
Winkel
Humanoider Roboter
Physikalisches System
Quick-Sort
Garbentheorie
Interpolation
Mereologie
Information
Einfach zusammenhängender Raum
Schnelltaste
Subtraktion
Spiegelung <Mathematik>
Momentenproblem
Open Source
Computersicherheit
Browser
Gruppenoperation
Besprechung/Interview
Versionsverwaltung
Implementierung
Kartesische Koordinaten
Binder <Informatik>
Quick-Sort
Computeranimation
Gruppenoperation
Homepage
Variable
Prozess <Informatik>
Wrapper <Programmierung>
Speicherabzug
Generizität
Quader
Datentyp
Zahlenbereich
Zellularer Automat
Vorlesung/Konferenz
Element <Mathematik>
Physikalisches System
Eins
Aggregatzustand
Homepage
Touchscreen
Videospiel
Mathematisierung
Objektklasse
Quick-Sort
Computeranimation
Homepage
PRINCE2
Echtzeitsystem
Vorlesung/Konferenz
URL
Bildschirmsymbol
E-Mail
Gerade
Demo <Programm>
Resultante
Bit
Punkt
Quader
Browser
Gruppenoperation
Adressraum
Kartesische Koordinaten
Broadcastingverfahren
Socket-Schnittstelle
Computeranimation
Gradient
Chatbot
Benutzerbeteiligung
Regulärer Graph
Stichprobenumfang
Arbeitsplatzcomputer
Indexberechnung
Bildauflösung
Einfach zusammenhängender Raum
Softwaretest
App <Programm>
Kraftfahrzeugmechatroniker
Zwei
Güte der Anpassung
Einfache Genauigkeit
Physikalisches System
Bitrate
Quick-Sort
Polstelle
Diagramm
Datenfeld
Rechter Winkel
Mereologie
Grundsätze ordnungsmäßiger Datenverarbeitung
Gamecontroller
Server
Authentifikation
Garbentheorie
Ultraviolett-Photoelektronenspektroskopie
Unternehmensarchitektur
Tabelle <Informatik>
Umwandlungsenthalpie
Einfach zusammenhängender Raum
Betriebsmittelverwaltung
Subtraktion
Quader
Element <Mathematik>
Element <Mathematik>
Bildschirmsymbol
Broadcastingverfahren
Computeranimation
Gruppenoperation
Socket
Arithmetische Folge
Prozess <Informatik>
Server
Skript <Programm>
E-Mail
Ereignisdatenanalyse
Einfach zusammenhängender Raum
Namensraum
Quader
Element <Mathematik>
Klasse <Mathematik>
Gruppenoperation
Strömungsrichtung
Element <Mathematik>
Quick-Sort
Framework <Informatik>
Computeranimation
Menge
Rechter Winkel
Prozess <Informatik>
Mereologie
Server
Skript <Programm>
Vorlesung/Konferenz
Datenstruktur
E-Mail
Instantiierung
Softwaretest
Umwandlungsenthalpie
Element <Mathematik>
Natürliche Zahl
Klasse <Mathematik>
Systemaufruf
Physikalisches System
Zählen
Broadcastingverfahren
TLS
Framework <Informatik>
Quick-Sort
Computeranimation
Client
Rohdaten
Minimalgrad
Flächeninhalt
Twitter <Softwareplattform>
Rechter Winkel
Perspektive
Datenstruktur
Speicher <Informatik>
E-Mail
Message-Passing
Aggregatzustand
Einfach zusammenhängender Raum
Bit
Schaltwerk
Gruppenoperation
Systemaufruf
Physikalisches System
E-Mail
Broadcastingverfahren
Teilbarkeit
Computeranimation
Gruppenoperation
Variable
Client
RPC
Prozess <Informatik>
Stichprobenumfang
E-Mail
Aggregatzustand
Instantiierung
Subtraktion
Wasserdampftafel
Turbo-Code
Mathematische Logik
Code
Computeranimation
Homepage
PRINCE2
Benutzerbeteiligung
Client
Digital Object Identifier
Fokalpunkt
Datentyp
Ganze Funktion
Gerade
Touchscreen
Demo <Programm>
Stellenring
Physikalisches System
Benutzerbeteiligung
Objektklasse
Fokalpunkt
Konstruktor <Informatik>
Gerade
Gruppenoperation
Sinusfunktion
Menge
Einheit <Mathematik>
Verschlingung
Hypermedia
Server
Information
Bildschirmsymbol
Caching
Einfach zusammenhängender Raum
Punkt
Graph
Gemeinsamer Speicher
Content <Internet>
Einfache Genauigkeit
Schlussregel
Kartesische Koordinaten
Physikalisches System
Dateiformat
Mathematische Logik
Ereignishorizont
Quick-Sort
Computeranimation
Homepage
Konstante
Virtuelle Maschine
Chatten <Kommunikation>
Chatten <Kommunikation>
Server
E-Mail
Gerade
Instantiierung
Satellitensystem
Punkt
Graph
Theoretische Physik
Zahlenbereich
Kartesische Koordinaten
Physikalisches System
Punktspektrum
Farbverwaltungssystem
Quick-Sort
Computeranimation
Informationsmodellierung
Chatten <Kommunikation>
Gamecontroller
Strom <Mathematik>
Softwareentwickler
Aggregatzustand
Tabelle <Informatik>

Metadaten

Formale Metadaten

Titel Opening Keynote
Serientitel RailsConf 2015
Teil 01
Anzahl der Teile 94
Autor Heinemeier Hansson, David
Lizenz CC-Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported:
Sie dürfen das Werk bzw. den Inhalt zu jedem legalen und nicht-kommerziellen Zweck nutzen, verändern und in unveränderter oder veränderter Form vervielfältigen, verbreiten und öffentlich zugänglich machen, sofern Sie den Namen des Autors/Rechteinhabers in der von ihm festgelegten Weise nennen und das Werk bzw. diesen Inhalt auch in veränderter Form nur unter den Bedingungen dieser Lizenz weitergeben.
DOI 10.5446/30686
Herausgeber Confreaks, LLC
Erscheinungsjahr 2015
Sprache Englisch

Inhaltliche Metadaten

Fachgebiet Informatik

Ähnliche Filme

Loading...