Ruby Changed My Life
T, Johnny
When I found Ruby several years ago, I had no idea how strong an influence it would be in my life. It made my life happier and I was eager to share this new found happiness with other developers. Then by the way of MagLev - I found the magical world of Smalltalk - and my joy was complete. Come hear about this journey, how Ruby.is_a? Smalltalk and appreciate the following quote on another level: I always knew that one day Smalltalk would replace Java. I just didn't know it would be called Ruby. - Kent Beck
 Music I'm here to talk about Ruby and how it changed my life and how, just kind of my history of finding Ruby and then I went on to find Smalltalk, which is, I mean we've actually heard a few talks that mentioned Smalltalk. But I just wanted to kind of go through and talk about how I discovered Ruby, discovering Smalltalk, and then Maglev, which is an implementation of Ruby and a project called Subwars, which is, that's kind of how I discovered Smalltalk. So first, I am Johnny T. I work at a company in Salt Lake called Crediterra. Just started there a few months ago, and as you can see from my picture, I love Smalltalk. So discovering Ruby, I first discovered Ruby in about 2006. I went to a RailsConf over in London, and it was, the closing keynote was by Dave Thomas, and he gave a great talk about at that time saying, Ruby is not enterprise yet, but it is coming. And it is, like he was talking about how more and more people were kind of quitting their day jobs and able to start up doing Ruby consulting. After that, when I got back to the States, I mean actually a couple months later, I did just that. I quit my day job and switched and started doing full-time Ruby consulting, which was fantastic. I loved it. It ended up not being the thing for me. I like programming too much and running your own business. There is too much business stuff to deal with. And then later that year, I went to the RubyConf in Denver. So I was my first RubyConf, met Maps, which was really cool. And there, they did a skit. It was kind of cool on, it was kind of, I mean, poking fun at Smalltalk and the pure OO and objects all the way down and some Alan Kay's quotes. So, sorry. Ruby is, so we've heard Maps talk about why he created Ruby. So this is, so Ruby is designed to make programmers happy. He's also talked about how the programmer, the productivity is another major thing. And I'd say I definitely found this. Ruby, I love. It is, I'm sure other people in this room feel the same way. I mean, that's why we're here. It, the ability to, it's a direct path between what I'm thinking and then how you express that in code. You're able to do it with, I mean, very little code. And it is fun. I really enjoy, I mean, I loved programming before, but I never attended any user groups, never really reached out and did, I mean, programming was kind of just something I did at my day job and didn't really do much else. When I found Ruby, it was great. I actually wanted to share it with other people. I mean, this was a really cool thing. I had started attending, actually, one of my coworkers and I set up the Salt Lake chapter of the Utah Ruby users group. And we started trying to share it with everyone we could. Excuse me. Here's another thing that we've heard today. Minus one. So, Matt's is nice and so we are nice, which is one of the things that I loved while I continued to love about the Ruby community. It is a nice community. It's very warm and welcoming. It's, I mean, newbies are able to come in and find people to help them out. And other things that I love about Ruby is the kind of the focus on agile and on testing. It aligns. There's a lot of kind of practices that the Ruby language as well as the Ruby community really support and are behind. So, one of the things, I've already done this conference and I'd love for you guys to do if you have a chance, is to thank Matt's for what he did for Ruby. So, this is in Japanese how you can thank Matt's. So, I'm going to go through it a couple of times and I would love for you to repeat after me. So, after, so that you guys can learn this and be able to go up. I mean, I think it would be great. By the end of the conference, Matt's has hundreds of people coming up to him and thanking him for Ruby. There aren't hundreds in here, but it'd be great if everyone did. So, it's Matsumoto-san Ruby, Tskute, Kurete, Arigato. So, who wants to try it with me? Anyone? Okay. All right. So, Matsumoto-san Ruby, Tskute, Kurete, Arigato. And so, for me, that the Tskute is the one I always kind of get tripped up on. So, Matsumoto-san Ruby, Tskute, Kurete, Arigato. So, my journey of discovering small talk really started with, sorry, my slides are, well, I've just been working on it. It started with a project called SubWars. In 2010, I started working on the side project. The concept behind it is a GPS-based submarine game. It has very little functionality because I've rewritten the whole thing. I think I'm up to seven times now. It started out in, as actually a Rails app, then moved to a Snotra app. And at that point, I heard about this project called Maglev that was a new implementation of Ruby that the cool thing about it is it promised this pure object database. And so, you didn't have to worry about mapping your objects to a relational database or to some other NoSQL store. When I found that, it's, well, sorry, I'm going to go on and just talk about this quote real quick. So, this is from Kempbeck. I always knew that one day, small talk would replace Java. I just didn't know what it would be called Ruby. Kempbeck, I don't know, is one of the fathers of computer science and Agile. He is, along with many of the others, was a small talker. And after small talk didn't really take off, he moved on and worked a lot in Java. But he definitely saw, like many other, the similarities of small talk and Ruby. Okay, so this is, so small talk is kind of an interesting weird little tiny world. This is an old issue of Byte Magazine that, obviously, this is when Pascal is kind of coming out. So, you can see there's Pascal's Triangle. This references a lot of kind of some older languages. You've got Fortran Ocean, the Basic C, Straits of Cobal, where many a ship went down. And then this was a great place. The Lisp Jungle was where there's a big mist that you couldn't actually see the jungle from the sea, but there were rumors of these great algorithms and recursion going on. And then you had this ivory tower of small talk built way up on the cliffs. So, I mean, it was something that people heard about, but no one could ever make it up there and discover it. Until in 1981, this issue of Byte Magazine came out. And the idea behind it, so this is the small talk balloon, the idea behind this magazine is that this actually included a lot of information about small talk. This was the first time that small talk had been released to the world. So, the idea was, yeah, small talk had been designed and developed in this ivory tower that no one had access to, but in 1981, if they were releasing it to the world and it would go and take over, it never really did. They did release it to the world and it never really took over. The idea here that, I mean, back 30 plus years ago, this small talk was going to go out and influence and change the way people program. It never really took off. I think one of the reasons is the need, I've kind of found the need for a small talk Sherpa. So, with Subwars, when I found Maglev, I wrote a version of Subwars in Maglev. It kind of played around with it, started getting my feet wet with the persistence. And after I started playing around with it, I saw it was really cool. I wanted to be able to understand the underlying system a little bit better. So, at that time, I called one of my old business acquaintances who I knew had done some small talk programming, but I didn't know what dialect. So, Maglev is built on top of Gemstone S is the dialect of small talk. And I ended up that my friend, his name is Mike Hales, had actually worked, he worked with Gemstone. So, I went to lunch with him to try and start picking his brain about how does this, I mean, how does this underlying system work? Like, how does this magic occur? I still remember the first lunch when I went to lunch with him, he talked about, I mean, he just said, you know, Ruby, just don't even worry with Ruby. Don't worry about Ruby. Go straight to small talk. And I in my head was just thinking, man, this poor guy has not seen and used Ruby. And it ended up he had, but he had also found the treasure of small talk. So, over the next few weeks, and actually, I mean, probably a couple months, I would occasionally, whenever I had a couple hours on an evening would go to his house and just sit and talk with him and watch him and try and get, try and figure out small talk, which really helped. I found, I don't know, has anyone here tried small talk? Has anyone downloaded an image? Okay, we've got a few people. It is, it's fun to try. I mean, it is, I would say there's a lot of different dialects, but it is very hard to move past kind of the initial examples. They've got a lot of tutorials that you can download and go through, but I found myself in going through those really quickly after a few minutes, just kind of, my brain just kind of stopped and I couldn't think of like, this is really cool and magical, but like, how, like, I don't know how I would actually use this in anything. But then after talking to Mike, it really opened up and I mean, I was really able to see one, the power that was there as well as, I mean, the ways, ways that you could actually use it, but having a person, having someone that I could sit down with face to face, and actually talk through these things was necessary. More so than any other language that I've worked with. So small talk is, I mean, it needs a Sherpa. It is, it's hard to, it was kind of designed to stay within itself. I mean, it is, it doesn't play with the rest of the world real well. It's possible, but it's, it was really designed to, I mean, let you be able to just fly while you're in the image. So the need for a small talk Sherpa, I think, is one of the things that has prohibited small talk from really taking off. So now, let's see, I wish I had my speaker. Okay, sorry. So Maglev, one of the things that it offers, I mean, all that is, so the native object persistence. So it acts as your database. So if we think about, so like a traditional database, Postgres, MySQL, any number of them, when you set it up, so you install the server, which is going to install, set up some credentials, start a daemon that you can then have a client that you spin up in a separate process. This client can log in to the server at which point you have a connection to the server that then you can go and execute your queries. Maglev is similar in a sense. So when you install Maglev, you're going to download what's called the stone. And the stone is where all of your objects live. And so this is kind of your data stored. So download the stone, and then they file in Ruby. So the Ruby language is then kind of loaded into the stone. And so now you've got Ruby in the stone. And so the way that Maglev processes work is, again, same thing, you have a client, you have a process that spins up. The first thing that process has to do is log in. And now the difference is that once you've logged in, rather than returning a connection that then you can send stuff over the wire and execute some queries, the client actually attaches to what's called the shared page cache. So this process becomes part of the overall application, and it's able to share the memory of the whole application. So small talk. Some of the things that I've learned, some of the takeaways and really cool things that I've learned. One is the live environment. And so when you're working with small talk, well, I guess when you're working with other languages, it is very much you spin up, you start a process, you're going to create a bunch of objects, you might connect to a database, you've got a web server running, and everything's good, you've got your own little world going. But once the process, once you kill it, or, I mean, once the process ends, all of the work you've done in setting up and all those objects are just gone. And next time you have another process, you've got to do the same, you've got to do the same thing. You've got to spin up a new process, attached to a database, so you can share objects. But it's very much a kind of a static, I mean, moving, well, a static thing. It's your, the objects are not always persisted across the process boundaries. In small talk, you have, you're always working with a live environment. You're never starting from scratch. When you start a small talk process, there's already, there's already stuff running. And you can get in and you can kind of poke things and you can play around, look at stuff. And then you can save that as, I mean, so they call it an image, so like a virtual image. You can save that and next time you start it up, it's in the exact same spot as where you left it. It lets you, one of the things, the live environment and working with these live objects, the debugging is one of the amazing, amazing things, which I'm going to actually show. This is a video of, this is called the Maglev Database Explorer. And so this shows, we're going to walk through, this is kind of small talk-like development, but performed in a Ruby environment. So here you can see the main thing, so over on the left, there's a Ruby workspace. This is, they're actually working with a Rails app, they can see in the top left, but they're going through and you can see, kind of just like IRB, you can put in expressions, evaluate them. But the debugging is one of the really cool things. And so this is going to go through and show how you can debug an error live, make changes, check it out, save stuff, and then proceed and continue the thread. So right here, so we're setting X to 1 and then doing a 1 divided by 0, which you can see this throws an error. You get a, I mean, a divide by 0 error. So this is showing the actual thread, and so actually this, right back there, this is, so one of the things that small talk has, every other language, an error occurs and you get a stack trace. And you get, I mean, you then have to go look at it, load it up in your Devmiron, see if you can replicate it, but it's, you just have a static print out of what was happening at the time. So in small talk, you were always working with the stack itself. So this is, that was a listing of the stack that you can go in, look at the code, you can actually modify variables, you can modify code, save it, and then this is going to show that you can actually then proceed. So one thing is, as this is going through, the gray lines are stuff that you're probably not as interested in. Those are usually the lower level VM kind of level instructions. This is going to go through, this is showing how you can browse all of the local variables. And then it is going to go and proceed at which point, let's see, here we go. So this is just looking at the different variables. Okay, so here we go. So we're still on the zero divide error, and now we proceed, and you can see over here that X now has the value of two. So it's moved past the one divide by zero error, and then has the one dot pause is like a breakpoint. But I mean, it's just that will pop up again the stack that you can then manipulate and work with. So the live environment is one of the huge things that I found that Smalltalk offers that is really hard to find anywhere else. Here we go. Being able to work with persistent objects and being able to work with a large store of persistent objects is another thing that I found Smalltalk offers, especially Gemstone. So I'm going to go through and actually do a tiny bit of live coding, which is dangerous. So I'm going to show an example here of working with some big objects. So I get real quick, Geo half is a way to encode a latitude longitude into a character string where each character adds precision. So we have, let's see, we have here sub wars.io. So this is pulling up and actually so this will go through and show the kind of the live environment as well. So this is pulling up this. So that's the lat long of where we are right now. And this is the Geo hash of what it's returned. This is actually operating on. Let's see right here. So this is operating on. So it's got 1.6 billion objects in there. And one of the cool things is you can actually access any of these objects just instantaneously. Also, what we're going to go through right. So this is actually outputting just the name of the class. And so one of the things that you can do is we're going to go in and actually add a to Jason method. And then without restarting the web server, we can modify objects. And then we should be able to refresh this and have it output. Let's see. There we go. So now it's outputting the new. So it's using the new method that we just loaded. So this is against something of there. There are languages that this is possible in. I know that Erlang is able to do that. But this again shows you can have a web server running and then you can update modify. We make changes to the persisted code that the web server is able to just see on the next request. You don't have to reload the web server. So being able to work with a large persistent data store of pure objects is another one of the things that I kind of found and learned from small talk. The working with I get I mean pure Ruby objects. You don't have active record. You don't have you don't have any type of object relational database or object relational mapping in place. This is a quote from Dan Ingalls who he's he's who actually implemented most of small talk. This is a quote from the design principles behind small talk. And so it to be truly object oriented. A system must provide automatic storage management. And one thing so that applies to both code and data. I was lucky enough to be able to meet Dan at one of the small talk conferences a couple years ago. But this that concept of the automatic storage management is a big one. That's small talk really focused on that talked about if you have to think about I mean think if in a conversation if every time you went to talk to someone you had to rebuild the context and remind them of where you last left off. It doesn't match. It doesn't mesh with the way that our minds work very well. So having the system be able to handle the storage of your objects allows you to do much more pure design. So that's the object relational impedance mismatch doesn't quite fit. There's something not quite right. It's amazing. And I found that it's amazing how much of our minds are devoted to thinking of how we're going to store stuff as we're developing even in the back of our mind somewhere we're always thinking. Okay this is a cool idea about how's it what how are we going to how we can get it persisted. Tooling is one of the other things that I found that small talk has that Ruby does not yet have small talk was very much focused on the concept of you have a language and the tools to go along with it. Oh and that's so we already went through that video. So that's where the the tooling that you're able to get in small talk Ruby is definitely starting to get some one thing I love. I mean I'm not sure if it's a pry has anyone used pry. There you go. Yeah. Pry is an awesome tool. I mean to it's that I see in some ways is I mean like a small talk tool but I mean where you're able to go into your live environment and really easily dig around look at your objects. And that check out the source even modify stuff and continue running. So my goals for this talk. I want I'd love for everyone here to be able to go think maths. It doesn't have to be in Japanese. It can be in English. That's just great. But thanking him for this language that has. I mean given us joy. It's definitely given me joy. I mean so your local Ruby user groups. That's another thing that the Ruby community again is very open and the user groups are a great place to be able to be someone else's sure. I want to try maglev to one thing I do have a I think I've got it. I've got another on another slide tonight. I signed up for a birds of a feather session. Let's see. So right there. So tonight seven to eight in the next door in room 24. And as we're closing. I would just like to again go through whoever wants to join me again. I'll do it once. So Matsumoto son Ruby to get a good at the other guy. All right everyone Matsumoto son Ruby to cut a cut at a. So remember the maglev birds of a feather tonight. I will I will be there and would love to help if any if anyone wants to play around with maglev. Feel free to swing by. If you've got any other questions I'll be there. I'll be around all night. But I would love to help anyone get set up and go through and help people to be able to experience the same the same stuff that I found and be able to discover the magical world of small talk. Thanks. Any questions comments. Yes. So gemstone is very performant it. So the first version came out in 1982. And I let one of their main clients for the last few decades is JP Morgan that uses it to do their automated trading. So it is. Yeah. Yeah. Something I mean well over a thousand stones worldwide. But so it is. There are different dialects of small talk. Some dialects are not as performant as others. Gemstone is the only one that is I mean it's really meant for distributed applications. Most of the other small talks are single threaded. I mean kind of made more for just like a single little app. Yep. Great. So the question is we've heard about we heard about maglev a few years ago. Where is where is it getting used. Is it gaining traction. So a quick update on maglev. It is kind of in a state of limbo. I don't know if there are actually any production systems using it yet. One of the things over the next year or two. I will be working on actually an open source multi dimensional database. So similar to Tableau. But that will be in maglev. So it it is currently kind of it's not really being used in production. That's one of one of the things that I am hoping to do is to raise awareness of it. And I am able to generate some interest so that Gem talk who's the system behind it or the company behind it will be able to put some more resources into it to really get it moving. But currently it is it's more of a it's a work in progress. And that will be good for the messaging at seven o'clock. And thank you very much. pawns. Thank you. Thank you. Freedom to wear. Thank you. And thank you for letting me be one of your剛剛 friends. quantities. And I'll see you again soon. Two years have passed since we first met. No, the same thing. Just wanted to say thanks for listening to me and love. Watch it and remember. Xbox. Why can't I listen to a type of whiteuely-unique- SAS hand only outside? OK. Small brothers, that's all right. Usglines- Gley who brought you on again,
 Music  I'm here to talk about Ruby and how it changed my life and how, just kind of my history of finding Ruby  and then I went on to find Smalltalk, which is, I mean we've actually heard a few talks that mentioned Smalltalk.  But I just wanted to kind of go through and talk about how I discovered Ruby, discovering Smalltalk,  and then Maglev, which is an implementation of Ruby and a project called Subwars,  which is, that's kind of how I discovered Smalltalk.  So first, I am Johnny T. I work at a company in Salt Lake called Crediterra.  Just started there a few months ago, and as you can see from my picture, I love Smalltalk.  So discovering Ruby, I first discovered Ruby in about 2006. I went to a RailsConf over in London,  and it was, the closing keynote was by Dave Thomas, and he gave a great talk about at that time saying,  Ruby is not enterprise yet, but it is coming. And it is, like he was talking about how more and more people were  kind of quitting their day jobs and able to start up doing Ruby consulting.  After that, when I got back to the States, I mean actually a couple months later, I did just that.  I quit my day job and switched and started doing full-time Ruby consulting, which was fantastic.  I loved it. It ended up not being the thing for me. I like programming too much and running your own business.  There is too much business stuff to deal with.  And then later that year, I went to the RubyConf in Denver. So I was my first RubyConf, met Maps, which was really cool.  And there, they did a skit. It was kind of cool on, it was kind of, I mean, poking fun at Smalltalk  and the pure OO and objects all the way down and some Alan Kay's quotes.  So, sorry. Ruby is, so we've heard Maps talk about why he created Ruby.  So this is, so Ruby is designed to make programmers happy. He's also talked about how the programmer, the productivity is another major thing.  And I'd say I definitely found this. Ruby, I love. It is, I'm sure other people in this room feel the same way.  I mean, that's why we're here. It, the ability to, it's a direct path between what I'm thinking and then how you express that in code.  You're able to do it with, I mean, very little code. And it is fun.  I really enjoy, I mean, I loved programming before, but I never attended any user groups, never really reached out and did, I mean,  programming was kind of just something I did at my day job and didn't really do much else.  When I found Ruby, it was great. I actually wanted to share it with other people.  I mean, this was a really cool thing. I had started attending, actually, one of my coworkers and I set up the Salt Lake chapter  of the Utah Ruby users group. And we started trying to share it with everyone we could.  Excuse me. Here's another thing that we've heard today.  Minus one. So, Matt's is nice and so we are nice, which is one of the things that I loved while I continued to love about the Ruby community.  It is a nice community. It's very warm and welcoming. It's, I mean, newbies are able to come in and find people to help them out.  And other things that I love about Ruby is the kind of the focus on agile and on testing.  It aligns. There's a lot of kind of practices that the Ruby language as well as the Ruby community really support and are behind.  So, one of the things, I've already done this conference and I'd love for you guys to do if you have a chance, is to thank Matt's for what he did for Ruby.  So, this is in Japanese how you can thank Matt's. So, I'm going to go through it a couple of times and I would love for you to repeat after me.  So, after, so that you guys can learn this and be able to go up. I mean, I think it would be great.  By the end of the conference, Matt's has hundreds of people coming up to him and thanking him for Ruby.  There aren't hundreds in here, but it'd be great if everyone did. So, it's Matsumoto-san Ruby, Tskute, Kurete, Arigato.  So, who wants to try it with me? Anyone? Okay. All right. So, Matsumoto-san Ruby, Tskute, Kurete, Arigato.  And so, for me, that the Tskute is the one I always kind of get tripped up on.  So, Matsumoto-san Ruby, Tskute, Kurete, Arigato.  So, my journey of discovering small talk really started with, sorry, my slides are, well, I've just been working on it.  It started with a project called SubWars. In 2010, I started working on the side project.  The concept behind it is a GPS-based submarine game.  It has very little functionality because I've rewritten the whole thing. I think I'm up to seven times now.  It started out in, as actually a Rails app, then moved to a Snotra app.  And at that point, I heard about this project called Maglev that was a new implementation of Ruby that the cool thing about it  is it promised this pure object database.  And so, you didn't have to worry about mapping your objects to a relational database or to some other NoSQL store.  When I found that, it's, well, sorry, I'm going to go on and just talk about this quote real quick.  So, this is from Kempbeck. I always knew that one day, small talk would replace Java.  I just didn't know what it would be called Ruby.  Kempbeck, I don't know, is one of the fathers of computer science and Agile.  He is, along with many of the others, was a small talker.  And after small talk didn't really take off, he moved on and worked a lot in Java.  But he definitely saw, like many other, the similarities of small talk and Ruby.  Okay, so this is, so small talk is kind of an interesting weird little tiny world.  This is an old issue of Byte Magazine that, obviously, this is when Pascal is kind of coming out.  So, you can see there's Pascal's Triangle.  This references a lot of kind of some older languages.  You've got Fortran Ocean, the Basic C, Straits of Cobal,  where many a ship went down.  And then this was a great place.  The Lisp Jungle was where there's a big mist that you couldn't actually see the jungle from the sea,  but there were rumors of these great algorithms and recursion going on.  And then you had this ivory tower of small talk built way up on the cliffs.  So, I mean, it was something that people heard about, but no one could ever make it up there and discover it.  Until in 1981, this issue of Byte Magazine came out.  And the idea behind it, so this is the small talk balloon,  the idea behind this magazine is that this actually included a lot of information about small talk.  This was the first time that small talk had been released to the world.  So, the idea was, yeah, small talk had been designed and developed in this ivory tower that no one had access to,  but in 1981, if they were releasing it to the world and it would go and take over, it never really did.  They did release it to the world and it never really took over.  The idea here that, I mean, back 30 plus years ago, this small talk was going to go out and influence and change the way people program.  It never really took off.  I think one of the reasons is the need, I've kind of found the need for a small talk Sherpa.  So, with Subwars, when I found Maglev, I wrote a version of Subwars in Maglev.  It kind of played around with it, started getting my feet wet with the persistence.  And after I started playing around with it, I saw it was really cool.  I wanted to be able to understand the underlying system a little bit better.  So, at that time, I called one of my old business acquaintances who I knew had done some small talk programming,  but I didn't know what dialect.  So, Maglev is built on top of Gemstone S is the dialect of small talk.  And I ended up that my friend, his name is Mike Hales, had actually worked, he worked with Gemstone.  So, I went to lunch with him to try and start picking his brain about how does this,  I mean, how does this underlying system work?  Like, how does this magic occur?  I still remember the first lunch when I went to lunch with him, he talked about,  I mean, he just said, you know, Ruby, just don't even worry with Ruby.  Don't worry about Ruby.  Go straight to small talk.  And I in my head was just thinking, man, this poor guy has not seen and used Ruby.  And it ended up he had, but he had also found the treasure of small talk.  So, over the next few weeks, and actually, I mean, probably a couple months,  I would occasionally, whenever I had a couple hours on an evening would go to his house and just sit and talk with him and watch him and try and get,  try and figure out small talk, which really helped.  I found, I don't know, has anyone here tried small talk?  Has anyone downloaded an image?  Okay, we've got a few people.  It is, it's fun to try.  I mean, it is, I would say there's a lot of different dialects,  but it is very hard to move past kind of the initial examples.  They've got a lot of tutorials that you can download and go through,  but I found myself in going through those really quickly after a few minutes,  just kind of, my brain just kind of stopped and I couldn't think of like,  this is really cool and magical, but like, how, like, I don't know how I would actually use this in anything.  But then after talking to Mike, it really opened up and I mean, I was really able to see one,  the power that was there as well as, I mean, the ways,  ways that you could actually use it, but having a person, having someone that I could sit down with face to face,  and actually talk through these things was necessary.  More so than any other language that I've worked with.  So small talk is, I mean, it needs a Sherpa.  It is, it's hard to, it was kind of designed to stay within itself.  I mean, it is, it doesn't play with the rest of the world real well.  It's possible, but it's, it was really designed to, I mean, let you be able to just fly while you're in the image.  So the need for a small talk Sherpa, I think, is one of the things that has prohibited small talk from really taking off.  So now, let's see, I wish I had my speaker.  Okay, sorry. So Maglev, one of the things that it offers, I mean, all that is, so the native object persistence.  So it acts as your database.  So if we think about, so like a traditional database, Postgres, MySQL, any number of them, when you set it up,  so you install the server, which is going to install, set up some credentials, start a daemon that you can then have a client that you spin up in a separate process.  This client can log in to the server at which point you have a connection to the server that then you can go and execute your queries.  Maglev is similar in a sense.  So when you install Maglev, you're going to download what's called the stone.  And the stone is where all of your objects live.  And so this is kind of your data stored.  So download the stone, and then they file in Ruby.  So the Ruby language is then kind of loaded into the stone.  And so now you've got Ruby in the stone.  And so the way that Maglev processes work is, again, same thing, you have a client, you have a process that spins up.  The first thing that process has to do is log in.  And now the difference is that once you've logged in, rather than returning a connection that then you can send stuff over the wire and execute some queries, the client actually attaches to what's called the shared page cache.  So this process becomes part of the overall application, and it's able to share the memory of the whole application.  So small talk.  Some of the things that I've learned, some of the takeaways and really cool things that I've learned.  One is the live environment.  And so when you're working with small talk, well, I guess when you're working with other languages, it is very much you spin up, you start a process, you're going to create a bunch of objects, you might connect to a database, you've got a web server running, and everything's good, you've got your own little world going.  But once the process, once you kill it, or, I mean, once the process ends, all of the work you've done in setting up and all those objects are just gone.  And next time you have another process, you've got to do the same, you've got to do the same thing. You've got to spin up a new process, attached to a database, so you can share objects.  But it's very much a kind of a static, I mean, moving, well, a static thing.  It's your, the objects are not always persisted across the process boundaries.  In small talk, you have, you're always working with a live environment. You're never starting from scratch.  When you start a small talk process, there's already, there's already stuff running.  And you can get in and you can kind of poke things and you can play around, look at stuff.  And then you can save that as, I mean, so they call it an image, so like a virtual image.  You can save that and next time you start it up, it's in the exact same spot as where you left it.  It lets you, one of the things, the live environment and working with these live objects, the debugging is one of the amazing, amazing things, which I'm going to actually show.  This is a video of, this is called the Maglev Database Explorer.  And so this shows, we're going to walk through, this is kind of small talk-like development, but performed in a Ruby environment.  So here you can see the main thing, so over on the left, there's a Ruby workspace.  This is, they're actually working with a Rails app, they can see in the top left, but they're going through and you can see, kind of just like IRB, you can put in expressions, evaluate them.  But the debugging is one of the really cool things.  And so this is going to go through and show how you can debug an error live, make changes, check it out, save stuff, and then proceed and continue the thread.  So right here, so we're setting X to 1 and then doing a 1 divided by 0, which you can see this throws an error.  You get a, I mean, a divide by 0 error.  So this is showing the actual thread, and so actually this, right back there, this is, so one of the things that small talk has, every other language, an error occurs and you get a stack trace.  And you get, I mean, you then have to go look at it, load it up in your Devmiron, see if you can replicate it, but it's, you just have a static print out of what was happening at the time.  So in small talk, you were always working with the stack itself.  So this is, that was a listing of the stack that you can go in, look at the code, you can actually modify variables, you can modify code, save it, and then this is going to show that you can actually then proceed.  So one thing is, as this is going through, the gray lines are stuff that you're probably not as interested in. Those are usually the lower level VM kind of level instructions.  This is going to go through, this is showing how you can browse all of the local variables.  And then it is going to go and proceed at which point, let's see, here we go.  So this is just looking at the different variables. Okay, so here we go.  So we're still on the zero divide error, and now we proceed, and you can see over here that X now has the value of two. So it's moved past the one divide by zero error, and then has the one dot pause is like a breakpoint.  But I mean, it's just that will pop up again the stack that you can then manipulate and work with.  So the live environment is one of the huge things that I found that Smalltalk offers that is really hard to find anywhere else.  Here we go.  Being able to work with persistent objects and being able to work with a large store of persistent objects is another thing that I found Smalltalk offers, especially Gemstone.  So I'm going to go through and actually do a tiny bit of live coding, which is dangerous. So I'm going to show an example here of working with some big objects.  So I get real quick, Geo half is a way to encode a latitude longitude into a character string where each character adds precision.  So we have, let's see, we have here sub wars.io.  So this is pulling up and actually so this will go through and show the kind of the live environment as well. So this is pulling up this. So that's the lat long of where we are right now.  And this is the Geo hash of what it's returned.  This is actually operating on. Let's see right here.  So this is operating on. So it's got 1.6 billion objects in there. And one of the cool things is you can actually access any of these objects just instantaneously.  Also, what we're going to go through right. So this is actually outputting just the name of the class.  And so one of the things that you can do is we're going to go in and actually add a to Jason method.  And then without restarting the web server, we can modify objects. And then we should be able to refresh this and have it output.  Let's see. There we go. So now it's outputting the new. So it's using the new method that we just loaded.  So this is against something of there. There are languages that this is possible in.  I know that Erlang is able to do that. But this again shows you can have a web server running and then you can update modify.  We make changes to the persisted code that the web server is able to just see on the next request. You don't have to reload the web server.  So being able to work with a large persistent data store of pure objects is another one of the things that I kind of found and learned from small talk.  The working with I get I mean pure Ruby objects. You don't have active record. You don't have you don't have any type of object relational database or object relational mapping in place.  This is a quote from Dan Ingalls who he's he's who actually implemented most of small talk.  This is a quote from the design principles behind small talk. And so it to be truly object oriented. A system must provide automatic storage management.  And one thing so that applies to both code and data.  I was lucky enough to be able to meet Dan at one of the small talk conferences a couple years ago.  But this that concept of the automatic storage management is a big one. That's small talk really focused on that talked about if you have to think about I mean think if in a conversation if every time you went to talk to someone you had to rebuild the context and remind them of where you last left off.  It doesn't match. It doesn't mesh with the way that our minds work very well.  So having the system be able to handle the storage of your objects allows you to do much more pure design.  So that's the object relational impedance mismatch doesn't quite fit. There's something not quite right.  It's amazing. And I found that it's amazing how much of our minds are devoted to thinking of how we're going to store stuff as we're developing even in the back of our mind somewhere we're always thinking.  Okay this is a cool idea about how's it what how are we going to how we can get it persisted.  Tooling is one of the other things that I found that small talk has that Ruby does not yet have small talk was very much focused on the concept of you have a language and the tools to go along with it.  Oh and that's so we already went through that video. So that's where the the tooling that you're able to get in small talk Ruby is definitely starting to get some one thing I love.  I mean I'm not sure if it's a pry has anyone used pry. There you go. Yeah. Pry is an awesome tool. I mean to it's that I see in some ways is I mean like a small talk tool but I mean where you're able to go into your live environment and really easily dig around look at your objects.  And that check out the source even modify stuff and continue running. So my goals for this talk.  I want I'd love for everyone here to be able to go think maths. It doesn't have to be in Japanese. It can be in English. That's just great. But thanking him for this language that has. I mean given us joy. It's definitely given me joy.  I mean so your local Ruby user groups. That's another thing that the Ruby community again is very open and the user groups are a great place to be able to be someone else's sure.  I want to try maglev to one thing I do have a I think I've got it. I've got another on another slide tonight. I signed up for a birds of a feather session. Let's see. So right there. So tonight seven to eight in the next door in room 24.  And as we're closing. I would just like to again go through whoever wants to join me again. I'll do it once. So Matsumoto son Ruby to get a good at the other guy.  All right everyone Matsumoto son Ruby to cut a cut at a. So remember the maglev birds of a feather tonight. I will I will be there and would love to help if any if anyone wants to play around with maglev.  Feel free to swing by. If you've got any other questions I'll be there. I'll be around all night. But I would love to help anyone get set up and go through and help people to be able to experience the same the same stuff that I found and be able to  discover the magical world of small talk.  Thanks. Any questions comments. Yes.  So gemstone is very performant it. So the first version came out in 1982. And I let one of their main clients for the last few decades is JP Morgan that uses it to do their automated trading.  So it is.  Yeah. Yeah. Something I mean well over a thousand stones worldwide. But so it is. There are different dialects of small talk. Some dialects are not as performant as others.  Gemstone is the only one that is I mean it's really meant for distributed applications. Most of the other small talks are single threaded. I mean kind of made more for just like a single little app.  Yep.  Great. So the question is we've heard about we heard about maglev a few years ago. Where is where is it getting used. Is it gaining traction.  So a quick update on maglev. It is kind of in a state of limbo. I don't know if there are actually any production systems using it yet. One of the things over the next year or two. I will be working on actually an open source  multi dimensional database. So similar to Tableau. But that will be in maglev. So it it is currently kind of it's not really being used in production. That's one of one of the things that I am hoping to do is to raise awareness of it.  And I am able to generate some interest so that Gem talk who's the system behind it or the company behind it will be able to put some more resources into it to really get it moving. But currently it is it's more of a it's a work in progress.  And that will be good for the messaging at seven o'clock. And thank you very much.  pawns.  Thank you.  Thank you.  Freedom to wear.  Thank you.  And thank you for letting me be one of your剛剛 friends.  quantities.  And I'll see you again soon.  Two years have passed since we first met.  No, the same thing.  Just wanted to say thanks for listening to me and love.  Watch it and remember.  Xbox.  Why can't I listen to a type of whiteuely-unique- SAS hand  only outside?  OK.  Small brothers, that's all right.  Usglines-  Gley  who brought you on again,
Ruby_Changed_My_Life_0_71.png Ruby_Changed_My_Life_72_179.png Ruby_Changed_My_Life_180_239.png Ruby_Changed_My_Life_240_347.png Ruby_Changed_My_Life_348_1811.png Ruby_Changed_My_Life_1812_9203.png Ruby_Changed_My_Life_9204_9467.png Ruby_Changed_My_Life_9468_11135.png Ruby_Changed_My_Life_11136_13655.png Ruby_Changed_My_Life_13656_23219.png Ruby_Changed_My_Life_23220_24203.png Ruby_Changed_My_Life_24204_26939.png Ruby_Changed_My_Life_26940_27047.png Ruby_Changed_My_Life_27048_27227.png Ruby_Changed_My_Life_27228_27299.png Ruby_Changed_My_Life_27300_27371.png Ruby_Changed_My_Life_27372_27467.png Ruby_Changed_My_Life_27468_32039.png Ruby_Changed_My_Life_32040_32267.png Ruby_Changed_My_Life_32268_32315.png Ruby_Changed_My_Life_32316_33803.png Ruby_Changed_My_Life_33804_34019.png Ruby_Changed_My_Life_34020_34175.png Ruby_Changed_My_Life_34176_34223.png Ruby_Changed_My_Life_34224_34631.png Ruby_Changed_My_Life_34632_35399.png Ruby_Changed_My_Life_35400_35531.png Ruby_Changed_My_Life_35532_35615.png Ruby_Changed_My_Life_35616_36455.png Ruby_Changed_My_Life_36456_36563.png Ruby_Changed_My_Life_36564_37271.png Ruby_Changed_My_Life_37272_37883.png Ruby_Changed_My_Life_37884_39707.png Ruby_Changed_My_Life_39708_40391.png Ruby_Changed_My_Life_40392_43283.png Ruby_Changed_My_Life_43284_49235.png Ruby_Changed_My_Life_49236_49307.png Ruby_Changed_My_Life_49308_49439.png Ruby_Changed_My_Life_49440_49523.png Ruby_Changed_My_Life_49524_49667.png Ruby_Changed_My_Life_49668_49690.png
Music I'm here to talk about Ruby and how it changed my life and how, just kind of my history of finding Ruby and then I went on to find Smalltalk, which is, I mean we've actually heard a few talks that mentioned Smalltalk. But I just wanted to kind of go through and talk about how I discovered Ruby, discovering Smalltalk, and then Maglev, which is an implementation of Ruby and a project called Subwars, which is, that's kind of how I discovered Smalltalk. So first, I am Johnny T. I work at a company in Salt Lake called Crediterra. Just started there a few months ago, and as you can see from my picture, I love Smalltalk. So discovering Ruby, I first discovered Ruby in about 2006. I went to a RailsConf over in London, and it was, the closing keynote was by Dave Thomas, and he gave a great talk about at that time saying, Ruby is not enterprise yet, but it is coming. And it is, like he was talking about how more and more people were kind of quitting their day jobs and able to start up doing Ruby consulting. After that, when I got back to the States, I mean actually a couple months later, I did just that. I quit my day job and switched and started doing full-time Ruby consulting, which was fantastic. I loved it. It ended up not being the thing for me. I like programming too much and running your own business. There is too much business stuff to deal with. And then later that year, I went to the RubyConf in Denver. So I was my first RubyConf, met Maps, which was really cool. And there, they did a skit. It was kind of cool on, it was kind of, I mean, poking fun at Smalltalk and the pure OO and objects all the way down and some Alan Kay's quotes. So, sorry. Ruby is, so we've heard Maps talk about why he created Ruby. So this is, so Ruby is designed to make programmers happy. He's also talked about how the programmer, the productivity is another major thing. And I'd say I definitely found this. Ruby, I love. It is, I'm sure other people in this room feel the same way. I mean, that's why we're here. It, the ability to, it's a direct path between what I'm thinking and then how you express that in code. You're able to do it with, I mean, very little code. And it is fun. I really enjoy, I mean, I loved programming before, but I never attended any user groups, never really reached out and did, I mean, programming was kind of just something I did at my day job and didn't really do much else. When I found Ruby, it was great. I actually wanted to share it with other people. I mean, this was a really cool thing. I had started attending, actually, one of my coworkers and I set up the Salt Lake chapter of the Utah Ruby users group. And we started trying to share it with everyone we could. Excuse me. Here's another thing that we've heard today. Minus one. So, Matt's is nice and so we are nice, which is one of the things that I loved while I continued to love about the Ruby community. It is a nice community. It's very warm and welcoming. It's, I mean, newbies are able to come in and find people to help them out. And other things that I love about Ruby is the kind of the focus on agile and on testing. It aligns. There's a lot of kind of practices that the Ruby language as well as the Ruby community really support and are behind. So, one of the things, I've already done this conference and I'd love for you guys to do if you have a chance, is to thank Matt's for what he did for Ruby. So, this is in Japanese how you can thank Matt's. So, I'm going to go through it a couple of times and I would love for you to repeat after me. So, after, so that you guys can learn this and be able to go up. I mean, I think it would be great. By the end of the conference, Matt's has hundreds of people coming up to him and thanking him for Ruby. There aren't hundreds in here, but it'd be great if everyone did. So, it's Matsumoto-san Ruby, Tskute, Kurete, Arigato. So, who wants to try it with me? Anyone? Okay. All right. So, Matsumoto-san Ruby, Tskute, Kurete, Arigato. And so, for me, that the Tskute is the one I always kind of get tripped up on. So, Matsumoto-san Ruby, Tskute, Kurete, Arigato. So, my journey of discovering small talk really started with, sorry, my slides are, well, I've just been working on it. It started with a project called SubWars. In 2010, I started working on the side project. The concept behind it is a GPS-based submarine game. It has very little functionality because I've rewritten the whole thing. I think I'm up to seven times now. It started out in, as actually a Rails app, then moved to a Snotra app. And at that point, I heard about this project called Maglev that was a new implementation of Ruby that the cool thing about it is it promised this pure object database. And so, you didn't have to worry about mapping your objects to a relational database or to some other NoSQL store. When I found that, it's, well, sorry, I'm going to go on and just talk about this quote real quick. So, this is from Kempbeck. I always knew that one day, small talk would replace Java. I just didn't know what it would be called Ruby. Kempbeck, I don't know, is one of the fathers of computer science and Agile. He is, along with many of the others, was a small talker. And after small talk didn't really take off, he moved on and worked a lot in Java. But he definitely saw, like many other, the similarities of small talk and Ruby. Okay, so this is, so small talk is kind of an interesting weird little tiny world. This is an old issue of Byte Magazine that, obviously, this is when Pascal is kind of coming out. So, you can see there's Pascal's Triangle. This references a lot of kind of some older languages. You've got Fortran Ocean, the Basic C, Straits of Cobal, where many a ship went down. And then this was a great place. The Lisp Jungle was where there's a big mist that you couldn't actually see the jungle from the sea, but there were rumors of these great algorithms and recursion going on. And then you had this ivory tower of small talk built way up on the cliffs. So, I mean, it was something that people heard about, but no one could ever make it up there and discover it. Until in 1981, this issue of Byte Magazine came out. And the idea behind it, so this is the small talk balloon, the idea behind this magazine is that this actually included a lot of information about small talk. This was the first time that small talk had been released to the world. So, the idea was, yeah, small talk had been designed and developed in this ivory tower that no one had access to, but in 1981, if they were releasing it to the world and it would go and take over, it never really did. They did release it to the world and it never really took over. The idea here that, I mean, back 30 plus years ago, this small talk was going to go out and influence and change the way people program. It never really took off. I think one of the reasons is the need, I've kind of found the need for a small talk Sherpa. So, with Subwars, when I found Maglev, I wrote a version of Subwars in Maglev. It kind of played around with it, started getting my feet wet with the persistence. And after I started playing around with it, I saw it was really cool. I wanted to be able to understand the underlying system a little bit better. So, at that time, I called one of my old business acquaintances who I knew had done some small talk programming, but I didn't know what dialect. So, Maglev is built on top of Gemstone S is the dialect of small talk. And I ended up that my friend, his name is Mike Hales, had actually worked, he worked with Gemstone. So, I went to lunch with him to try and start picking his brain about how does this, I mean, how does this underlying system work? Like, how does this magic occur? I still remember the first lunch when I went to lunch with him, he talked about, I mean, he just said, you know, Ruby, just don't even worry with Ruby. Don't worry about Ruby. Go straight to small talk. And I in my head was just thinking, man, this poor guy has not seen and used Ruby. And it ended up he had, but he had also found the treasure of small talk. So, over the next few weeks, and actually, I mean, probably a couple months, I would occasionally, whenever I had a couple hours on an evening would go to his house and just sit and talk with him and watch him and try and get, try and figure out small talk, which really helped. I found, I don't know, has anyone here tried small talk? Has anyone downloaded an image? Okay, we've got a few people. It is, it's fun to try. I mean, it is, I would say there's a lot of different dialects, but it is very hard to move past kind of the initial examples. They've got a lot of tutorials that you can download and go through, but I found myself in going through those really quickly after a few minutes, just kind of, my brain just kind of stopped and I couldn't think of like, this is really cool and magical, but like, how, like, I don't know how I would actually use this in anything. But then after talking to Mike, it really opened up and I mean, I was really able to see one, the power that was there as well as, I mean, the ways, ways that you could actually use it, but having a person, having someone that I could sit down with face to face, and actually talk through these things was necessary. More so than any other language that I've worked with. So small talk is, I mean, it needs a Sherpa. It is, it's hard to, it was kind of designed to stay within itself. I mean, it is, it doesn't play with the rest of the world real well. It's possible, but it's, it was really designed to, I mean, let you be able to just fly while you're in the image. So the need for a small talk Sherpa, I think, is one of the things that has prohibited small talk from really taking off. So now, let's see, I wish I had my speaker. Okay, sorry. So Maglev, one of the things that it offers, I mean, all that is, so the native object persistence. So it acts as your database. So if we think about, so like a traditional database, Postgres, MySQL, any number of them, when you set it up, so you install the server, which is going to install, set up some credentials, start a daemon that you can then have a client that you spin up in a separate process. This client can log in to the server at which point you have a connection to the server that then you can go and execute your queries. Maglev is similar in a sense. So when you install Maglev, you're going to download what's called the stone. And the stone is where all of your objects live. And so this is kind of your data stored. So download the stone, and then they file in Ruby. So the Ruby language is then kind of loaded into the stone. And so now you've got Ruby in the stone. And so the way that Maglev processes work is, again, same thing, you have a client, you have a process that spins up. The first thing that process has to do is log in. And now the difference is that once you've logged in, rather than returning a connection that then you can send stuff over the wire and execute some queries, the client actually attaches to what's called the shared page cache. So this process becomes part of the overall application, and it's able to share the memory of the whole application. So small talk. Some of the things that I've learned, some of the takeaways and really cool things that I've learned. One is the live environment. And so when you're working with small talk, well, I guess when you're working with other languages, it is very much you spin up, you start a process, you're going to create a bunch of objects, you might connect to a database, you've got a web server running, and everything's good, you've got your own little world going. But once the process, once you kill it, or, I mean, once the process ends, all of the work you've done in setting up and all those objects are just gone. And next time you have another process, you've got to do the same, you've got to do the same thing. You've got to spin up a new process, attached to a database, so you can share objects. But it's very much a kind of a static, I mean, moving, well, a static thing. It's your, the objects are not always persisted across the process boundaries. In small talk, you have, you're always working with a live environment. You're never starting from scratch. When you start a small talk process, there's already, there's already stuff running. And you can get in and you can kind of poke things and you can play around, look at stuff. And then you can save that as, I mean, so they call it an image, so like a virtual image. You can save that and next time you start it up, it's in the exact same spot as where you left it. It lets you, one of the things, the live environment and working with these live objects, the debugging is one of the amazing, amazing things, which I'm going to actually show. This is a video of, this is called the Maglev Database Explorer. And so this shows, we're going to walk through, this is kind of small talk-like development, but performed in a Ruby environment. So here you can see the main thing, so over on the left, there's a Ruby workspace. This is, they're actually working with a Rails app, they can see in the top left, but they're going through and you can see, kind of just like IRB, you can put in expressions, evaluate them. But the debugging is one of the really cool things. And so this is going to go through and show how you can debug an error live, make changes, check it out, save stuff, and then proceed and continue the thread. So right here, so we're setting X to 1 and then doing a 1 divided by 0, which you can see this throws an error. You get a, I mean, a divide by 0 error. So this is showing the actual thread, and so actually this, right back there, this is, so one of the things that small talk has, every other language, an error occurs and you get a stack trace. And you get, I mean, you then have to go look at it, load it up in your Devmiron, see if you can replicate it, but it's, you just have a static print out of what was happening at the time. So in small talk, you were always working with the stack itself. So this is, that was a listing of the stack that you can go in, look at the code, you can actually modify variables, you can modify code, save it, and then this is going to show that you can actually then proceed. So one thing is, as this is going through, the gray lines are stuff that you're probably not as interested in. Those are usually the lower level VM kind of level instructions. This is going to go through, this is showing how you can browse all of the local variables. And then it is going to go and proceed at which point, let's see, here we go. So this is just looking at the different variables. Okay, so here we go. So we're still on the zero divide error, and now we proceed, and you can see over here that X now has the value of two. So it's moved past the one divide by zero error, and then has the one dot pause is like a breakpoint. But I mean, it's just that will pop up again the stack that you can then manipulate and work with. So the live environment is one of the huge things that I found that Smalltalk offers that is really hard to find anywhere else. Here we go. Being able to work with persistent objects and being able to work with a large store of persistent objects is another thing that I found Smalltalk offers, especially Gemstone. So I'm going to go through and actually do a tiny bit of live coding, which is dangerous. So I'm going to show an example here of working with some big objects. So I get real quick, Geo half is a way to encode a latitude longitude into a character string where each character adds precision. So we have, let's see, we have here sub wars.io. So this is pulling up and actually so this will go through and show the kind of the live environment as well. So this is pulling up this. So that's the lat long of where we are right now. And this is the Geo hash of what it's returned. This is actually operating on. Let's see right here. So this is operating on. So it's got 1.6 billion objects in there. And one of the cool things is you can actually access any of these objects just instantaneously. Also, what we're going to go through right. So this is actually outputting just the name of the class. And so one of the things that you can do is we're going to go in and actually add a to Jason method. And then without restarting the web server, we can modify objects. And then we should be able to refresh this and have it output. Let's see. There we go. So now it's outputting the new. So it's using the new method that we just loaded. So this is against something of there. There are languages that this is possible in. I know that Erlang is able to do that. But this again shows you can have a web server running and then you can update modify. We make changes to the persisted code that the web server is able to just see on the next request. You don't have to reload the web server. So being able to work with a large persistent data store of pure objects is another one of the things that I kind of found and learned from small talk. The working with I get I mean pure Ruby objects. You don't have active record. You don't have you don't have any type of object relational database or object relational mapping in place. This is a quote from Dan Ingalls who he's he's who actually implemented most of small talk. This is a quote from the design principles behind small talk. And so it to be truly object oriented. A system must provide automatic storage management. And one thing so that applies to both code and data. I was lucky enough to be able to meet Dan at one of the small talk conferences a couple years ago. But this that concept of the automatic storage management is a big one. That's small talk really focused on that talked about if you have to think about I mean think if in a conversation if every time you went to talk to someone you had to rebuild the context and remind them of where you last left off. It doesn't match. It doesn't mesh with the way that our minds work very well. So having the system be able to handle the storage of your objects allows you to do much more pure design. So that's the object relational impedance mismatch doesn't quite fit. There's something not quite right. It's amazing. And I found that it's amazing how much of our minds are devoted to thinking of how we're going to store stuff as we're developing even in the back of our mind somewhere we're always thinking. Okay this is a cool idea about how's it what how are we going to how we can get it persisted. Tooling is one of the other things that I found that small talk has that Ruby does not yet have small talk was very much focused on the concept of you have a language and the tools to go along with it. Oh and that's so we already went through that video. So that's where the the tooling that you're able to get in small talk Ruby is definitely starting to get some one thing I love. I mean I'm not sure if it's a pry has anyone used pry. There you go. Yeah. Pry is an awesome tool. I mean to it's that I see in some ways is I mean like a small talk tool but I mean where you're able to go into your live environment and really easily dig around look at your objects. And that check out the source even modify stuff and continue running. So my goals for this talk. I want I'd love for everyone here to be able to go think maths. It doesn't have to be in Japanese. It can be in English. That's just great. But thanking him for this language that has. I mean given us joy. It's definitely given me joy. I mean so your local Ruby user groups. That's another thing that the Ruby community again is very open and the user groups are a great place to be able to be someone else's sure. I want to try maglev to one thing I do have a I think I've got it. I've got another on another slide tonight. I signed up for a birds of a feather session. Let's see. So right there. So tonight seven to eight in the next door in room 24. And as we're closing. I would just like to again go through whoever wants to join me again. I'll do it once. So Matsumoto son Ruby to get a good at the other guy. All right everyone Matsumoto son Ruby to cut a cut at a. So remember the maglev birds of a feather tonight. I will I will be there and would love to help if any if anyone wants to play around with maglev. Feel free to swing by. If you've got any other questions I'll be there. I'll be around all night. But I would love to help anyone get set up and go through and help people to be able to experience the same the same stuff that I found and be able to discover the magical world of small talk. Thanks. Any questions comments. Yes. So gemstone is very performant it. So the first version came out in 1982. And I let one of their main clients for the last few decades is JP Morgan that uses it to do their automated trading. So it is. Yeah. Yeah. Something I mean well over a thousand stones worldwide. But so it is. There are different dialects of small talk. Some dialects are not as performant as others. Gemstone is the only one that is I mean it's really meant for distributed applications. Most of the other small talks are single threaded. I mean kind of made more for just like a single little app. Yep. Great. So the question is we've heard about we heard about maglev a few years ago. Where is where is it getting used. Is it gaining traction. So a quick update on maglev. It is kind of in a state of limbo. I don't know if there are actually any production systems using it yet. One of the things over the next year or two. I will be working on actually an open source multi dimensional database. So similar to Tableau. But that will be in maglev. So it it is currently kind of it's not really being used in production. That's one of one of the things that I am hoping to do is to raise awareness of it. And I am able to generate some interest so that Gem talk who's the system behind it or the company behind it will be able to put some more resources into it to really get it moving. But currently it is it's more of a it's a work in progress. And that will be good for the messaging at seven o'clock. And thank you very much. pawns. Thank you. Thank you. Freedom to wear. Thank you. And thank you for letting me be one of your剛剛 friends. quantities. And I'll see you again soon. Two years have passed since we first met. No, the same thing. Just wanted to say thanks for listening to me and love. Watch it and remember. Xbox. Why can't I listen to a type of whiteuely-unique- SAS hand only outside? OK. Small brothers, that's all right. Usglines- Gley who brought you on again,
changed my life and how, just kind of my history discovered Ruby, discovering Smalltalk, and then do much else. When I found Ruby, it was great. I actually wanted to share it with other people. I about this project called Maglev that was a new I always knew that one day, small talk would replace Java. I just didn't know what it would be whenever I had a couple hours on an evening would the small talk conferences a couple years ago. doesn't have to be in Japanese. It can be in and be able to discover the magical world of