The Changelog: Software Development, Open Source - Padrino Ruby Web Framework (Interview)

Episode Date: June 17, 2010

Adam and Wynn caught up with Arthur Chiu and Nathan Esquenazi from Padrino, the Ruby web framework built on top of Sinatra....

Transcript
Discussion (0)
Starting point is 00:00:00 Hi, this is Rick Olson, and you're listening to The Changelog Podcast. Welcome to The Changelog, episode 0.2.7. I'm Adams Tachowiak. And I am Winn Netherland. This is The Change Log. We cover what's fresh and new in the world of open source. If you found us on iTunes, we're also on the web at thechangelog.com. We're also up on
Starting point is 00:00:32 GitHub. Yep, head to github.com forward slash explore. You'll find some trending repos, some feature repos from our blog, as well as our audio podcasts. And if you're on Twitter, follow Change Log Show. And I'm Adam Stack. And I am Penguin, P-E-N-G-W-Y-N-N. Back to Ruby this episode.
Starting point is 00:00:48 Taking a hiatus from some of the JavaScript coverage to talk with the Padrino team. Yeah, it was awesome. Yeah, Padrino is a cool lightweight framework built on top of Sinatra, kind of like Rails Lite or Sinatra Plus, however you want to say it. I wonder why they didn't call that Sinatra More.
Starting point is 00:01:04 That was the original, I guess, gem behind it. Padrino is Godfather. So I think it's a take on the whole Sinatra name. It fits. It does fit. It's a classy little framework. I think it fits the Sinatra vibe. I've been having fun with it on a couple of projects. I'm excited about what it offers,
Starting point is 00:01:20 too. All this expandability without the complexity of engines and subprojectss, and what a mess. Yeah, and usually when you bite off a Sinatra application, it seems like there's times when you miss a couple of things from Rails, and I haven't found that with Padrino yet. Fun episode, should we get to it? Let's do it. All righty, we're joined today by Arthur Chu and Nathan Eskenazi, two of the brains behind Pedrino RB, new Ruby web framework.
Starting point is 00:01:56 Arthur, why don't you give us a little background on yourself and your role on the team? Hi, my name is Arthur Chu, recent UCI graduate, currently working at a company called Stuck Pixel in Newport Beach. I'm one of the main core developers of Pedrino. type thing since I was in high school, actually. And I've been using Ruby for two years. Recently, I started using Sinatra a lot. And so I'm also one of the core developers of Padrino. I focus primarily on the core gem and also the helpers gem. Cool. Before we dive into the project, why don't you give us an idea of how big the team is and where you're located? Sure. So there's actually six of us now on the
Starting point is 00:02:45 core team. And it started out, it's kind of interesting. It started out with, I built this gym called Sinatra Moore. And it was actually just me and Arthur working on that originally. And then we were joined, the third core team member was this guy in Italy. And he actually loved it so much that he became a really passionate contributor and we uh converted snatcher more over to padrino and so it was just the three of us for a while and then and then three more added on just recently just very recently uh we have joshua uh one of the guy the guy who created usher which is so that was that was great laurie holden who's um she's one of she used to be a merb core team member and now she's going to be helping us with the routing and the tests for Padrino.
Starting point is 00:03:29 And finally, we have Skade, Florian Gilcher, who is just another very, very talented Sinatra developer. He found us early on, and we added him to the project because he was so interested in helping contribute. I believe he's also one of the main guys for the German Ruby group. That's right. And so we've actually, we're actually located different places. Me and Arthur are in Irvine.
Starting point is 00:03:52 David's in Italy. And then I believe that Joshua right now is in Toronto. And Lori's out in Colorado too as well. So we're a distributed team. Well, that definitely explains why the IRC channel is so well manned. No matter what time of day I'm in there, it's just like 30 people. It's funny because it's actually perfect. Right when I'm going to bed, David is waking up and going to work. So the second I'm off the IRC, David's in there helping people. And then when he leaves, he tags me back in and I'm back. So it's kind of convenient. So usually the first
Starting point is 00:04:23 question that comes up when I'm talking about Padrino, because Adam and I are big fans, is why Padrino? We've got Sinatra, we've got Ramez, we've got Rails. Why Padrino in this day and age? Well, that's an excellent question, actually. And that's something, obviously, that comes up right away, very often, whenever we're talking to people about Padrino. And the simplest answer is that we never actually set out to create a framework originally.
Starting point is 00:04:49 We were all just really big Sinatra fans, to be honest. I mean, I used Rails a lot, and Arthur used Rails, and we always felt like there was something very enticing about the Sinatra philosophies. Yeah, it actually, it's a funny thing. It started with Nathan and I. We were actually working on a little pet project before. And then we wanted to try something different. And then instead of just using Rails, we decided like, hey, let's give Sinatra a go.
Starting point is 00:05:11 And then Nathan suggested, you know, like there's a lot of things from Rails that we did miss a lot. And Sinatra being as bare bone as it is, like we wanted to bring some of those extra functionality back. And that's sort of what led us to this point now. Right. So, I mean, what happened was essentially we started with Sinatra. We were loving it. We were both using it for all our projects as best we could. And I just kept running into the same, let's say, six pain points over and over again.
Starting point is 00:05:35 I needed helpers. I needed form builders. I needed a reloader for the development that wasn't shotgun so that it didn't reload the entire thing every time. I wanted more intelligent reloading. I wanted a mailer that was integrated. There was just a number of things that basically I loved Sinatra, but I just couldn't, I just kept having to rebuild into each project. And so as we started to notice that, we were like, hey, you know, it would make sense for us to take these things, extract them out of our projects, and sort of create like a combination, a comprehensive set of these extensions
Starting point is 00:06:08 that we need for every project. Hence the name Sinatra More. Yeah, and so originally, we actually didn't plan to make a framework. We were looking simply to create sort of like, it's almost like Merb Core, Merb More. We imagined Sinatra was Sinatra Core, and we loved it because it was one file implementation.
Starting point is 00:06:24 It was thin, it was lightweight. And then Sinatra more would be additional features on top of Sinatra for people who needed them. And so we always viewed it like that, even to this day, to be honest, I don't really view Padrino as an entirely new framework. I view it as a sort of a natural extension to what Sinatra already could do, but to give it a little more power and a little more flexibility. And I think people can see that very quickly when they start using Sinatra, that there are just some great things from Rails that you're going to miss. And so that's what we were trying to do with Padrino,
Starting point is 00:06:54 is just give people those things by default instead of having to have them hunt it down, you know, all the individual extensions to get those things. Exactly. We still wanted to keep the whole elegance of Sinatra, yet at the same time still provide some of the, at least the powers and features that Rails provided. So, I mean, that's what gave birth to Pad those things. Exactly. We still want to keep the whole elegance of Sinatra, yet at the same time still provide some of the, at least the powers and features that Rails provided.
Starting point is 00:07:08 So, I mean, that's what gave birth to Padrino. Yeah. You know, one of the things that I was pleasantly surprised about was that it's still Sinatra under the hood. So if you're in a Padrino app and you have a code sample from Sinatra, 90% of it still applies. I mean, it's still Sinatra. Yeah, that's absolutely right.
Starting point is 00:07:25 And it even goes a little one step further, which is something I had mentioned in a blog post I had recently, which is that not only is it just Sinatra, but since everything we have is a superset of Sinatra, you can follow the Sinatra tutorials using Padrino
Starting point is 00:07:38 and you won't run into almost anything that would break it. I mean, all the routing still works the same way that you learned. All the basic features are still there. There's nothing that we take from Sinatra and we say, oh, that's not going to work. All we do is we take Sinatra, we leave it there, and we just extend it naturally with more powerful features on top. And so when you're working with Arduino, you really are working with Sinatra. I mean, they're synonymous.
Starting point is 00:08:02 And you can still use Sinatra extensions. You can still use all the same rack middleware. This is really the great thing about Padrino. We did not reinvent the wheel at all. We simply provided extensions and tools on top of the existing foundation that we loved with Sinatra. You know, web development and desktop development 10 years ago, we were touting these components and how there was going to be this marketplace where you get these reusable parts like, you know, they exist in the real world in manufacturing, right? One of the things that I love about Padrino is that it's still Sinatra, still has this rack heritage under the hood. You can mix and match rack middleware to build your application,
Starting point is 00:08:38 but also you can mount other Padrino applications in a sub directory. Talk a bit about how you can stack Padrino apps on top of each other. So yeah, this is actually a great part of Padrino is that we built it from the beginning to be a little more Django-esque in a few ways. And I'll talk about the one that you just mentioned, the mounting of apps. I always liked the idea of Merb slices. They were interesting. And I liked the idea of the Rails engines. But the problem that we saw was I didn't really understand why we couldn't just have true mountable apps, which is something Django has for Python. And so I was very interested in exploring early on whether we could create truly isolated mountable applications in Padrino. And that's exactly what we ended up being able to do. So with Padrino, you can actually, when you generate an application, you're actually
Starting point is 00:09:28 generating a project, kind of like similar to the Python-esque idea. And in a project can contain any number of sub applications. Each application can have models, views, controllers, separated namespaces, different components, and they'll all be mounted separately on sub URIs. And this will all run from the single Padrino project. This is a great, this is very nice being able to stack applications. And then on top of that, if you take middleware, which we're big fans of, anytime we can, rather than building a Padrino extension, we'll look to build a rack middleware, because we're a big believer in sort of of creating agnostic things not tying people down to a particular component or framework so we're very interested in allowing you to stack middlewares
Starting point is 00:10:11 to create functionality and then on top of that uh mount applications so that you can really keep your applications lightweight and keep it sort of separate your concerns definitely keep it very clean too yeah so that was those are really important pieces of the thought process going into the beginnings of Padrino. We're really curious to see how difficult it would be to create true mountable apps rather than sort of pseudo apps, the way that Rails engines worked. And we came pretty close. I was actually fairly pleased with the progress we've made so far that we're going to continue to make towards 1.0. I think the average Ruby web developer probably doesn't leverage middleware as much as he
Starting point is 00:10:53 should or she should. Mention some of your favorite middleware rack applications that you like to use. I think, well, there's a Rack Recapture that I use at work right now. It just pretty much allows you to use Recapture inside your app. We actually have a few, actually. For 9.12, we have a
Starting point is 00:11:16 template feature that allows you to just easily generate plugins, and then we use a lot of Rack apps in there that just pretty much sets it all up for you into your Pagina application. So it just config much uh sets it all up for you into your pagina application so it just configures everything out of the box for you but in terms of your bracket yeah i mean there are a wide array of rack middlewares and i would actually really um like you were saying a lot of ruby developers right now don't take full advantage of these but you'd
Starting point is 00:11:40 actually be i mean people would really be surprised to see how many awesome pluggable middlewares there are that can really expand the functionality of your application in a great way that doesn't require any additional complexity in your own code. One example is this thing called, I found recently, RackBundle. And what RackBundle does is it's sort of like AssetBundler for Rails, but what it does is it's a middleware that'll actually take all your JavaScript and CSS files, and it'll minimize them, and it'll rewrite to have a single compressed JavaScript and a single compressed CSS. But it'll do that at the rack level.
Starting point is 00:12:13 And it doesn't require a single change in your application level code. So that's just one example. I mean, there's a lot of great middlewares. Another one I've been using recently that's pretty cool too is Rack OmniAuth. It allows you to do just authentication through either Facebook,
Starting point is 00:12:27 OAuth 2, and Twitter. And it makes it really clean and really easy just to implement it right into your application right away. And it also comes with
Starting point is 00:12:34 other features for Basecamp and other ones like Google. And they have a couple other ones that I can't list off the top of my head. But I mean, it's pretty great. I mean,
Starting point is 00:12:44 coderack.org is a great site to take a look at for a list of pretty comprehensive Rack apps they can use, and even GitHub itself. So, yeah, I mean, I encourage other developers to check it out. And as we mentioned, but I would like to restate because it's pretty interesting, is for 0.9.12, we're actually going to...
Starting point is 00:12:59 We recognize that a lot of people aren't familiar with middleware to the level that they should be, so we're actually going to create a plug-in system so people could, for instance, write Pedrino Gen plug-in HopToad, for instance, and we'll automatically download and configure the Rack HopToad middleware for people so they don't have to learn how to configure that themselves. And so we have this idea with Pedrino is we really want people to be able to use whatever they want, but we want to make it extremely easy and integrated for them to do it.
Starting point is 00:13:26 And so we have agnostic generators, which we haven't talked about too much yet, but we also are going to have these sort of cherry-pickable plugins. And they're not like Rails plugins. They just insert RackMiddlewares and sort of existing libraries into your app and configure them for you. Yeah, it's actually leveraged the store
Starting point is 00:13:42 a lot, so it just pretty much writes the code inside your app for you. If you guys want to take a look at it, it's actually leveraged the store a lot. So it just pretty much just writes the code inside your app for you. If you guys want to take a look at it, it's actually on GitHub. It's proginorecipes, proginodashrecipes. It's a list of a couple of plugins that we already made so far that allows you to just instantly just drop these plugins right into your project. Are these available on Edge or are these live today? They're on a branch right now on Edge.
Starting point is 00:14:03 Yeah, right now they're actually on a separate branch we're still sort of fine-tuning some of the the uh like tests and sort of fixing some of the bugs so we're actually not it's not going to be in our next release but it's going to be on the one after that but we've already started building a library we have like 15 or 20 almost already um different plugins for everything from hoptoad to Recaptcha to Carrier Wave. Rackbug. Yeah, it's a lot of Rack on Drive. So that's going to be a big feature
Starting point is 00:14:29 in, let's say, the next couple of releases. So let's back up a minute and talk about the agnosticism and the generator. So one of the cool selling points for Padrino was when you generate your project, you can specify your ORM layer. You can specify your JavaScript libraries, your style sheet and templating libraries.
Starting point is 00:14:50 What's the full gamut of support that you guys have in that area? Well, we support MOCs, scripts, testing frameworks, ORMs, and I think that's pretty much it. Style sheet engines. Oh, style sheet engines, also renderers as well. What we did when we first built Padrino is we took a look at all of the different things that you even can choose when you're building an application in Ruby. We basically made a list.
Starting point is 00:15:14 There's obviously the easy ones, persistence and mock, but there's also the more nuanced ones like Sass or less support for StyleSheets. And so we made a list of these, and we made a list of the components we had used that we actually thought were the most common, the most popular components. And so, and so what we did was we, yeah, we have generators that essentially support any of these popular components for anything from persistence engines, the test frameworks. And the best part of it is that we really worked hard on was that it's actually fully integrated with the rest of your generators. So for instance, let's say you choose Active Record for your ORM. We don't leave you hanging. We actually provide you all of the necessary tasks
Starting point is 00:15:56 to develop with Active Record. If you generate a model, it'll be generated with Active Record. If you generate a model test, it'll be done in the testing framework that you specified. So throughout the entire development cycle, we fully integrated each of the components so that you don't even have to, you know, you don't have to at any point copy and paste boilerplate code. We've done all that for you. It's built right into the generator. This was an important point when we were building Padrino because especially with Sinatra, everyone is opinionated and they're opinionated differently.
Starting point is 00:16:25 So one person is going to swear by S-E-Q-U-E-L, SQL, ORM. Some people are going to swear by data mapper. Some people are going to love Mongo ID. And we didn't want to go down the rails route of sort of being very strict on giving suggestions. We wanted to go almost the exact opposite route. We wanted to make using any of these extremely easy, but we wanted to give you the choice to use any of the ones that you wanted at your discretion, not ours. So that was important when we were building it.
Starting point is 00:16:54 Yeah, and also in most of the generation, we include a couple comments to show you extra little features that you can use with these different components that you like to choose. So we definitely make it very easy for users to come in and quickly see some of the basic commands you can use with these, either ORMs or maybe testing frameworks,
Starting point is 00:17:10 and just a basic setup for them to use. In addition, not just models, our admin gem as well is fully integrated with the generators. So if you made something with DataMapper, the admin sees that right away and just generates an account model based on the ORM you choose, and just pretty much all seamlessly work together. So what exactly is the sweet spot for this? I mean, you mentioned earlier how it's more like package-like projects.
Starting point is 00:17:36 And I know in Rails projects, you often want to throw out an application and you also have something else you want to put underneath it, but you run into problems with engines and subprojects and stuff like that. Why this versus doing that in Rails? Why did you choose the projects kind of route? And what's the sweet spot for it? Well, I would say we primarily chose the projects route because I'm a big believer,
Starting point is 00:17:57 and I think our team in general is a big believer in keeping things very separated and sort of focused. So rather than having one large app, I love this idea of building lots of smaller apps that are well-tested and work in isolation. It's the same modular philosophy that exists just in general in programming. And so rather than having, let's say,
Starting point is 00:18:18 one huge application that deals with authentication, authorization, pictures, uploading, blog, everything, we were very interested in allowing you to use middleware to do the authentication, authorization, pictures, uploading, blog, everything. We were very interested in allowing you to use middleware to do the authentication, middleware to do authorization, create an app for the blog, create an app for the forum, create an app for your primary application, keep things very, very separated, very easily testable, and isolated from each other. So there's not a lot of coupling. So that was our primary reason for doing that.
Starting point is 00:18:48 And also I've done some Python development myself, and I think also some of the other team members have. And personally, I just really enjoyed the sort of the setup that you get with Django, where you can easily, let's say someone builds a blog, and I want to use it. I can just take that blog app and stick it right into my existing project. No questions asked. I have all the assets, everything I need, all the models. And it's just, it's very nice to be able to have that type of separation and control over each individual application. So that's sort of where the original thought process for the project structure came from. So Padrino, Italian for godfather, correct? That's right.
Starting point is 00:19:28 So let's talk about Sinatra and the Sinatra heritage that Padrino shares. We've interviewed Aaron Quint from the Sammy J.S. Project that borrowed a lot of ideas from Sinatra. How, I guess, revolutionary has Sinatra been to web development? Well, I guess especially in Ruby development, it's definitely brought the learning curve down a lot. For most people that just started getting into Ruby and definitely into Rails, there's always that big curve to just understand how to just develop in Rails.
Starting point is 00:20:00 And with Sinatra, it makes it pretty much plain and simple. You just have an HTTP verb and a block, and it just makes it really clear for you to see what's going on. And whereas Rails, you need to understand a lot of the magic behind it, like how the generators work, where everything belongs, and just a lot of nitty-gritty details that most people, when they start, can't pick up right away. And that's why I really appreciate Sinatra. It's really simple. One.rb file, and you can already have a little tiny web app going right off the bat. Yeah. I'm a big believer also just in a print in principle and sort of graduated complexity. The idea that when you start out building an app,
Starting point is 00:20:34 it should be really dead simple. If I want to create an app that just says, hello world, I should be able to do that in five lines of code. There's no need to have, you know, 80 files, a routes file, generate a controller. If all I want to do is print, you know, hello world or some basic JSON to the screen. And the reason I like graduated complexity in particular is I think as Arthur touched on, the learning curve is extremely important when you're doing web development. Whenever I try to teach people Rails or Ruby application development, they always run into all these hurdles because they have to learn like 30 sort of mental models at once in a sense. And so I love Sinatra. Even though I was already fairly proficient at Rails, when I went to Sinatra, it was like a breath of fresh air for me,
Starting point is 00:21:14 personally. I mean, you know, the DSL was extremely simple. You know, five lines of code could generate a web server. The whole philosophy was agnostic and very lightweight. It was extremely fast as far as performance numbers when I benchmarked. There was just something very, very right about the foundation with Sinatra. And so I just fell in love with it right from the get-go. And I would have Rails apps and I would be working on consulting jobs and I would need to build an app. And I knew I should have used Rails because it was a much better fit, but I would find myself trying to find a way to use Sinatra because for some reason it just felt more fun. It felt more natural. And so, yeah, for me,
Starting point is 00:21:57 the graduated complexity is huge. I mean, I love this idea with Sinatra and now Padrino. You can come in with no Ruby experience whatsoever. You read the Sinatra book, and you could be building basic web applications within a couple days. I mean, within a day, you can build Hello World. But within three, four days, you could probably build a basic web service. And then with Padrino now being a natural extension of Sinatra, you can take all that Sinatra knowledge, and you can start cherry-picking Padrino knowledge, and you can continue to build on a very, very sort of gradual process towards building arbitrarily large applications. And that's something that just isn't really possible with Rails. I mean, you could learn, let's say, Rack, then learn Sinatra,
Starting point is 00:22:35 then learn Rails. But each time, you have to sort of discard existing knowledge and start again. Whereas with this, you can build everything from Hello World to the most complex e-commerce site, and you're still using the same foundation with Sinatra and then on top of that, Padrino. So for me, that's the most revolutionary part of Sinatra. So what are you guys building with Padrino? For the time being, I mean, we're kind of both working for different companies, building different things. Do you want to start off? Yeah, actually, I think for me, I'm actually building a couple of sites for this company called Stockpixel.
Starting point is 00:23:07 They do mobile app development. So I'm actually converting a lot of their mobile apps on the iPhone and Android into websites. So that's what I'm currently doing with Katrina right now. Yeah, so I work for a company, as I said, it's a small company. And I have a main application which is actually still in Rails because it's very large and I haven't had time to convert it yet but I have a lot of web services that I'm building
Starting point is 00:23:30 on the side to interact with various components, JSON, XML components just you know and those I've all built in Padrino I have contract work that I do on the side too, freelancing, I build all of those sites in Padrino, David who's in Italy, he actually runs his own consulting firm called Lipsy Soft. And they have, he has a
Starting point is 00:23:52 team, I think of something like 10 or 15 people from what I understand. And they build, they run a few e-commerce sites. They actually run, I think they built already 15, 20 apps in Padrino for their clients. So we all do different things with it. But honestly, I mean, it's pretty – between Sinatra and Padrino, you can pretty much build any web application that you need. So, yeah, I mean, I have yet to run into anything that I was building where I was like, oh, Padrino isn't going to work for that. Because, like I said, it's very, very modular, but it extends all the way up to an arbitrary level of complexity. So I've actually really been enjoying sort of the conversion from using Rails for my apps to using Padrino for my apps. Yeah, I'd have to agree with that. So at one point, Adam and I were kicking around the idea of using
Starting point is 00:24:39 Graham Ashton's Nesta CMS that's built on top of Sinatra. For the ChangeLog blog, we've since decided to stay on Tumblr, but I wanted to give it a go for my own personal blog. And just to extend a Sinatra app that's kind of outgrown the one-file architecture is kind of painful. So just as an intellectual exercise, I ported Nesta over to Padrino, called it Presto, and I'm actually loving it. I mean, it's one of those things where it's a joy, again, to dive down into a web application and just have it be that
Starting point is 00:25:09 configurable and that extensible. Yeah, I mean, an example of eating our own dog food, we have a Padrino website, padrinorb.com, and obviously right from the get-go, we knew we were going to use Padrino to build that, but I was actually, to be honest, even surprised as I was building it because we were building it during some of the earlier stages of Padrino, how actually fun and easy it was to build this site, because it's actually fairly complex. I mean, we have, it's actually a full CMS, and it's a full blog, and it has tags, and you know, it has a full backend for managing the content and everything. And it was actually really a pleasure to build. You know, me, Arthur, and David worked on that for a long time. And it was actually really a pleasure to build. Me, Arthur, and David worked on that for a long time
Starting point is 00:25:47 and it was actually one of the first ways that we really stress tested and polished Padrino was through our own Padrino website. And that's actually open source. It's actually available through the Padrino GitHub account right now, Padrino website. And so you can actually download that and modify it if people are interested in seeing a real Padrino app. But yeah, I found during building that, I mean, at the time,
Starting point is 00:26:10 we found things we needed to add, obviously. But, you know, during the process of building that website, now that it's relatively complete, you know, Padrino has been rounded out. And I really, I had a lot of fun building it. And that was actually part of the reason why I was so committed to continuing development of Padrino was because there was something qualitatively different the experience that I had developing that website from some of the Rails apps I'd done before. It was just something about
Starting point is 00:26:33 it was just a little more fun, a little more relaxed and yeah so it was just for me personally it's great. Exactly just like Ruby. Awesome. So this is about the point where we ask our radar questions. So what's on your open source radar? What's out there that you're just dying to play with,
Starting point is 00:26:48 I guess, inside or outside the Padrino world? There's actually a lot of interesting things out there that I'm looking to play with right now. There's one, Node.js Express.js, I think. That's the one that Sinatra, like a Sinatra clone for Node.js. That looks pretty interesting. Definitely want to try that out sometime. Yeah, that's really interesting.
Starting point is 00:27:07 Another one I'm really interested in is that the framework Bowline, which is, it's pretty amazing, actually. I'm very interested in starting to play with it. It allows you to use HTML and CSS to develop desktop applications. But they look native. It uses WX widgets under the covers. And so that was very interesting to me because I've actually always had sort of a pet project, sort of a hobby of doing desktop applications in various languages. And I play with WX Ruby. I play with Shoes. I do mostly web development professionally, but it's always been fun to play around with these things.
Starting point is 00:27:40 And now that I can use Bowline to develop desktop applications that look native, but I can write them in HTML and CSS, that opens up a whole new world of possibilities there. So that's been really interesting to me. And in particular, in the Padrino-related world, I'm very, very interested in – we've been playing a lot with MongoDB, which is, I guess, that new now. But it's starting to get more established, I guess, in a sense. but it's still kind of a newcomer as far as the database world goes. And I've been having a lot of fun doing most of my new sites in MongoDB and then MongoID for the ORM layer. And that's actually fully supported by Padrino. And that's been really interesting to me, too.
Starting point is 00:28:21 You guys also support MongoMapper out of the box, right? That's right. Yeah, we support a pretty good array now of different things. And we're actually working on support for various other ones, Cassandra, Reek. And just to add on to that, I mean, we also have a page on our Padrino site that shows how to make or add components onto Padrino itself. So it's fairly easy. So people out there that want to contribute like maybe an ORM or a script or some other component that they would like that they don't see in Padrino, we make it fairly easy for them to edit themselves and then, you know, just send a pull request and we'll definitely pull it
Starting point is 00:28:51 in. Yeah. I mean, we have essentially step-by-step guides for how to build in anything from the ORM layer to a new testing framework. Or even just translations too. Right. So yeah, there's, it's a very open-ended question. There's a lot of awesome open-source stuff out there. Unfortunately, I wish there was more time in the day to play with them all. Where are you guys going to be where folks can catch up with you in person? What about the Padrino Roadshow?
Starting point is 00:29:16 What talks are you guys going to be giving on the framework? Recently, me and Nathan went out to OCRuby. We're probably going to check out LA Ruby. And I think June 22nd, I'm going to be going to LA WebDev. It's somewhere in LA. Yeah. So we're starting, we're staying local right now for us. And I believe that there's, we're hoping to get some of the other core team members to be able to do sort of
Starting point is 00:29:42 their local ones as well and i'm hoping once we hit 1.0 or you know next you know maybe next year for let's say rails conference next year's ruby comp i don't know where padrino will be hopefully um in a really good state at that point i would love to to like start to consider to be you know start to present at a sort of larger venues that would be really interesting to me but if i remember correctly i mean you guys could probably cut to Josh going to Lone Star, I think. I'm not too sure about that.
Starting point is 00:30:09 Yeah, we'll definitely be there. We're media sponsors for Lone Star since it's in our backyard. Yeah, so I think Josh submitted a talk, but I'm not actually sure if he ended up committing to doing that. But yeah, we're definitely interested in getting Padrino out in any way that we can. Hopefully we can start speaking at more conferences in the future. Well, nice work.
Starting point is 00:30:29 It's definitely a fun framework with all the buzz around Rails 3. Rails 3 does not equal the Ruby web development community, and Padrino is definitely worth a look. Well, thanks, guys. Appreciate it. I know it's late. Actually, it's early for you. It's late for us.
Starting point is 00:30:44 Normally we're talking to Europe that's right well thanks for joining us this evening of course it's been great to be on thanks for having us thank you for listening to this edition of the changelog point your browser to tail.thechangelog.com to find out what's going on right now in open source.
Starting point is 00:31:09 Also be sure to head to github.com forward slash explore to catch up on trending and feature repos as well as the latest episodes of the ChangeLog. Safe in your arms As the dark passions show Who was mine alone I'm out, I'm out Morals to try Bring it back, bring it back to Outro Music

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.