1. We're here with Thomas Fuchs and Michael Buffington. Both are prominent figures in the Ruby community. We want to talk a little bit about Scriptaculous and the java script in the Ruby community and about where this is all going. Thomas can you tell us a little bit about yourself and your company?
Thomas: I'm Thomas Fuchs and I come from Viena, Austria and I'm based there. I'm with a company called Wollzelle. We're doing mostly design work, but we're also really into programming. We don't like the separate those two things too much.
Thomas: I'm not really the designer in the company, but I'm trying to catch up.
Thomas: I've been programming since 1995 and it's mostly web programming. I've done Java Script since back in 1996, 1997. It's been a long time.
Michael: I've programmed ColdFusion for about ten years. When it first came out it was 1.5 and that's when I started using it. I was working for an ISP at that time. About a year ago I picked up Ruby on Rails. Right and right about that time Scriptaculous was just really starting to hit and it was amazing
Thomas: I was involved in Prototype, I did some of the things in Prototype, some side stuff like the event handling. Scriptaculous really started first as an addition to Prototype. It was integrated in Prototype. There were some small effects integrated and in June 2005 I moved all the stuff out into Scriptaculous and it was really updated and completely renewed effects engines, plus other stuff like drag 'n drop and various controls. It really took off.
Michael: I just talked about llor.nu which is an online game and uses a lot of Scriptaculous methods to do a lot of the interface. I think without the interface and some of the methods I use, it would be kind of dry. In fact there were early iterations where the game itself felt fine, but it's so much better when it's much more interactive. People mistake it for Flash almost everyday.
Michael: Just for fun. I've wanted to do it for a few years and I had some downtime during the summer and I said "Ok this it what I'll learn Rails with...".
Thomas: Yes. About a year ago we started a work in our product called Fluxiom which is a sort of digital asset management online; it's not really digital asset management nor is it web storage stuff . It really has its own niche. It is about managing your files, but only the stuff that you currently need.
Thomas: It is a completely hosted solution. We will not have any deployed...
Thomas: Yes you're right. We mostly target small teams that really need to share the files and have access to their latest versions of files, so think of it as a file server that actually works because you find the latest stuff and everyone has access to it from all around the world. You can also easily share stuff with clients.
Thomas: Yes we have a private beta test now and we're going to release in April (2006).
15. As you enter beta testing with real users there are a new class of problems that may arise. For those that are going down the main road in terms of building a commercial offering with Rails, do you have any words of advice or expectation?
Thomas: We didn't have any real surprises with Rails itself. We used some tools external from Rails (various open source stuff), so we had some bad surprises with that, but you should really go through and just fix it as you go along. It's a test phase.
Michael: Probably two weeks. I got something up where people could sign up and I wanted people in there right away because I really did want a lot of feedback from the very beginning and I knew what the consequences of that would be. I knew that I'd get a lot of feedback and some people might be turned off by it, but I'm ok with that. It's different when you're developing a game. The stakes aren't as high. If people don't like what they are seeing and if they leave it is not going to hurt me; it's not going to hurt anybody.
Michael: I think one of the hardest parts I had at first, was getting a good stable serving environment. This was about a year ago and things have changed pretty significantly since then. But it was right when Lighttpd was getting recommended and I had a pretty difficult time transitioning from Apache to that, just learning how to config files the right way.
Michael: It was challenging, but I don't have a problem with it. I can only blame myself if something goes wrong first of all.
Thomas: We are 3 people and just 2 of them are really working on the product.
20. So it's basically you and one other person working on the product. This is quite a serious app from what we can see in the Fluxiom demo. Do you expect to grow your team significantly once you go live?
Thomas: No we don't. We might need some support in the support department.
Thomas: It's mostly Ruby, and Rails. You can do incredible stuff with just a few lines of code. It doesn't take a huge amount of time to get anything done, so you can really concentrate on what is important for the application and what's not important and just decide ...
It's about 1500 lines of code just Ruby code.
Thomas: If you have to count in all the HTML templates and Java travel scripts, I think it's about 5000-6000 lines.
Michael: If I knew the number I'd be embarrassed to show it anyhow. I think it's because it has in evolution all the time and I have to go in an clean it up. It's relatively simple. All you do is roll some dice and roll it on a square; it's pretty simple. There's an app that I'm working now with a business partner that is pretty significant as far as the functionality goes and I think the lines of code are around 200-300 length.
Michael: Some of the lessons were not to freak out over stuff; you can't let people who are making a lot of noise, drive you where to go. You should not do that and you should stick to what your initial plan was and don't let anybody sidetrack you. Sometimes it's a guy complaining about random numbers and you can spend a lot of time getting deep into random numbers because that's one of the big problems everybody is trying to solve. If it's good enough than stick with it and move on. I kind of made a mistake there of listening to that. One of the lessons learnt was to make sure that you know what you are dealing with (read the manual.)
Michael: No. It was always a sort of a dream. I think a lot the programmers dream about making games because it's out of the ordinary and they make people happy and keep the patients ok.
Michael: I got an email from somebody saying "Thank you for putting this game up. I work at a mental hospital and I watch over a few suicidal patients and they're enjoying your game immensely. They feel that it is a sort of escape from their day to day activity. Please keep it up. "
Michael: It's not only going to lose people money if I stop working on it but it's going to lose people's lives.
Thomas: Because we just like it to be so. We don't want to make the hundredth bad looking asset management asset system that doesn't work for people.
Thomas: There are two things. One is business side, we want to have it first. Others will try to copy it, but we're the first and that's the business side.
Thomas: It may be. It's also the technical issue because it's not generalized at the moment. You can't really take it and use it for everything. It's very specific to the environment in the browser that Fluxiom has.
32. Why hasn't someone taken Prototype and Scriptaculous (or maybe they have) and built a high level UI library on top of it. You still have to do a lot of kind of manual composition of DIVs and things like that. Any perspectives?
Michael: I seem to recall seeing some libraries that did use Scriptaculous and I guess the Treasure Chest has quite a few little things people have contributed. But there's nothing like a GUI made out of it yet.
Thomas: Maybe it's because Rails is anti-components. If you would start to build this UI component out of it, it doesn't make sense because everyone needs something slightly different and it probably would be faster if you build it yourself.
I've done Java, but it's one of the reasons I don't want to use Java for something like this because it's not going to work.
Thomas: The primary focus of the application is you buy it (subscribe) and you just log in and there you have it. You can't do it with a Java application. It is not possible. You might not have a browser that does Java or you might have a different version and so on. You just login to a URL and you're in there.
Michael: I hope so! I would love to sit down to any computer and do everything that I can. I want to do my work processing; I want to do my emailing from any computer that I've never touched before.
Michael: My holy grail is to do everything through instant messenger.
Michael: I know it seems crazy... In unroll, one of the new features I'm going roll out soon there is an interface through instant messenger so there's a bot sitting there and it takes in commands and it does it. Before that, I had actually written an interface to my weblog and I began realizing that I would post more often if I had written it through the instant messenger interface. That's because I have that on all the time as that's how I keep in touch and talk with people. Having that there and just being able to say my blog entry and have it go in, that's such a time saver. It's less typing than putting up the url to the interface to it. If I can start sending emails from there or saving links (like if I just grab a link from something I'm browsing and drop it in there and it becomes part of del.icio.us, that would be great.)
Michael: The interface that talks to llor.nu, I'm probably going to release it as an open source. It's basically just a Rails app that listens to a Perl AIMbot, but you can replace the Perl AIMbot that you can replace with any other chat bot that can talk xml-rpc out of the box itself out to the Rails app. It's a really simple "How come has nobody done this yet" kind of thing. It just takes a command from the chat line so the first word it sees is the command and it has a model that has all the models in it. It's really powerful and simple too.
Thomas: I just want people to use it and be happy with it. So if they don't want to use it I'm happy to use it.
Thomas: I pulled them out of Fluxiom. I think the principle it is extremely important, if you just took it and wrote it because someone might need it, it might be useful or maybe someone could use it, that's not going to work. If code comes out of some strange thought process without any real usage it's probably worthless.
Michael : Yes. Doing the Bot to Rails app was similar to this. I had this need that wasn't bot-related. I had this need to be able to talk to my game with other interfaces. Of course you put xml-rpc interface in there and then I can come at it from any angle? It's double-duty like you build something in your app and then you go "I can release this to the public and then other people get use of it that is not going to hurt your app because they are going to know where it comes from." I know about Fluxiom, because I know about Scriptaculous. There's this association.
Michael: No, I don't get profit off of llor.nu at all. It's an open opportunity. I do freelance work. If they want to see what I'm doing I go and say "check this out and see what you think".
Thomas: It is going to launch in April.
Michael: I've stopped and thought about that and I have direct evidence that some of the popularity of my game is because of Ruby on Rails; because at one point somebody within the core team of Ruby on Rails said "This application is written on Rails". Of course he talked about it going open source. Just calling it a Ruby on Rails application people are willing to check it out and see what it can do.
Thomas: I think next we're probably going to launch our product... We have new ideas and once we have one out we can easily put other products out.
Michael: I agree with learning per year, but I will probably use only one. Obviously you're going to be better off if you learn a new language.
Michael: It's interesting as it seems to be climbing; people still pick it up and use it. I haven't followed it for about a year but the people who watch those kind of things have noticed that it still has uptake.
Michael: You can run on any J2EE server.
Michael: I didn't really like it when they moved to the J2EE platform of ColdFusion. It actually really slowed a lot of things down, made admin of things a lot harder. Obviously, it was a move that Macromedia made so that they could get more enterprise uptake. They wanted bigger customers in their commercial entity so it made sense. It was really difficult to try to solve these huge Java related issues that really had nothing to do with your ColdFusion app but you couldn't serve it because the J2EE server was just going bonkers or whatever. It used to be very simple and it's a real pain now.
Thomas: It looks a bit funny.
Michael: llor.nu actually does not support IE at all. I made it clear from the very beginning that I wasn't going to support it.
Michael: I have no plans to support IE ever again.
Thomas: Obviously we have a commercial product so we need to support to IE or we would cut ourselves.
Thomas: I don't think they'll get it right. I don't get it, why they don't just take an open-source codebase like Apple did and just throw the old stuff away.
Michael: They can make really easy on themselves if they want to. It could be a good thing for Microsoft.
Thomas: Maybe it is a bit, because many Ruby on Rails programmers or developers really care about code beauty for example. Very short, concise, very beautiful code, it is something that has to do with design.
Michael: Being a game it was really easy just to throw something in there. You don't have to think about it. Within the Apple community: we know our stuff it's good and that's why we love it. I mean, look at how many Ruby developers have Apples! I think if that they do like simplicity. We love simplicity, we don't like a lot of fluff, and we don't want to mess with stuff over and over again. We just want to build stuff that works and is clean and has appeal to the people that we build it for.
Thomas: It's really about choosing the right tool.