Slashdot Mirror


What is Ruby on Rails?

Robby Russell writes "ONLamp.com has published another article by Curt Hibbs titled, 'What is Ruby on Rails?.' In this article, Curt goes on to discuss all the major components of the popular Rails web framework and shows it does a lot of the heavy lifting for you. This article highlights all the major features, from Active Record to Web Services, which are going to be included in the upcoming 1.0 RC release of Ruby on Rails. With one book published already and four more on the way, do you think Rails will continue gaining as much popularity in the coming year?" An interesting follow-up to the two part tutorial from earlier this year.

296 comments

  1. YASLFFFSC by Anonymous Coward · · Score: 1, Funny

    Yet Another Scripting Language Framework For Spaghetti code

    1. Re:YASLFFFSC by MemoryDragon · · Score: 4, Insightful

      Actually no, Rails has heavily inspired many developments in many languages over the last year. Pretty much every framework currently at least is looking at the stuff the rails guys are doing and whether some of the concepts are viable. Stuff like Seam which also is excellent is heavily inspired by the ease of use metaphor of Rails, and the Prototype javascript libary used by rails currently sort of becomes a defacto standard for more advanced javascript stuff with many projects building on top of it. Rails definitely does not scale into the average J2EE project dimensions, but it has its merits and definitely made huge inroads in the web development domain over the last year.

    2. Re:YASLFFFSC by endgame · · Score: 3, Insightful

      > Rails definitely does not scale into the average J2EE project dimensions

      From my experience the "average" J2EE does not have to scale very far at all. J2EE architectures are capable of scaling very well, but a great deal of the time the extra comlexity is unwarranted for the task at hand. Rails is a great for a the large percentage of applications that fall into this category.

    3. Re:YASLFFFSC by endgame · · Score: 1

      Wow, my last comment was in broken english.

    4. Re:YASLFFFSC by Anonymous Coward · · Score: 0

      No. Rails was itself inspired by several frameworks that existed long before it, but have not been hyped by fanbois and webwhores.

      As for the spaghetti-code: morons write moronic code, no matter how good you claim the framework is.

    5. Re:YASLFFFSC by partenon · · Score: 2, Informative

      Who told you RoR doesn't scale? Take a look at http://basecamphq.com/ and http://article.gmane.org/gmane.comp.lang.ruby.rail s/24863 . Basecamp is being "used by tens of thousands of people in over 40 countries!" . And it doesn't scale? C'mon, java-boy. All we know that 90% of projects doesn't need to be done in Java. Actually, if you need a *really* huge web-application, java isn't your choice too. Examples? Amazon, eBay, Google...

      --
      ilex paraguariensis for all
    6. Re:YASLFFFSC by MemoryDragon · · Score: 1

      Depending on what you describe average, the average projects I personally have to live with (have to live because I can see the mistakes every day) probably would be better off with a clean JSF frontend, seam and ejb3 for the middle tier (I am talking about EJB3 which is close to excellent not the absymality 1 and 2 were). RoR would not be applicapble there, first of all, legacy data, secondly, the usualy project management problems of having some excellent people and some average, with db schema changes sometimes til often, and given RoRs nature having such a hen house in front of RoR would result in desaster. On the other hand once a team is really tight and good to average quality you can push out amazing stuff in RoR, I have seen it.

    7. Re:YASLFFFSC by endgame · · Score: 1

      Yeah, from what I've heard RoR doesn't handle legacy schemas particularly well. And there are plenty of reasons like the ones you mention why a team would choose Java or something else over RoR, I just don't think that scalability is a valid one most of the time.

    8. Re:YASLFFFSC by Anonymous Coward · · Score: 1, Funny
      I'm just amused that two consecutive posts each labelled you a Ruby fanboy and a Java fanboy, respectively. I'd say their comments reveal more of their own biases than of yours.

      Incidentally, I personally am proud to have been labelled, on thse boards, an MS shill (in spite of the fact I use Linux full-time!); an OSS-zealot (in spite of the fact that I've frequently praised Microsoft on the rare occasion they do something that warrants praise!); and an Apple fanboy (in spite of the fact that I'm not even gay!) ;)

    9. Re:YASLFFFSC by Anonymous Coward · · Score: 0

      I'm a fan of RoR, but I have to say ... tens of thousands of people is not a case study in scalability. That isn't to say RoR can't scale if properly designed, but pretty much any decent client-server app can scale if properly designed. Understand how the framework scales, the expected traffic metrics and implement an appropriate solution.

    10. Re:YASLFFFSC by Anonymous Coward · · Score: 1, Insightful

      Basecamp is being "used by tens of thousands of people in over 40 countries!"

      Not simultaneous, which is what scalability implies.

      I could write a puching-card operated server that would allow 5,743,743,798 from all over the universe have access to it, if they stand in a line and wait.

    11. Re:YASLFFFSC by I+Like+Pudding · · Score: 1, Informative

      Sane legacy schemas (usually) only require a little more work. If your column naming doesnt follow the conventions, then you can just override the convention in the model definition. I had a problem before with the Oracle driver because you couldn't specify the primary key sequence name on a per-table level, but this was fixed recently.

    12. Re:YASLFFFSC by partenon · · Score: 1

      That's the point. Anything can scale, if well designed.

      My answer, actually, should have quoted this: "Rails definitely does not scale into the average J2EE project dimensions". To me, it means that "an app that have more than X users should be done in J2EE, not in Rails". Its simply not true, of course ;-)

      Check http://wiki.rubyonrails.com/rails/pages/RealWorldU sage to see other 'real world usage' of RoR. There are some 'big' projects in this page. And yes, there's life outside the java-world !

      --
      ilex paraguariensis for all
    13. Re:YASLFFFSC by Anonymous Coward · · Score: 0

      My point was saying a site has 40k users does not prove you can scale. I believe RoR will scale. I have built a site with sustained traffic with 100's conns/sec of customized dynamic content. I know the technologies involved and I see how you can apply them to RoR. It will do it if properly implemented.

      Unfortunately, I think it will take a site having sustained hits around 100 conns/sec to prove to certain people that you can scale RoR, and I know of none that exist today.

    14. Re:YASLFFFSC by achacha · · Score: 2, Informative

      Ebay is Java...

    15. Re:YASLFFFSC by covertbadger · · Score: 1

      Unfortunately, I think it will take a site having sustained hits around 100 conns/sec to prove to certain people that you can scale RoR, and I know of none that exist today.

      It'll take a lot more than that - 100 conns/sec is not considered scaleable by anyone who has worked with seriously high volume traffic. For instance, the company I work for has a website that, at peak times, handles about 10,000 transactions per second, with each transaction requiring at least 2 database hits, and usually more than that. Current growth suggests this will reach 50,000 per second by 2010. The core is java. I absolutely love Ruby as a language, but I highly doubt it would scale up to these levels.

    16. Re:YASLFFFSC by Fweeky · · Score: 1

      Object Graphs is an alternative to ActiveRecord that has quite flexible support for mapping legacy schemas to your objects. Nitro itself looks like a nice alternative to Rails too, but you can mix and match if you feel like it.

    17. Re:YASLFFFSC by Decaff · · Score: 1

      Object Graphs is an alternative to ActiveRecord that has quite flexible support for mapping legacy schemas to your objects. Nitro itself looks like a nice alternative to Rails too, but you can mix and match if you feel like it.

      But then the system isn't RoR!

      If you have to make Ruby on Rails NOT Ruby on Rails in order to deal with these issues, this clearly illustrates the limitations.

    18. Re:YASLFFFSC by Decaff · · Score: 1

      If your column naming doesnt follow the conventions, then you can just override the convention in the model definition.

      The problem with RoR is not that it doesn't map well to legacy schemas, it is that it can be very fiddly to deal with changing schemas, as this can lead to dramatic (and automatic) changes to the Ruby code.

    19. Re:YASLFFFSC by Decaff · · Score: 1

      All we know that 90% of projects doesn't need to be done in Java.

      Nice to have such confidence.

      Actually, if you need a *really* huge web-application, java isn't your choice too. Examples? Amazon, eBay, Google...

      You have to be kidding! All these sites use a wide range of technologies, including Java. In fact the main system behind eBay is Java!

      I think you need to research a little better.

    20. Re:YASLFFFSC by Decaff · · Score: 1

      Unfortunately, I think it will take a site having sustained hits around 100 conns/sec to prove to certain people that you can scale RoR, and I know of none that exist today.

      Well, there are large banks, Stock markets, Airlines, electronic trading systems....

      RoR won't scale to a high connection rate for transactional systems (especially where you need to write). The reason is that almost no framework does - all the really high-performance ones usually contain custom code and some high-level caches to allow clustering and to keep stuff away from the database. Ruby on Rails simply isn't designed to scale this much.

    21. Re:YASLFFFSC by I+Like+Pudding · · Score: 1

      If a column name changes, you can just add a function to the model under the old name. Hell, you can do that beforehand if you actually want that level of indirection - nobody is stopping you. As for being fiddly, Rails can script out all your schema changes and fire them off repeatably via Rake in a DB-agnostic manner.

    22. Re:YASLFFFSC by Fweeky · · Score: 1

      What, is there something about certain Rails components that replacing one with something that better suits your requirements (and which is largely API compatible, I might add) will cause the magic smoke to escape?

      Yes, Rails has limitations; so does everything else. That's why we design systems that are loosely coupled so components can be swapped out as and when needed. Ruby is especially good at this, and Rails is no exception.

    23. Re:YASLFFFSC by Decaff · · Score: 1

      If a column name changes, you can just add a function to the model under the old name. Hell, you can do that beforehand if you actually want that level of indirection - nobody is stopping you.

      The thing is that mature Object/Relational systems do this kind of thing already. Why should I have to bother to downgrade to a system where portability has to be hand-coded? Seems primitive to me.

      Rails can script out all your schema changes and fire them off repeatably via Rake in a DB-agnostic manner.

      I would be interested to know what DB-agnostic means. Having been dealing with relational databases for 20 years, I don't think such a thing exists.

    24. Re:YASLFFFSC by I+Like+Pudding · · Score: 1

      The thing is that mature Object/Relational systems do this kind of thing already. Why should I have to bother to downgrade to a system where portability has to be hand-coded? Seems primitive to me.

      Yeah, they do that after you supply a bunch of xml to configure them. ActiveRecord requires zero configuration if you follow the conventions. If you want the db naming abstracted, add a function to the model and don't rename it. It hasn't already been defined in a config file somewhere, so you're not repeating yourself. This isn't primitive, it's a design decision. Hell, I don't even think I've ever renamed a column outside of the early design phase.

      class Foo < ActiveRecord::Base; end #that's it!

      I would be interested to know what DB-agnostic means. Having been dealing with relational databases for 20 years, I don't think such a thing exists.

      This is bullshit nitpickery. You were just talking about your other preferred ORM(s), so you know how they work. Create an abstract api that maps to a subset of SQL functionality, then deal with the DB-specific weirdness on a driver-specific level. No, they don't work 100% of the time on all DBs, but they are about a billion times more portable than concatinating strings to form queries. There's a reason the ORMs have become prominent: they work, and they suck less than hand-hacking everything.

    25. Re:YASLFFFSC by Decaff · · Score: 1

      Yeah, they do that after you supply a bunch of xml to configure them. ActiveRecord requires zero configuration if you follow the conventions.

      Of course I don't have to supply a bunch of XML. I use a decent ORM (Kodo) with tools that do that for me automatically with a single command.

      If you want the db naming abstracted, add a function to the model and don't rename it. It hasn't already been defined in a config file somewhere, so you're not repeating yourself.

      Why should I have to add a function to the model? This is the thing I really don't get about RoR. The attitude that if things don't work you can always hack in something yourself. As if this is an advantage. To me it illustrates something that is broke.

      This isn't primitive, it's a design decision. Hell, I don't even think I've ever renamed a column outside of the early design phase.

      You may not have. Others have. I have. I prefer a modern ORM that can cope easily (even automatically!) with this. There is no getting away from leaving out something complex to implement that other products include is definitely primitive, design decision or not.

      This is bullshit nitpickery. You were just talking about your other preferred ORM(s), so you know how they work. Create an abstract api that maps to a subset of SQL functionality, then deal with the DB-specific weirdness on a driver-specific level.

      It is not nit-pickery. Moving a complex schema which uses rich SQL from something like SQL Server to Oracle can me a substantial exercise. Many companies don't have the time or expense, so stick with legacy systems and suffer as a result. With a good ORM I don't have to deal with the DB-specific weirdness: someone else has already done it for me, and done it well.

      No, they don't work 100% of the time on all DBs, but they are about a billion times more portable than concatinating strings to form queries. There's a reason the ORMs have become prominent: they work, and they suck less than hand-hacking everything.

      You need to look at how systems like JDO 2.0 work before you comment. There is no contatenating strings and there is no hand-hacking. You use a rich and full-featured query language and that is automatically translated to the rich-and full-featured query language of the database you are using, taking into account all the dialect differences.

  2. essential memes for scripting languages by hexsprite · · Score: 0

    of course we'll see it continue, even as an avid python user I understand that Ruby on Rails has managed to set forth a bunch of essential memes for scripting language development, ones that many scripting language communities are now trying to emulate.

  3. Summary of thread by physicsphairy · · Score: 5, Funny
    "With one book published already and four more on the way, do you think Rails will continue gaining as much popularity in the coming year?"

    "Yes." -- some slashdotters
    "No." -- other slashdotters

    Oh, and your horoscope for today is "Give generously to people you meet online who make you laugh."

  4. Watch the demo... by fak3r · · Score: 4, Informative

    Before any bashes it as being a flash in the pan, watch the demo and see the framework that it provides and how natural it is to build webapps on top of. Truly an interesting language for the web.

    Speaking of, why don't you check out my Ruby on Rails/Typo based blog, fak3r.com ;) be sure to try out that 'live search' (try 'bsd') for a taste of RoR/AJAX fun!

    1. Re:Watch the demo... by Anonymous Coward · · Score: 0

      You misspelt "Invalid XHTML 1" in your sites footer, unless of course you meant valid, but then why would you link to a validation service that reports it to be invalid, surely not because its a pointless trend?

    2. Re:Watch the demo... by fak3r · · Score: 5, Funny
      Wow - thanks to all that are hitting my site, I'm sitting here at work watching multitail try and keep up with all the requests on my home server! Typo uses Lighttpd (I have Apache2 running, but it's using mod_proxy to pass all requests to fak3r.com to Lighttpd) which is supposed to be 'lighter' and perform much better under load than Apache. I assume that's true because the logs are flying by, and the log from the Typo server is saying things like:
      Completed in 0.01254 (79 reqs/sec) | Rendering: 0.00618 (49%) | DB: 0.00146 (11%) [http://fak3r.com/articles/search?q=bsd%5D
      Am I reading this right? Most are coming up with 10-40 /reqs/second, but damn, this is on a homeserver (FreeBSD 6.0 - 1.2Gig - 512Megs) with a 384/1.5 DSL! I'm doing full refreshes here and not seeing any obvious lag - I've never had this much sustained traffic, but this looks very good for Lighttpd! (only been using it for this blog, which started ~ a week ago). Checking top I see 'ruby' but it's way down there, below multilog/tail and such... Hmm...need to check that migration from Apache to Lighty perhaps! ;)

      For those late to the party, that's fak3r.com! (just try and bring it down hehe...)
    3. Re:Watch the demo... by fak3r · · Score: 1

      Agreed, it is a pointless trend, and I always enjoy hitting those links only to find the site ARE NOT XHTML 1.0 valid. No, mine is not, and I took that out of the footer, but that was the cached page, so it got overwritten. Still learning Typo, but I will take that out, and yes, it's misspelt - that's the way it came from Typo! Hey, maybe I'll sub my 1st patch to the project, thanks for pointing it out.

      Oh, and yeah, the site that demos the Ruby On Rails framework with Typo is fak3r.com - thanks for helping me load test Lighttpd!

    4. Re:Watch the demo... by jarich · · Score: 1
      For those late to the party, that's fak3r.com [fak3r.com]! (just try and bring it down hehe...)

      heh heh... you had to ask, didn't you? :)

    5. Re:Watch the demo... by Mr.+Underbridge · · Score: 1
      Before any bashes it as being a flash in the pan, watch the demo and see the framework that it provides and how natural it is to build webapps on top of. Truly an interesting language for the web.

      I look at it the other way - because 90+% of all languages and especially extensions like RonR *are* fads, I'm looking for reasons to believe that it isn't. Unfortunately, the actual quality of said product is nearly irrelevant. The better question is who's adopting it, and for RonR, I'm not seeing any heavyweights taking on significantly. Ajax is another matter.

    6. Re:Watch the demo... by ceeam · · Score: 0

      Well, if every keystroke by every visitor in your "live search" box generates a server request.... You know, you asked for it!

    7. Re:Watch the demo... by Vacindak · · Score: 1

      It's slow, but it's still going!

    8. Re:Watch the demo... by DaveCar · · Score: 1

      Sorry dude, the front page took well over a minute to load for me.

      Looks like somebody isn't going to be able to use their home DSL line tonight ;)

    9. Re:Watch the demo... by fak3r · · Score: 1

      Me as well, I've never seen it this slow, but yeah, the server still has plenty of RAM/proc overhead, so it's just waiting on requests through the DSL. Even typing through ssh is s-l-o-w, but hey, this is why I built the box - now maybe my wife will see the value in Speakeasy's 6.0/768 DSL! (currently sporting 1.5/384) Once things calm down I'll get some stats on what the webserver was able to do, and how many DB requests fcgi was able to carry out. Top is showing ruby (fcgi) running as high as 33% at times, with mysql usually below 1% still.

    10. Re:Watch the demo... by Anonymous Coward · · Score: 0

      So that simply means that your line is smaller than your computing power. Everybody step back in the line please.

    11. Re:Watch the demo... by Anonymous+Brave+Guy · · Score: 1
      For those late to the party, that's fak3r.com! (just try and bring it down hehe...)

      Do not try the L337 sk1llz of Slashdotters, for they are unsubtle and quick to code a DoS script!

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    12. Re:Watch the demo... by jrumney · · Score: 1
      Checking top I see 'ruby' but it's way down there, below multilog/tail and such...

      I guess you've just discovered that it doesn't take much CPU to render 500 responses.

    13. Re:Watch the demo... by criquet · · Score: 1

      "Whoops, look at that. It worked." Great demo! Presenter is hilarious.

    14. Re:Watch the demo... by Svartalf · · Score: 1

      Impressive. Simply impressive.

      The response that I saw from the suggested query was quite snappy. I didn't know you were doing this off an ADSL link.

      I almost wish I'd brushed up on my Ruby coding skills and did our online store that I'm currently working on in RoR, but we chose JSP/Java Servlet stuff because of concerns of access to developers and scaling. I'm sure you're not going to tump that one over and all you're going to see is your pipe choked full- DoS by Slashdot, done to oneself. Brave soul. :-)

      --
      I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas
    15. Re:Watch the demo... by nacs · · Score: 1

      Typo caches most pages (like the index page and most blog post pages) to static HTML pages which is probably why your site is still 'snappy' on refreshes.

      Because the pages are cached as normal HTML pages, Ruby/Rails is not started up for those pages and thus can be served up extremely fast.

      --
      "I filter at +6, and have yet to miss out on an important comment." (#822545)
    16. Re:Watch the demo... by Anonymous Coward · · Score: 0

      Why should I have to download a 35Meg file to view a 50meg demo?

      Me thinks Ruby should try a opensource standard for posting demos.

      I forgot, why do I need itunes?

      No thanks, go away.

    17. Re:Watch the demo... by fak3r · · Score: 3, Interesting

      Yep, mostly what I'm seeing (apache's http-access.log and typo/logs) are straight web-server access (mod_proxy on apache -> lighttpd) but plenty of 'live searches' (which is why I suggested it) when fcgi (dispatch.fcgi) takes over and chats with the database. Still, even those are coming back faster than I'd expected. Yes, I've had 1 minute refreshes of the front page, but I didn't expect it to be perfect, I've just never had this kinda sustained traffic to study, and am really impressed with how Typo/Lighttpd are working.

      It's just something when it's a box that you built by hand from newegg parts, then installed/tweaked freebsd on, and then setup a new blog just a few weeks back, to see it perform.

    18. Re:Watch the demo... by Anonymous Coward · · Score: 0

      I didn't see lighthttpd available in Debian. Not even in the unstable branch.

      Also, I'd love to see some of the features of mod_evasive and mod_security make it to lighthttpd as optional addons.

      And is it just me or does Debian tend to discriminate against projects using licenses other than GPL? For example, lighthttpd uses modified-BSD license which gives me, the user of the program, more freedom to do with it as I please so I don't see why it (and other opensource projects with similar licenses) should be treated like shit by Debian.

      Anyways, I'll try out lighthttpd once it makes it into Debian's package system or until I migrate to an OS that puts my practical needs ahead of political philosophy.

      Wonder if Ubuntu for Servers 5.10 will support lighthttpd in its package system soon...FreeBSD does but I haven't seen a VPS hosting company with the price/features/service available for Linux distros.

    19. Re:Watch the demo... by bettlebrox · · Score: 1

      Great demo, but the guy sounds like Strongbad. I don't know if I can trust an AppServer presented by Strongbad ...

      --

      I have a very small mind and must live with it.
      -- E. Dijkstra

    20. Re:Watch the demo... by sammy+baby · · Score: 1

      Heh. The presenter is David Heinemeier Hannson. His blog can be found here.

      The demo on that page is often referred to as the "whoops" demo for obvious reasons. ;)

    21. Re:Watch the demo... by consumer · · Score: 2, Informative

      Well, given those hardware specs, I would expect apache to be able to serve about 800 or so static pages per second. Your bottleneck is your bandwidth, so your choice of webserver is pretty much irrelevant here.

    22. Re:Watch the demo... by Paradox · · Score: 1
      I look at it the other way - because 90+% of all languages and especially extensions like RonR *are* fads, I'm looking for reasons to believe that it isn't.
      RonR is too young to draw such a conclusion at this time. Ruby, however, is old enough now that you can probably be safe in drawing the conclusion that it is a growing phenomena, instead of a diminishing one. People like a language thats easy to deploy like perl but powerful like Lisp or Smalltalk.

      All I can offer you is anectodal evidence. The company I'm working for does web consulting, and we can respond with amazing speed to user desires because of RubyOnRails. We know many of the alternatives, and RoR is just plain better for our work. I'm sure someone can come up with a 500,000 line counterexample site where only Java will do, and I'm sure someone will mention a framework in their favorite language (e.g., Seagate Trolls on All Rails Articles).

      But, lots of people have great stories about Rails. Given that, it just can't be that bad. :) It's definitely worth playing with for a day or two, especially if you know Ruby.

      --
      Slashdot. It's Not For Common Sense
    23. Re:Watch the demo... by slycer · · Score: 1

      If you're talking strictly companies, well, I don't have any suggestions.

      But when guys like Dave Thomas, David Greary, Bruce Tate etc are talking about how nice it is to see Ruby come along, especially RoR, it's hard not to pay at least *some* attention to it. Especially when they're talking about it at a Java conference.

      I've been playing with it, not necesarilly RoR, just Ruby, and I have to say, I'm quite impressed, for those of you that like the "rapid development" bit of perl, and the OO'ness of Java, I think you'll probably quickly become a fan of Ruby.

    24. Re:Watch the demo... by Jack9 · · Score: 1

      Why is Ruby even being talked about? The most useful thing in that Demo is RAILS, not the Ruby tools that could have been programmed in any of a hundred different languages in widespread use...I still don't see the draw.

      --

      Often wrong but never in doubt.
      I am Jack9.
      Everyone knows me.
    25. Re:Watch the demo... by fak3r · · Score: 1
      Looks like it's in the works for both Debian (testing) and Ubuntu (universe):

      Ubuntu (request for inclusion)

      Debian (request for inclusion)

      Alternative APT source maintained by Sam Vilain:
      deb http://apt.utsl.gen.nz/debian <distname> all
      # where <distname> is one of woody, sarge, sid, warty, hoary or breezy

      or another APT source maintained by bougyman:
      deb http://debian.bougyman.com/ unstable main

  5. Re:we already know by MemoryDragon · · Score: 4, Insightful

    Actually many web developers keep a constant eye on rails, I am heavy into J2EE and like it, especially the stuff which is coming along Seam, Spring, JSF and EJB3, but almost every one I know who works in the domain, keeps an eye on rails as a fallback option for quick small webapps. Besides that many concepts and libaries currently are heavily evaluated for inclusion into other frameworks.

  6. What is Ruby on Rails?. by CSHARP123 · · Score: 2, Funny

    I know this. This is that ruby going on the choo-choo train.

    1. Re:What is Ruby on Rails?. by VJ42 · · Score: 1

      Is there really space to play rugby on a train?

      --
      If I have nothing to hide, you have no reason to search me
  7. Is Rails useful to aggregate web services? by shic · · Score: 2, Insightful

    I am intrigued by Rails and have the book waiting for me to read at home. I am curious, however, is Rails only really useful to implement something which uses the MVC (Model View Controller) architecture - where the model is defined in the context of a SQL RDBMS... or would Rails also be useful, for example, to aggregate a number of, say, local web-services to implement a single combined web service or site?

    1. Re:Is Rails useful to aggregate web services? by stevenprentice · · Score: 2, Insightful

      Rails is useful in so many ways. Rails is a very cohesive collection of components that make up a complete web development platform, but it is easy to use the indivdual components standalone.

      For example, I've used ActiveRecord by itself for database access. The application was a simple command-line utility that interacted with a local database. No web development, but ActiveRecord made it extremely easy to interact with the db.

      Another example, I've used ActionView and ActionController without ActiveRecord to create a non-database driven website. I did this to take advantage of the controller/routing features of ActionController and the layout and templating features of ActionView.

      Very useful stuff--either together or as separate components.

    2. Re:Is Rails useful to aggregate web services? by jazzyfox · · Score: 2, Informative

      The models in Rails are not required to be ActiveRecord (the SQL object layer) classes at all. You could have model classes that delegate calls out to another web-service like you describe, and even make use of some ActiveRecord facilities with a little more work to override the default functionality that hits up the database.

      As the article says, there are really two components to the framework, ActiveRecord and ActionPack, which handle the model, then the controller/view sections respectively. Each of these can be used without the other, in fact I'm considering using ActiveRecord for a non-web project in the near future.

    3. Re:Is Rails useful to aggregate web services? by I+Like+Pudding · · Score: 0

      Rails has web service functionality built in, so it's probably good for that. The devil is always in the details, of course

    4. Re:Is Rails useful to aggregate web services? by Anonymous Coward · · Score: 0

      Yes. I posted about this earlier, but click the link in my sig to see integration with Amazon's Web Services. No database involved!

  8. Strange Vibe from the Article by WhoDey · · Score: 4, Interesting

    TFA seems to be written by a used car salesman. Or maybe those guys on the infomercials late night for different "enhancement" drugs.

    1. Re:Strange Vibe from the Article by Anonymous Coward · · Score: 0

      It matches the slashdot users that scream about RoR at any oppourtunity like a crazy guy in a park with a sign and a megaphone.

    2. Re:Strange Vibe from the Article by Ranger · · Score: 1

      I read the first section of the article and I'm no closer to understanding Ruby on Rails than I was before. It promised a lot but delivered very little.

      --
      "You'll get nothing, and you'll like it!"
    3. Re:Strange Vibe from the Article by jallen02 · · Score: 2, Interesting

      I am pretty big on Java. I have done several years worth of Java work. I decided to finally try Rails out so I could finally see if the hype was worth it or not. I was *quite* impressed. I realize there are about 10 million concerns that pop into my head. Legacy applications, complex ORM mapping, ona nd on. But for new software it truly is amazing. Its fast and easy and it just seems to work. I am not generally to excitable about new technology I have seen a lot. When I was finished playing with RoR for about 4 hours the amount of working software I had was impressive.

      It has to grow a lot. However, if you are implementing from the ground up it is a rather solid choice. The architecture and tools are quite good. You can get hung up on the semantics of things if you want to.. you just can't argue with the results. Fast and easy. When I started describing my initial experience I realized I sounded just like a sales person trying to convince people about the greatness of something. So I can actually understand. Years and years of doing Java work and configuring XML and working hard at throwing out skeleton code. Generating getters and setters and connecting together several layers of components to all play nicely together. I compare that to Rails and it makes me wish I had this power all along. I have not tried anything truly complicated in RoR yet, but I will. I don't think Ruby, or RoR will let me down in the long run. Its such a light weight framework that you can easily grow it to fit your needs.

      Jeremy

  9. Finally, a breath of fresh air by some_canadian_hacker · · Score: 4, Interesting

    It's good to see that a structured methodology is being introduced into the world of web development. I've seen some really shoddy implementations of *SQL APIs into a myriad of differing web platforms, and because this helps to tie together the actual implementation of database-driven web apps, the developers are freeer to work on other things... security issues? Maintaining database structure? Doing the groceries? It doesn't matter all that much when less time is spent making the framework for a web application.

    Looks promising.

    --
    Your eyes are full of hate. That's good. Hate keeps a man alive. It gives him strength.
    1. Re:Finally, a breath of fresh air by Krimszon · · Score: 4, Insightful

      I can't feel frameworks take away my control. It's like I want to do all those things myself, even though I know I can't do it as good as them. Also, I don't know if I can ever really understand what it is, only that I have to type something like :scaffold whatever and I'll hit the ground running. Wonderful, but...

      I feel like the real skill of development lies in making stuff like that, and if it becomes defacto, all you do is build applications from building blocks. I feel it takes away some of the 'art' of development. You'd say, oh I build a nice webshop, and the other person would sya, what did you use, and your answer wouldn't be php, mysql, some html/css and javascripting. It'd be Ruby on Rails, of Smarty Templates combined with some Data Access layer, or a whole lot of those java spring/hibernate thingies. And all you did was tie up the ends.

      I know it makes no sense not to use it, it's much a better choice. Make more money, easier, faster. But still, there's that feeling, know what I mean?

    2. Re:Finally, a breath of fresh air by Phleg · · Score: 2, Interesting

      I feel like the real skill of development lies in making stuff like that, and if it becomes defacto, all you do is build applications from building blocks. I feel it takes away some of the 'art' of development. You'd say, oh I build a nice webshop, and the other person would sya, what did you use, and your answer wouldn't be php, mysql, some html/css and javascripting. It'd be Ruby on Rails, of Smarty Templates combined with some Data Access layer, or a whole lot of those java spring/hibernate thingies. And all you did was tie up the ends.

      Not at all; you have it all backwards. Rails ties up the loose ends for you, letting you actually do the artistic stuff that makes your program really go. You don't have to bother writing an ORM to your database, tying unit testing to your framework, creating your own templating code, etc., all the ends are tied together for you. It's up to you to write the contents.

      --
      No comment.
    3. Re:Finally, a breath of fresh air by MyDixieWrecked · · Score: 1

      I know how you feel.

      I used to use FilemakerPro for my invoicing system, but grew out of it almost as soon as I completed it. My problem was that I wanted to access my invoices and paperwork (modify and print) even when I'm not home. I thought about shelling out the $ for filemakerpro server, but the pricetag and some limitations of the software (namely, I need filemaker installed on every client... which isn't feasible) caused me to start a web-based system.

      I began using php/mysql and after getting the thing basically working (took 3 months), realized that it was way over my head. and I needed to learn a HELL of a lot more (javascripting, etc)

      after seeing the blog demo on rubyonrails.com, I was sold. I bought the Agile Programming with Rails book and read it in a couple of days and ported my php/msql invoicing system within a week. I'd have to say, that it's a lot more powerful, and it's a lot more work than having to just "tie up the ends."

      There's still a good deal worth of programming involved (to implement the business logic). I mean. If all you're doing is making a single-user blog, sure, it's no real work at all. It's just putting pieces together to make an application. But if you want to make a complex application that would require a team of programmers and engineers to accomplish, you can do it more or less single-handedly with rails. Because of its ajax support and scaffolds, it also lets you quickly prototype the logic end and work on the less important parts later (like the look and design of the pages and the bells and whistles).

      I also particularly enjoy the testing framework.

      Whether a high traffic site would use rails is something else. Or a firm whose purpose is to develop enterprise and business applications may not use rails exclusively, since you can charge more for a custom solution.

      --



      ...spike
      Ewwwwww, coconut...
    4. Re:Finally, a breath of fresh air by CastrTroy · · Score: 1

      There's probably a lot of stuff out there that people use in house, that does pretty much the exact same thing as ruby on rails. Many companies have built up tons of code on top of whatever language they are using in order to make all the standard parts of web development really easy. Writing code that does the repetitive stuff for you has been done for years. It's good that someone took these ideas, and put them together in a framework for everyone to use. It's probably a good idea to take a look at it if you are starting something new. But, if you plan on doing a major project, you could probably build a lot of your own web development stuff, and be in much more control of how it works. All too often when you rely on something that you can't do in some other way, you end up getting screwed over.

      --

      Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
  10. Question about RoR by fatboy · · Score: 2, Funny

    Everything from templates to control flow to business logic is written in Ruby

    Uh, doesn't business logic belong in the database where the datagnomes live?

    --
    --fatboy
    1. Re:Question about RoR by anpe · · Score: 1, Informative

      Uh, doesn't business logic belong in the database where the datagnomes live?
      If you're using RoR, your code we'll be generated with a Controller, a Model and a View. Business rules code belongs to the Controller.
      Google for MVC, you seem to miss the point completly (or was it a joke?).

    2. Re:Question about RoR by PhilipPeake · · Score: 3, Funny

      You have been drinking too much Oracle Koolaid....

    3. Re:Question about RoR by heinousjay · · Score: 1

      HAHAHAHAHA
      HAHAHAHAHA
      HAHA

      Thanks, I needed that. Now I'm gonna go find some java guy who wants to write his db access code in a JSP.

      --
      Slashdot - where whining about luck is the new way to make the world you want.
    4. Re:Question about RoR by Fished · · Score: 1

      Err... actually, business rules belong in the *model*, not the controller.

      --
      "He who would learn astronomy, and other recondite arts, let him go elsewhere. " -- John Calvin, commenting on Genesis 1
    5. Re:Question about RoR by anpe · · Score: 1

      doh! my bad, you're rigth, I must reread my comments...

    6. Re:Question about RoR by JMUChrisF · · Score: 1

      amen.

      data belongs in a database.

    7. Re:Question about RoR by Anonymous Coward · · Score: 1

      What's allowed in your database is your business logic, so yeah the logic belongs in the DATABASE which is where the DATA is. Unless you live in a magical world where everything is Ruby on Rails and you can treat your app as your RDBMS.

      DHH (Rail's creator) lives in such a magical world, and his opinion on this is completely embarrassing. It takes us back to the 1960's era of application-centric data modeling, and completely throws the advancements of the relational model out the window. I guess it's par for the course with Java and PHP and everything else. "Application independence"? Never heard of it. "Data intregity"? No thanks. Hell, ActiveRecord itself is a great example of the network model (choose object A. navigate to object B. navigate to object C), which is what we had before the RM. Thanks DHH, for your "innovation".

      What makes it so painful is that the rest of Rails is very good, and contains many best practices from the past. You just have to completely ignore these "features" of ActiveRecord.

      Remember, your "business model" is *DEFINED* by what is allowed in and out of your DBMS. This isn't a religious argument, it's a fundamental aspect of data modelling. Just because SQL is so crappy and "modern" SQL databases make you want to poke your eyes out with a fork doesn't mean you get to write shit systems.

      I think I know what I'm talking about, I make a *living* fixing this kind of crap. It always goes like this: hot-shot programmer writes an app with no logic in the database. He writes the app to go with it that makes all kinds of *assumptions* about what is allowed in the database. Hot-shot leaves the job. NEW hot-shot comes in, starts writing new apps in *HIS* favorite language, and he makes completely different assumptions. Database goes all to shit and the first app stops working. Client gets frustrated and accesses the DB directly with ODBC, and TOTALLY FUCKS IT UP. Then I step in, work out all the assumptions, add the constraints, create the views, etc, etc, and everything works again. The apps are shorted and simpler to boot, because you don't have to check for NULLs, you don't have to check the formats of email addresses, etc., etc. Profit!

    8. Re:Question about RoR by 21chrisp · · Score: 1

      The problem with datagnomes is that there are only so many of them. Most sites, for example only have 1 or 2 database servers and many more web servers. The problem here is that the datagnome population grows at a low rate, whereas the webgnome population seems to grow exponenentially. This makes it easy to overwork the datagnomes. Which is bad for overall gnome productivity. So.. in most cases it's better to make the webgnomes do as much of the logic work as possible. So all the datagnomes have to do is scoop up the data and throw it back to the webgnomes.. they usually stay pretty busy just doing the scooping. If you make them run around too much, then your webgnomes will be sitting around smokin cigs waiting for the datagnomes to get their work done.

    9. Re:Question about RoR by Anonymous Coward · · Score: 0

      I think it will be much easier find a PHP or ASP guy doing that. No Java guy worth his weight in salt would use SQL in a JSP for anything but the most trivial of applications.

  11. Seaside ? by roard · · Score: 3, Informative
    While Ruby on Rails is nice, particularly for CRUD applications, I wonder why nobody speak of Seaside ...

    \begin{rant}
    Ok, I know, it's probably because it's written in that extremely complex and arcane language, Smalltalk... not. Smalltalk is extremely simple to use -- literally a child's play ;-)
    \end{rant}

    Anyway, Seaside is an incredible framework to develop Web Applications -- not just CRUD apps. It has a wonderful component system, inspired by WebObjects (another wonderful framework !), and leverage Smalltalk: you have compilation on the fly, you can modify something at runtime (and I mean, even without quitting the current web session !), use the incredible debugging/refactoring possibilities, and reuse of the zillions of libraries and code available for Squeak.

    More over, it has continuations. And that's really useful (as Paul Graham demonstrated..) for building neat webapps. Basically with Seaside you program applications nearly the same way you'd program a "normal" application. The whole HTTP process is completely abstracted (check the videos).

    Frankly, it's really a joy to develop with Seaside, and you should have a look :-)

    1. Re:Seaside ? by iggymanz · · Score: 2, Interesting

      Ruby has a heavy Smalltalk heritage, including the continuations. Just for fun, have a look at Borges , Seaside 2 ported to Ruby!

    2. Re:Seaside ? by sg_oneill · · Score: 1

      Seaside most certainly looks amazing. Is there a way to, say......., not use squeak?

      I tried to evaluate seaside recently but was blown away by what resembled a car accident involving heaps of exploding clowns. It was like umbrellas and floppy boots everywhere.

      Which is all good and fine for multimedia, but it doesnt engender confidence with a web app.

      --
      Excuse the Unicode crap in my posts. That's an apostrophe, and slashdot is busted.
    3. Re:Seaside ? by BlueGecko · · Score: 1

      You can use VisualWorks Smalltalk for free for noncommercial applications, and shell out for commercial, but Squeak is the only serious game in town if you want to do open-source Smalltalk work.

    4. Re:Seaside ? by CableModemSniper · · Score: 1

      Not being a Smalltalk expert, but GNU Smalltalk isn't good enough? I realize it has that weird (for smalltalk) file orientation (as opposed to image) and there seems to be a superflouity of exclamation points in it, but is Squeak really the only (pratical) open-source game in town?

      --
      Why not fork?
    5. Re:Seaside ? by roard · · Score: 1

      As one comment said, you can use VisualWorks. But.. you really should try Squeak anyway. Sure, it has a.. well.. unusual UI. But it's really good :-)

    6. Re:Seaside ? by roard · · Score: 1

      Apparently GNU Smalltalk technically could have a Seaside port (see the bottom of the download page), but nobody wrote one.

    7. Re:Seaside ? by zardo · · Score: 1
      I think its mainly because seaside doesn't run outside of its own environment. You need to use the seaside webserver to get the continuations support.

      Rails was designed to be more modular, you can use ActiveRecord if you want a DB abstraction layer, you could use ActionPack for the controllers/views, webrick is the web server and someone added continuation support that works with apache, but it didn't catch on.

      Smalltalk is faster than Ruby, I like that, but I like Ruby syntax better than smalltalk.

      I think seaside needs some business guys to come and point this stuff out, it's like some web developer gone mad and did all the cool stuff he could think of without paying any attention to business interests. The popularity of it suffers as well, if there were people pushing seaside it might catch on faster. It's hard enough to find Rails developers right now, but with all the publicity its getting people will start using it more and more.

      Besides, rails isn't all that much worse than Seaside is it? Why don't you quit being such an idealist. :)

    8. Re:Seaside ? by iggymanz · · Score: 1

      true, that's not where they originated, but the creator of Ruby inspired by and borrowing ideas from Smalltalk is how Ruby got them.

  12. forget Rails by the_2nd_coming · · Score: 2, Informative

    I love TurboGears. It is easier to set up and SQLObject is nicer to work with than the database tools in Rails. but it is also a Python based framework, so if you are a rubynista, then rails is defiantly the way to go.

    --



    I am the Alpha and the Omega-3
    1. Re:forget Rails by rsax · · Score: 1
      but it is also a Python based framework, so if you are a rubynista, then rails is defiantly the way to go.

      When I read the word rubynista the first thought that came to mind was "I can totally picture someone saying that on a show like Queer Eye for the Straight Guy". I'm not sure that was the intended reaction.

    2. Re:forget Rails by p3d0 · · Score: 1
      ...if you are a rubynista, then rails is defiantly the way to go.
      Was that a typo or a pun?
      --
      Patrick Doyle
      I mod down every jackass who puts his moderation policy in his sig. Oh, wait a sec....
    3. Re:forget Rails by java-lawson · · Score: 1

      Yep turbogears rocks and python is a lot more readable than ruby with a much larger community

    4. Re:forget Rails by Ieyasu · · Score: 1

      That's Rubyist to you, buster.

  13. MOD PARENT FUNNY by Anonymous Coward · · Score: 0

    Could the skin get any thinner around here?

  14. Seaside Smalltalk by Anonymous Coward · · Score: 1, Informative

    Another VERY good framework that allows for rapid web development is Seaside ( http://seaside.st/ ). It's a framework for smalltalk, which is similar in some ways to Ruby. It's well worth checking out, once you get over the initial curve it's fantastic. Personally the ability to edit live code in your web-app while its running is wonderful and the "halos" feature just kicks a**.

  15. WebServices not new to Rails by Anonymous Coward · · Score: 2, Informative

    The article summary seems to imply that WebServices will be new to the 1.0rc of Rails. This is not the case. I've been writing WebServices with Rails for several months now using the built in WebServices support.

    1. Re:WebServices not new to Rails by dugla · · Score: 1

      I'm excited about using Rails/Ruby to build WebServices. Have you got a simple example of a REST style service implemented in Ruby/Rails. Thanks.

      -Doug

  16. I've been using it... by Fished · · Score: 4, Interesting
    I've been using RoR, and I'm convinced that it is not just a flash in the pan. Let me preface this by saying that I've programmed in just about everything out there... from perl/mod_perl/cgi development, to php, to Zope, to Java, to Struts, etc. I have never seen a framework that makes it so easy to quickly develop well-architected applications as rails. A lot of the credit for this goes to two things. First, Rails features, out of the box, excellent use of automation to setup the structure of your app for you. I can have basic CRUD functionality for a table with literally one command ('script/generate scaffold TableName'). Second, Rails has a built-in ORM layer (ActiveRecord) that greatly simplifies everything, in particular because it is very good ORM.

    On one of the Rails pages they talk about a functional website in less times than other frameworks would have you spend on XML situps, and I have to agree. (Excursus: am I the only one who is underwhelmed with XML for application configuration? Apparently not!) Everything depends much less on configuration and much more on convention. This means less code to debug, which means more time to write the really distinctive stuff that was why you were custom-coding an app in the first place.

    Ruby is also a dream come true. The speed of perl, the OO features of python, but without perl's crufty syntax and python's rigidity. Where in the past Ruby was often poorly documented, and sometimes slow and buggy, it has largely overcome these limitations.

    Try rails. You'll like it.

    --
    "He who would learn astronomy, and other recondite arts, let him go elsewhere. " -- John Calvin, commenting on Genesis 1
    1. Re:I've been using it... by SwedeGeek · · Score: 1

      Thanks for pleading my case before I even made it! :)

    2. Re:I've been using it... by Anonymous Coward · · Score: 0

      Well it sounds fun, but "Python's rigidity?" Surely, you can't be serious (and stop call me Shirley ;-) Python is one of the most flexible and powerful languages of all time. The easy syntax of BASIC or Pascal, the power of LISP and PERL etc.

      Perhaps your referring to the rigidity of Zope?

      Have you tried CherryPy? With the Cheetah templating framework it's considered by many to be the equal or better of ROR.

    3. Re:I've been using it... by phurley · · Score: 4, Interesting

      I have also been using it -- and love it, but a quick note (not that I think it is that important generally speaking) -- ruby is not as fast as perl. It still uses an interpreted syntax tree, that is not as fast as perl's bytecode interpreter. YARV, should fix this, but it is still development level code.

      Of course having said that, the heavy lifting in ruby (like most scripting languages) is implemented in C, and I rarely have application performance issues with my ruby programs (including but not limited to rails). When there is a performance problem, ruby has very nice benchmarking/profiling tools and a good extension system for writing code in C/C++, so for me this is a non issue.

      --
      Home Automation & Linux -- now I know I'm a geek
    4. Re:I've been using it... by I+Like+Pudding · · Score: 2, Informative

      Rails' caching system gets around most performance problems. The templating system allows you to cache partials, which are sub-templates used for recurring page elements. Using slashdot's front page as an example, you could update the fortune at the bottom with every page view and still keep the other expensive-to-generate page elements in cache. This is the primary reason it was beating Java in certain benchmarks.

    5. Re:I've been using it... by Fished · · Score: 1
      I was actually thinking of "speed" more in terms of development time. With modern hardware, it is the rare application indeed where one needs to worry about speed in terms of execution time. (Not that it can't happen, especially if you use shoddy algorithms, but it's just not the issue it once was.) I've kind of gotten in the habit of worrying almost exclusively about development time, since that's what matters for the code I write.

      I did find the sibling post, regarding Rails' catching, interesting. Just goes to show that the speed of the language itself is often the smallest factor.

      --
      "He who would learn astronomy, and other recondite arts, let him go elsewhere. " -- John Calvin, commenting on Genesis 1
    6. Re:I've been using it... by Fished · · Score: 1
      I think it's more a cultural thing. Rails has inherited a bit of perl's very flexible culture ("there's more than one way to do it") while still holding on to some decent OOL features. The Python community always seemed to me to be mostly populated by die-hard OOL purists, resulting in programming paradigms that weren't very flexible.

      However, I'll be the first to admit that I'm not into the theoretical aspects of programming languages. I mostly just like to get programs written in as little time as possible.

      --
      "He who would learn astronomy, and other recondite arts, let him go elsewhere. " -- John Calvin, commenting on Genesis 1
    7. Re:I've been using it... by LDoggg_ · · Score: 1

      (Excursus: am I the only one who is underwhelmed with XML for application configuration? Apparently not!)

      Are you complaining about the amount of meta-data packed into something like struts, or just the fact that it uses XML?

      XML is perfect for this sort of thing IMHO.
      It does bother me that some frameworks put too much of the application into meta-data and less into code.

      --

      "If they have both, tell them we use Linux. And if they have that, tell them the computers are down." -Dave Chapelle
    8. Re:I've been using it... by phurley · · Score: 1

      I agree completely, I was just posting for "full disclosure." And yes Rails has very good cache support.

      --
      Home Automation & Linux -- now I know I'm a geek
    9. Re:I've been using it... by Tiny+Elvis · · Score: 1

      Some, not all of the power of Lisp.

    10. Re:I've been using it... by Fished · · Score: 1

      Really, I'm complaining about both. The amount of metadata is a pain in the neck, but XML makes it really odious by it's verbosity. Yes, a good IDE (like Eclipse) can simplify matters by doing a lot of the closing tags, etc., but it is still very verbose. This ends up meaning that it is very hard for a human to read. I much prefer something like YAML to XML, and RoR indeed uses YAML in the odd places where configuration is needed. YAML may not be as "correct" in some sense as XML, but it is certainly adequate for the task and doesn't take nearly the time to decipher that XML does.

      --
      "He who would learn astronomy, and other recondite arts, let him go elsewhere. " -- John Calvin, commenting on Genesis 1
  17. Don't knock it before you try it... by SwedeGeek · · Score: 3, Insightful

    To anyone who has yet to try Ruby on Rails but refuses to do so because they think it is for speghetti coders, script kiddies, etc., I just have this one comment to make...

    Who do you think the people evangelising RoR are? Do you think they are actually people who have only learned Ruby, so they don't know any better in trying to get other to try it? For some reason, I doubt it... While I don't necessarily have any hard evidence on user profiles, I would suggest such promoters have likely tried more than one programming language and web framework, and are using their own experience to come to the conclusion that RoR is worth at least trying out. Ruby has now been publicly available for 10 years, but there certainly wasn't much widespread excitement about Ruby in general until RoR came along. There has to be some valid reason for that. If it was really just a mob of script kiddies trying to build the momentum, development firms such as 37signals would not be as successful as they have been. Not to mention, the fact that the functionality of the RoR framework has or is being ported to many other languages of late.

    I'm not trying to convince you it's the best thing since sliced bread, but I don't see the logic behind swearing Ruby on Rails off before even looking under the hood for yourself...

    1. Re:Don't knock it before you try it... by Anonymous Coward · · Score: 0

      To anyone who has yet to try Ruby on Rails but refuses to do so because they think it is for speghetti coders, script kiddies, etc., I just have this one comment to make...

      Who do you think the people evangelising RoR are?


      morons who used to write webapps in php or perl

    2. Re:Don't knock it before you try it... by Anonymous Coward · · Score: 0

      >>>Ruby has now been publicly available for 10 years [wikipedia.org], but there certainly wasn't much widespread excitement about Ruby in general until RoR came along.

      Actually, the real reason is that there were no English-language books written about Ruby until year 2000. I could be off by a year or so.

      And the first great book I've seen about Ruby was published this year: Programming Ruby, Second Edition (I hate the 1st edition but love the 2nd).

      The only thing that truly sucks about Ruby is the release management. For goodness sakes, Ruby 1.8.3 wasn't compatible with Rails--its like releasing a version of Microsoft Windows that doesn't run any version of Microsoft Office!

      Someone needs to be assigned as release manager, establish a practical policy (like FreeBSD or Ubuntu--and not Debian's idiotic "we won't upgrade to newer upstream bugfix releases because the minor version number is different even though we know it is 100% compatible and no other packages depend on this, so we'll just backport a few selected security fixes using patches in a few weeks so deal with your security holes until that time and use apt-pinning but don't blame us if it hoses your stable Debian"), and make well-tested releases available in a timely manner for win32, linux, mac osx, and freebsd.

      Until this happens, I don't think too many enterprises will jump at Ruby. And as a result, it will remain a hobby language much longer than necessary.

      Too bad, because I love coding in Ruby. It is like taking a vacation from C++ and x86 assembly language--and yes, I've tried many other languages like Perl, Python and Lua (trying out different programming languages has been a hobby for decades)

    3. Re:Don't knock it before you try it... by Beek · · Score: 1

      >Who do you think the people evangelising RoR are? Do you think they are actually
      >people who have only learned Ruby, so they don't know any better in trying to get
      >other to try it? For some reason, I doubt it... While I don't necessarily have any
      >hard evidence on user profiles...

      Well, one of the biggest RoR evangelists is Dave Thomas, author of The Pragmatic Programmer...

    4. Re:Don't knock it before you try it... by ajwitte · · Score: 2, Informative

      37signals is not just a user of RoR.
      37signals made RoR.

      --
      chown -R us ~you/base
  18. What I want - client side ruby by Anonymous Coward · · Score: 0
    What's now needed is for something to bring the same improvments to the ugly Java-applet/Javascript/DHTML client side world.

    If a Ruby-brower-plug-in can do for the client what Rails did to the server, the web would be a pleasure to work with.

    1. Re:What I want - client side ruby by hairyfarter · · Score: 0

      I've wondered about this too. Is it possible to set up Ruby as a scripting hosting?

    2. Re:What I want - client side ruby by RegularFry · · Score: 2, Informative

      Your prayers have (almost) been answered - Google for Mousehole. It's Greasemonkey, but ruby...

      --
      Reality is the ultimate Rorschach.
    3. Re:What I want - client side ruby by vhogemann · · Score: 1

      That's easy.. It's just a matter of Microsoft fix IE, or kill it.

      Internet Explorer is the root cause of all webpages compatibility problems.

      --
      ---- You know how some doctors have the Messiah complex - they need to save the world? You've got the "Rubik's" complex
  19. From a development point of view... by Anonymous Coward · · Score: 0

    A nice MVC framework written in a language that is really clean and enjoyable to work in. Technically, I don't have a problem with Rails, although there is some "interesting" code in the core libraries. But hey, it's still pre-1.0, and I think the project's goals are sound.

    The core team is fairly isolated (they idle in the IRC channel but rarely speak there). Core development discussion occurs largely on locked mailing lists and in non-public IRC channels, so the direction trunk is taking on a day-to-day basis is hard to pin down. There are very few people with commit rights, and those people seem to be extraordinarily busy. Patches either get reviewed and merged really quickly, or sit and rot in the ticket system for weeks. In short, I guess it's a pretty typical open source project trying to make a release, although the lack of transparency (and at times, raw elitism) is unfortunate.

  20. What it is... by toupsie · · Score: 1, Troll

    A really poor name for what seems to be a great development environment.

    --
    Strange women lying in ponds distributing swords is no basis for a system of government.
  21. Learn Ruby Book by N8F8 · · Score: 4, Informative

    I came across this awesome (actually funny) online book teaching Ruby: why's (poignant) guide to ruby

    --
    "God fights on the side with the best artillery." - Napoleon, Marshal of France - speaking truth to power
    1. Re:Learn Ruby Book by Anonymous Coward · · Score: 0

      Chunky bacon!!

  22. Where is all the bashing? by AdityaG · · Score: 1

    It's amazing that people are not bashing this already. I was thinking maybe people wouldn't like how you can't be a "l33t haxx0r" and spend an hour writing a simple socket connection, because that's the general impression I get when there are reviews about C# or PHP.

    Then again, I guess this is slashdot.

    1. Re:Where is all the bashing? by rsax · · Score: 1
      It's amazing that people are not bashing this already. I was thinking maybe people wouldn't like how you can't be a "l33t haxx0r" and spend an hour writing a simple socket connection, because that's the general impression I get when there are reviews about C# or PHP.

      Then again, I guess this is slashdot.

      A post surprised about the lack of bashing when bashing was expected and finally concluding with bashing the news site. That's gold!

  23. Big Nerd Ranch has Ruby on Rails Bootcamp by bignerdranch · · Score: 4, Informative

    Marcel Molina (one of the Core Ruby on Rails Team members) is teaching a five-day Ruby/Ruby on Rails bootcamp at Big Nerd Ranch, December 5 - 9.. I work for Big Nerd Ranch, so I'm biased, but I think it is going to be an incredible class. - Aaron Hillegass

    1. Re:Big Nerd Ranch has Ruby on Rails Bootcamp by gcantallopsr · · Score: 1

      I read your book about COCOA and I really enjoyed it, so I'm taking your advice very seriously. I won't be able to visit Big Nerd Ranch this time (thousands of miles, big oceans in the way, etc., you know O:-) but now I'm more likely to learn Ruby.

      --
      Try Ubuntu GNU/Linux, it's great!!!
  24. Ruby on Rails on Fedora Core 4 by clear_thought_05 · · Score: 2, Informative

    I've found this guide very useful for Rails on FC4: http://digitalmediaminute.com/howto/fc4rails/. Very thorough.

  25. More than just Scaffold by jazzyfox · · Score: 3, Informative

    One thing that I feel people should keep in mind is that Rails is more than just the scaffolding. After many of the breathless "zero to web in 15 minutes" articles it seems like Rails is no more than a simplistic CRUD framework. While you can go from nothing to a basic app in such a short time, it will be using the Scaffold, which is just that, something to get you started.

    After the first few tutorials I read my impression was almost "that's it?" There demo/article Four Days With Rails gives a better view of going beyond the scaffolding, as does the Pragmatic Programmers' rails book.

    1. Re:More than just Scaffold by Bazman · · Score: 2, Interesting

      I've just read that Four Days thing and one thing is glaringly missing. You get to write a TODO management application, but there's no security. Anyone can edit, add, change, delete the TODO items.

      So now you want to add security - for simplicity's sake lets suppose you just want you to be able to edit or change anything, and anyone else to be able to view the todo list. How do you add this sort of security framework into a Rails app? I've not seen this done anywhere. Can someone point me to docs that would do this?

      In Zope, you get security built into the basic objects, with permissions and roles, so what can be done by users is built into the framework.

      Baz

    2. Re:More than just Scaffold by fleadope · · Score: 5, Informative
      The developers of Rails are quite clear that they are trying to create a framework for developing a web applications, leaving the actual implementation of all the application logic, including security (or lack thereof!) up to the application developer.
      That being said, I know of at least three secirity implementations being actively worked on and used (in order from least to greatest complexity):

      1) There is a generator on the rails wiki:
      A controller/model/view generator for easily adding authentication, users, and logins to your rails app.

      http://wiki.rubyonrails.com/rails/pages/LoginGener ator

      2) Bruce Perens has just released ModelSecurity:
      ModelSecurity helps Ruby on Rails developers implement a security defense in depth by implementing access control within the data model.

      http://perens.com/FreeSoftware/ModelSecurity/

      3) ActiveRBAC
      The goal of this project is to create a portable, simple but effective RBAC implementation with common User infrastructure and models for Rails.

      https://rbaconrails.turingstudio.com/trac/wiki

      There has also been considerable work done on a component model that will make these even easier to use and extend.

      --
      "The problems in the world today cannot be solved by the level of thinking which created them" --Albert Einstein
    3. Re:More than just Scaffold by Bazman · · Score: 1

      I just saw Bruce's post - ModelSecurity looks like the way to go, it implements an awful lot of good stuff.

      I might just get dragged off of Zope - I didn't fancy having to write tons of security/user-authentication stuff.

    4. Re:More than just Scaffold by booch · · Score: 1

      The Pragmatic Programmers Rails book covers securing an app quite well. They take an unsecure app, and apply authentication and authorization to it. It's a pretty simple process.

      As others have pointed out, Bruce Perens is working on a module to add security at the model level. The standard method is to apply security at the controller level, but applying it lower in the stack helps prevent mistakes from letting data leak out. I'm not sure if it will completely bubble-up to the controller layer though, or if you'll have to duplicate some logic up at that level.

      --
      Software sucks. Open Source sucks less.
    5. Re:More than just Scaffold by Anonymous Coward · · Score: 0

      ive been testing the model_security stuff for bruce. its indeed a very clean and very easy to use. That and protecting you model elements from views based on user access is very well done.

      Sam
      www.mayes.net

  26. Re:we already know by MemoryDragon · · Score: 1

    Most developer from time to time enjoy smaller applications, less responsibility testing ground, trying out new stuff and libs, and often you simply have to do it because you have this urge to eat sometimes!

  27. My experience by spludge · · Score: 4, Informative

    I'm a somewhat experienced web developer and I have developed significant applications (1000s users) in Java, .NET and PHP (and a little Perl). I recently tried out Ruby on Rails and, so far, it is by far the best web development environment that I have seen.

    It forces you to create a web application that is done-right(tm). The way it forces you is very insidious. If you create your application and database in a certain way then everything is very simple and easy to do. If you stray outside that way though, then suddenly you have to do so much more work. In this way you are led down the path of least resistance to a good design, and it actually works! Please try it for a week or two before you dismiss this, I was skeptical too :)

    In Java to get the same functionality that I would get for free in rails I might have to use: Ant, XDoclet, Spring, Hibernate (or iBATIS), JUnit, jMock, StrutsTestCase, Canoo's WebTest, Struts Menu, Display Tag Library, OSCache, JSTL and Struts. The amount of configuration that all of those things take is very daunting, and can often have issues. Rails will give you all that functionality (well most of it) for free.

    There *are* problems with with rails. The biggest in my mind is documentation. The wiki sucks. You really have to buy the Agile Web Development With Rails book to learn, but hopefully that will improve. This lack of documentation makes it hard when you want to stray outside of the framework. Rails really needs the equivalent of the PHP documentation with annotated comments.

    Anyways, Rails is here to stay. I'm sure of that now having tried it myself. It feels painful to have to go back and develop in other languages for web development now!

    1. Re:My experience by GigsVT · · Score: 1

      If you create your application and database in a certain way then everything is very simple and easy to do. If you stray outside that way though, then suddenly you have to do so much more work.

      Sounds like VB. No thanks.

      --
      I've had enough abrasive sigs. Kittens are cute and fuzzy.
    2. Re:My experience by spludge · · Score: 1

      Never having done VB I can't really comment on that. Please try out Ruby on Rails though before dismissing it though. I have a feeling it is not like VB. Does VB provide all the functionality of the various Java web development libraries that I mentioned, and does it provide it in a sane, easy to use framework that is extensible?

    3. Re:My experience by GigsVT · · Score: 1

      I don't know, I never have seriously tried Java. :)

      The idea of a language limiting me to doing things they expected you to want to do, and other things being very difficult doesn't sound good though.

      One VB example that comes to mind, maybe VB3 (it's been years since I developed on windows), was implementing "Always on top". Most things you tick the little box for the options you want for that window, but if you wanted to do always on top, you had to make a Windows API call that was a single line of code about 400 characters long.

      --
      I've had enough abrasive sigs. Kittens are cute and fuzzy.
    4. Re:My experience by Pfhreakaz0id · · Score: 1

      I've done both, although the rails app was very small. What he means is (if I can speak for the OP) is that ROR encourages good MVC design because that's the simplest way to get things done. VB, on the other hand (particularly vb6, which had limited OO options), pretty much let you do whatever you wanted, no matter how bad it was.

      It was a lot of WORK to get a decently architected application that was easy to modify/maintain in VB6 (I have little experience with .net, so I'm not speaking to that). Contrary to some, it was possible, but it was hard. Conversely, it was pretty easy to put together complete crap that was hard to maintain, wouldn't scale well, etc.

      With ROR, designing something crappy is hard. Putting bussines logic in the view is hard, etc. , etc.

    5. Re:My experience by GigsVT · · Score: 1

      Yes, I agree VB encourages poor design, it encourages you to put logic into event handlers.

      I can't be anti-ROR, I don't know enough about it yet. The main thing I'm trying to cut through is the fuzzy talk that it seems to generate.

      What's "CRUD" BTW?

      --
      I've had enough abrasive sigs. Kittens are cute and fuzzy.
    6. Re:My experience by cca93014 · · Score: 1

      Interesting post. I'm also an experienced Java developer and have settled on an almost identical API/Framework stack as the ones you mention (although I prefer WebWork to Struts). I agree that the configuration to juggle all these libraries together can be daunting at first.

      I've had a half day play with RoR, but didn't really have enough time to get too involved. It does look interesting, although the way the model domain is tied so definitively to the DB schema does concern me. I'm not sure why - maybe I'm just used to the model domain living as POJO's. Maybe it's unwarranted.

      One question I do have though. How much faster is RoR over Java once you have the Java development/build/staging/production environment configured and running smoothly?

    7. Re:My experience by Furry+Ice · · Score: 1

      CRUD is an acronym for Create, Read, Update, Delete. Given a suitably-named database table, running a Rails scaffolding script will generate basic CRUD functionality for that table: a web page listing all the records in it (with paging logic if there are many) with options to edit or delete the existing records, or to create a new one.

      I used VB a few years ago and was thrilled with it for 3 days, until I had to do some string manipulation. Rails can be similar, but note that the issue is at the framework level, not the language level. Ruby is a really great language. Rails is also a great framework, but you're more likely to run into cases with it where it doesn't work exactly how you'd like. In my experience, ActiveRecord (the database interface) is the most likely area to cause problems. In particular, it makes many assumptions about your data model that aren't likely to hold if you're not creating a schema from scratch. All of its assumptions are good relational practices, but that won't help if you need to work with a legacy schema. In this case, you could spend a lot of time trying to get ActiveRecord to work with your tables, or you could save yourself some trouble and grab the Ruby bindings for your database and take matters into your own hands.

    8. Re:My experience by GigsVT · · Score: 1

      We were going to write that sort of abstraction for our web app that's PHP, but we do too much to the data outside of the database.

      Part of that is due to still sucking data from a legacy app with unchangable table formats. A legacy "schema" of a sort like you said.

      Implementing a pager for paged output has been a real thorn in our side. I recently implemented a "download as CSV" output abstraction, and it works great for pages that just call our "putrow" (to screen) function a lot, since I just made a new level of abstraction for that.

      But on paged output, it just downloads what you see on each page as a CSV file, since it's just redirecting the putrows to a statically declared array which gets puked at the end of page load.

      How would you do this, for example, in Rails?

      --
      I've had enough abrasive sigs. Kittens are cute and fuzzy.
    9. Re:My experience by Pfhreakaz0id · · Score: 1

      I would agree that ROR is better if you are making an application and database from scratch. Retrofitting to an old db is harder. I experimented at first with my DB design, but ditched it in favor of "the rails way" because the db schema was version 0.2 at best anyway, and had no data in it. If you follow the rails naming conventions the active record stuff "just works" and the object to db mapping is transparent, for the most part.

      I would also agree that Ruby is a pretty nice language, with pretty good support.

    10. Re:My experience by Pfhreakaz0id · · Score: 1

      The best way to understand the ROR approach is to do what I did, spend an hour or two working through the tutorial. http://www.onlamp.com/pub/a/onlamp/2005/01/20/rail s.html

    11. Re:My experience by Anonymous Coward · · Score: 0

      In particular, it makes many assumptions about your data model that aren't likely to hold if you're not creating a schema from scratch.

      This is what views are for. Views == abstractions. Create a view for your RoR app, and another one for your legacy app.

      All of its assumptions are good relational practices

      HAHA abso-fucking-lutely not. Barely tolerable SQL practices maybe.

      In the relational model you are NOT supposed to use universal object IDs. You are supposed to correctly model your business rules. Why do your order line-items need an ID for instance? What does that mean?

      In the relational model you're NOT supposed to map types (classes) to relations (tables). You're supposed to place your values in attributes. Values aren't supposed to be splatted out into separate attributes.

      The relational model is for *arbitrary* queries. You're not supposed to pick object A, then pick all the associated object B's, which is the old *network* model, not the relational mode. The relational model allows you to specify exactly what you want in a single query so the DBMS can choose its own code to satisfy the request.

      Please, learn a little more about the relational model.

    12. Re:My experience by The+OPTiCIAN · · Score: 1

      > In Java to get the same functionality that I would get for free
      > in rails I might have to use: Ant, XDoclet, Spring, Hibernate
      > (or iBATIS), JUnit, jMock, StrutsTestCase, Canoo's WebTest, Struts
      > Menu, Display Tag Library, OSCache, JSTL and Struts. The amount
      > of configuration that all of those things take is very daunting,
      > and can often have issues. Rails will give you all that functionality
      > (well most of it) for free.

      Indeed that is a good thing, but often it's good to have that java structure. There's tremendous flexibility in it. My major project at the moment is written a framework based on ant, tapestry and cayenne. The previous version was written in a different java framework. One section of the app was close to prefect in the old version, and quite complicated because it used raw jdbc to build a customer data structure for memory and performance reasons. I was able to just grab that code, put a perimeter around it, bring the old framework libraries into my structure and then use it within my new app.

      I'm not a big fan of the monolithic framework - webobjects has this approach and means that out of the box you get the power of EOF and the templating tool... but have to put up with the less-than-perfect tools that Apple binds them to in order to manipulate your projects. And that there's less of a safety net when you try and circumvent their structure (whereas standalone tools tend to be sturdier because they have to interface with an unknown).

      I'm not experienced with rails, but I do have some experience with struts (which you mention as your java equivalent) and believe it to be awful [1]. I believe I have a good idea of what rails does, and can see why it would be better than struts (which isn't saying much) and suspect that you don't need all of that stuff to get an equivalent in java. You can cut out heaps of it by substituting Apple WebObjects.

      Also, my reading of threads of previous /. articles suggests that the persistence framework in rails is not as powerful as EOF, Cayenne or Hibernate, so in that respect rails falls down. Until I was happy in the power of my persistence model I'd be reluctant to develop a substantial (in terms of complexity rather than users) webapp on top of it. Actually, I'm in the process of installing rails for a look at the moment, but this thread is a good place to ask - is there anyone here familiar with powerful persistence frameworks who knows how the one in rails fares?

      It will be interesting to see if Rails is able to add features currently posessed by more powerful environments without the complexity increasing at corresponding rate. I suspect there are a lot of people who will come to rails from a background in struts or something else equally awful and see it as being messianic for creating a modest but mainstream version of webobjects ten years later. And my hat off to the developers for their achievement - it sounds like a great way to create value quickly. I've been working on a similar project of my own this year and know that their achievement is far from trivial. But as a webobjects developer I value my right to display mock indignation, show off that I've been doing these things for years and then complain bitterly about (1) how Apple has wasted its opportunities; (2) the quality of the webobjects developer tools; (3) the fact you have to use obscure NSClasses instead of standard java objects and put up with method names like addObjectToBothSidesOfRelationshipWithKey (this might be changing - Apple have *finally* written Collections support into their NSClasses but I won't be happy until they've made the conversion properly and started to use List in lots of places where they currently use NSArray).

      --
      [1] The proliferation of XML in the java world seems to highlight java's inelegant support for first-class functions (is that the right term? see example below). I get around it in my java frameworks by just biting down hard and trying to ignore the ineleg

      --


      Believe with me, my saplings.
    13. Re:My experience by csirac · · Score: 1

      From what I've seen, (only learning Ruby and RoR for myself at the moment), if you don't want to use ActiveRecord's inferencing and reflection features then specifying your DB schema explicitly is no more painful than the conventional methods used in other environments. Ruby also has nifty automated DB migration and integrity verification features and tools.

      The point is, the programmer is discouraged from going to all that effort because they will be properly rewarded if they go for the sane, standardised "Ruby way" instead. I don't believe Ruby actually restricts you in the way that you fear, but you _ARE_ rewarded if you do things the "Ruby way". You can program "traditionally" if you like, but it's like using for () loops in Perl when you could use a foreach() instead... silly example perhaps, but you get the point.

      Other than that: Ruby provides decent support for integration of C/C++ modules, so if you want to hit the bare metal in the way you described with your VB scenario then that's not really an issue, either.

      Disclaimer: I have no actual real-world experience with Ruby... just a hobby for now.

    14. Re:My experience by csirac · · Score: 1

      Actually, I'm in the process of installing rails for a look at the moment, but this thread is a good place to ask - is there anyone here familiar with powerful persistence frameworks who knows how the one in rails fares?

      No, I'm not qualified to comment, but here's an interesting article comparing RoR and Java/Hibernate: http://www.theserverside.com/articles/article.tss? l=RailsHibernate

      Myself, I'm learning Ruby and Rails. I'm new to web development and was inclined to learn PHP, but got swept away on the Ruby bandwagon. Java and the slew of frameworks I could choose to work with it are complete overkill for my needs. RoR seems nice for the small stuff, with room to grow.

    15. Re:My experience by The+OPTiCIAN · · Score: 1

      Although it's possible to do php well, I suspect you're much better off in the rails camp than you would be in php. PHP is very direct and doesn't even make a passing effort to cause the programmer to separate view from engine. It's OK for small things but tending to scale badly. Thanks for the link.

      --


      Believe with me, my saplings.
  28. XML? by randommemoryaccess · · Score: 1

    Am I the only person who's not been able to find any XML/XSLT support in RoR? I'd like to simply create a valid XML object that I can manipulate, and transform it to the screen - in a similar way to PHP5's XML/XSL functions. Can I find any? Nope.

    1. Re:XML? by phurley · · Score: 2, Informative

      REXML is a very nice ruby XML processor, but does not do XSL transforms. There are some less polished libraries - ruby-xslt and xslt4r that wrap C XSLT libraries, they do not appear to be in active development, but (at least for me) ruby-xslt works fine.

      --
      Home Automation & Linux -- now I know I'm a geek
    2. Re:XML? by Anonymous Coward · · Score: 0

      Yeah, create a *.rxml file as a view and you can use the builder api:
      http://api.rubyonrails.com/classes/Builder/XmlMark up.html

      Or you can generate it from within your controller or what not, it's really slick, and very easy to use.

    3. Re:XML? by glesga_kiss · · Score: 1
      Can you bind visual screen elements to xml nodes, e.g. using xpath? I'm working on something that Ruby might be a good UI to go with, but everything in my back-end is XML. All of the data will be presented to the client via xpath queries to the server from the client, and I'm looking for a good framework to present that info to the user.

      Presently I'm tending towards Open Laszlo, but it's flash based which I'm not a fan of. However, if it hides cross-browser issues, then it's a huge plus for me. Laszlo allows e.g. a text note to be bound to an xpath in a memory cached document.

    4. Re:XML? by phurley · · Score: 1

      I agree this is good stuff, but I think the gp post was after a server side transform of semantic XML, and wanted to push XHTML to the browser. If not then you are 100% correct.

      --
      Home Automation & Linux -- now I know I'm a geek
    5. Re:XML? by handslikesnakes · · Score: 2, Informative

      ruby-xslt is still being developed. New version released just last week.
      And yes, speaking as one of the developers - it could use some polish.

  29. Dear Slashdot by VAXGeek · · Score: 4, Insightful

    Dear Slashdot:

                    At this point, I am quite aware of Ruby on Rails. It is agile, the next big thing, etc. Could you possibly link a few more half brewed articles about AJAX, Ruby, and Rails? "Ruby's the next big thing!" "Ruby's hot!" Wow, really?! It certainly has more hype than anything else out there. I think if it was really that good, there would be less people hyped about it and more people actually using it. I've heard about 50000 people say it is the next perl. Of course, with perl6 highly late, who knows what will happen.

    --
    this sig limit is too small to put anything good h
    1. Re:Dear Slashdot by mccormick · · Score: 1, Interesting

      Perl 6 never given a definitive delivery date, so surely it cannot be "late." Sure, they have been working on it for awhile now and adding all sort of strange magics to the brew (borrowing the best from Perl5/Python/Ruby, incorporating functional concepts from Haskell and others), but nobody said it was going to be finished soon. I guess they're going for longevity and that takes time to really work out. As the recent upsurge of interest in Ruby shows, despite having a whole range of other more common/popular languages and platforms, there's always room for something new when it is a genuine improvement. So I figure even if it takes awhile before it's ready for mass consumption, if Perl6 is solid then it will be worth the wait, and people will still start using it then even if they've settled into other languages in the meantime.

      As well, thanks to Pugs over the past year, development on Perl 6 is really starting to pick up, with the language developments having an implemention to work them out on, and the overall effort having more to show than simply Parrot and some very much so work in progress ports of other languages.

      --
      Pete
  30. Re:we already know by I+Like+Pudding · · Score: 1, Insightful

    That and you might actually get a chance to architect it. I maintain a large web app, and hate the fact that I can't go in redesign anything (everything).

  31. RoR's AJAX abilities without RoR itself by IGnatius+T+Foobar · · Score: 1

    There are some people out there who might have been led to believe that the fancy AJAX applications currently being built using Ruby on Rails actually require RoR for that degree of rich functionality. Fortunately, this is not true. The AJAX library is called script.aculo.us and it is available as a standalone JavaScript library.

    It can be used in any language, or even from static web pages. Heck, I practice the unorthodox style of developing web apps in C and I'm using it too!

    --
    Tired of FB/Google censorship? Visit UNCENSORED!
  32. How does it deal with changes? by mgkimsal2 · · Score: 1

    I've seen this referenced before:

    script/generate scaffold TableName

    and RoR will generate CRUD stuff for TableName. What happens when the structure of "TableName" changes? Does RoR handle regenerating without overwriting what you've customized?

    BTW, I'm not into RoR, but was planning on doing an interview with someone on RoR for my podcast. The initial interviewee is AWOL, so if any RoR enthusiasts want to talk about this in more detail on a podcast, let me know.

    1. Re:How does it deal with changes? by Anonymous Coward · · Score: 0

      short answer, yes. long answer, mostly -- depends on how much customization you have done.

      for example, the default scaffold for edit/new are pretty simple. they spit out edit fields for all the columns in the table. so, this would automatically reflect any changes you make to the table.

      however, you don't really need people to be able to edit certain fields such as created_at or updated_at (as rails will update those fields automatically). so one might change the edit/new views to only show specific information. in this case, a new column in the database is accessible automatically to RoR but one would have to modify the edit/new views to include the new field.

    2. Re:How does it deal with changes? by Fished · · Score: 1
      It depends on how you do it. What I usually do is, when I edit the scaffold code, just tell it to "skip" the updated_at and created_at fields (i.e. next if field=created_at or smething like that.) That way, if I add new fields, they still appear in the forms unless I deliberately skip them. Of course, the default scaffolding code is mostly useful during development. Once you get done building the scaffold of your application, you will probably replace most of it with custom coded pages that look pretty. However, I often just leave the scaffold there and build new pages with a more integrated look for the forms I'm interested in, then make the scaffolds accessible only to administrators.

      Whichever way is probably valid, but I try to avoid tying the view to the database whenever ? can.

      --
      "He who would learn astronomy, and other recondite arts, let him go elsewhere. " -- John Calvin, commenting on Genesis 1
    3. Re:How does it deal with changes? by vendull · · Score: 3, Informative

      Rails looks at the database (not XML files!) to figure out the table structure, so the changes are visible in RoR automatically. You do not have to change anything to make ActiveRecord (RoR's ORM) see the new table structure. It happens automatically.

  33. Not so sure about this - I stil "don't get it" by argoff · · Score: 0

    Ok, here's my understanding, please correct me (in simple non "high level" language for us pleons) if I am wrong. I'm am still happy to admit that I "don't get it"

    My understanding is, you get these underlying languages that are complicated and messy, not intuitive, and have a bunch of unstandardized characteristics (or DOM's), and so much object orientation that the user has no clue as to how to grind down to the details. So to fix that, we add a layer on top of that called "ruby on rails" that hides the mess that you would otherwise be required to deal with. (or am I totally clueless here?)

    Well anyhow, if so, wouldn't it just be better just to have the underlying language to be more imperitave and intuitive and standardized to begin with? No matter what kind of app you write, people always eventually half to start understanding the low levels to make things tick. It seems to me that much of the times these "innovations" allow people quickly and cleanly write things that have already been done, but for the real world - utility often requires imperitive and intuitive access to a low level to make new things work. It seems Ruby would just complicate that by adding another layer to go thru.

    1. Re:Not so sure about this - I stil "don't get it" by bunco · · Score: 1

      Pontification. Ruby is a joy to work with. Get your hands dirty before making worthless posts.

    2. Re:Not so sure about this - I stil "don't get it" by argoff · · Score: 0, Troll

      Pontification. Ruby is a joy to work with. Get your hands dirty before making worthless posts.

      No. This is exactly what I mean ... how arrogant. There are a zillion languages out there. I don't want to sepnd all my time learning languages and frameworks, I already know dozens, I wnat to spend my time doing things. So far, it just looks like antoher layer, even after glossing over their "why use ruby", it still looks like another layer. In fact, the url likned to looked more like high level propaganda with sparse documentation with lots of quotes like "Rails is the most well thought-out web development framework I've ever used". Let me be the judge of that, please. If they're right, they have nothing to proove.

    3. Re:Not so sure about this - I stil "don't get it" by UOZaphod · · Score: 1

      I too have to admit that I just don't get it, but I'm willing to learn. However, I want a true explanation of the concept, not just a testimonial. Telling me, "It's the best thing out there", doesn't cut it.

      From the beginning, I've been wanting a simple explanation of the structure of RoR. It is almost as if people are afraid that if you dig deeper into the design, you will discover something that will turn you away before trying it out. People shouldn't be afraid of the truth.

      --
      "The unicode stuff in the latest version is working fabulously well. My russian mafia friends are ecstatic."
    4. Re:Not so sure about this - I stil "don't get it" by MrPink2U · · Score: 1

      How are you going to "judge it for yourself" if you don't want to learn it? I haven't done any programming with Rails (or Ruby for that matter) but I did go through some of the tutorials just to check it out. I can see definitely see how someone could really enjoy programming in this framework.

    5. Re:Not so sure about this - I stil "don't get it" by Anonymous Coward · · Score: 0

      The Rails homepage has a simple flow diagram of how Rails handles a request.

      If this isn't helpful to you, perhaps you could be more specific about what you'd like to know; I'm sure someone would be willing to help you out.

    6. Re:Not so sure about this - I stil "don't get it" by Vacindak · · Score: 2, Interesting

      The truth is the Rails is well designed all the way through.  I've actually written quite a few things that munge around with the inner workings of Rails (Ruby makes this very easy with all of its metaprogramming constructs), and I've seen first-hand how the components were put together.

      The most important thing to realize is that Rails heavily embraces the concept of "domain-specific languages."  Because of the Ruby's blocks and the ability to dynamicly insert new methods and/or respond to method calls on methods that don't technically exist, it's very easy to effectively create new syntax tailored specifically to the task at hand.

      For example, if you want to have a one-to-many relationship between the people table and the emails table (people often have more than one email address), it would be as simple as this:

      class Person < ActiveRecord::Base
        has_many :emails
      end

      class Email < ActiveRecord::Base
        belongs_to :person
      end

      Or let's say you were writing some schema migration code, and you need to create the corresponding database tables for those two model classes:

      create_table :people do |t|
        t.column :first_name, :string
        t.column :last_name, :string
        t.column :date_of_birth, :datetime
        t.column :biography, :text
      end

      create_table :emails do |t|
        t.column :person_id, :integer
        t.column :address, :string
      end

      That code doesn't care whether you're using PostgreSQL, or MySQL, or Sqlite, or whatever.  And if you need to move into some vendor-specific SQL for some reason, it still doesn't get in your way, because you can just execute whatever raw SQL you need to run.

      Incidentally, the point of schema migration code is to allow you to easily switch between database schema versions while maintaining data integrity.  This is ideal for prefabricated software built using Rails like wikis, blog engines, cms's, etc, since they can change the database schema as required, and upgrading to the new version is as simple for the user as running "rake migrate".

      And that stuff is just the data access layer.  Rails has just as much nifty magic going on in the view and controllers.

      For a high level view of how the components fit together, just stop by the RoR website.  The relevant diagram is prominently featured on the front page.

      http://www.rubyonrails.com/

      (Why doesn't slashdot let me use <pre> block directly?  That's really wierd.)

    7. Re:Not so sure about this - I stil "don't get it" by anichan · · Score: 1

      No. This is exactly what I mean ... how arrogant. There are a zillion languages out there. I don't want to sepnd all my time learning languages and frameworks, I already know dozens, I wnat to spend my time doing things.

      You can "do things" in any language. If you're great at perl, use it. If php is more your style, use that. I've been writing code for a long time now, and have done stuff in lots of scripting languages. Ruby, and Rails, makes it very quick to make certain types of applications.

      And, honestly, how long does it take to learn a new language? You learn C, and write a loop: for(i=0;iMAX;++i) {}then you say, I need to use a loop in perl! And then you write, for ($i=0, $i$MAX; $i++) {} And, you know what, you want to write a loop in Ruby, it's different, but... well, it's (one way) for i in 0..(MAX-1) ... end

      I wish more companies would realize this.

      --

      karma is for the weak >)

    8. Re:Not so sure about this - I stil "don't get it" by swimmar132 · · Score: 1

      It doesn't take long to be able to write a loop in a language, and btw, the Ruby way to write a loop would be something like

      container.each { |element| # something }
      or
      10.times { |i| puts i }

      But it does take a while to learn how to use all the assorted libraries and frameworks that a new language gives you.

    9. Re:Not so sure about this - I stil "don't get it" by SnapShot · · Score: 1

      You wrote: ...wouldn't it just be better just to have the underlying language to be more imperitave and intuitive and standardized to begin with?

      My answer: Yes!

      My long answer: Yes, but...

      My really, long answer: Yes, but the existing languages -- HTML, JavaScript, SQL, etc... -- are the languages that either define the data (i.e. SQL) or define the user interface (e.g. HTML and JavaScript). To enforce a better underlying and all-encompasing language you'd need to get all the data stores to start using your language and then get all of the user browsers to start using your language before there could be a critical mass to achieve this simplification.

      The next best thing is to use a frameworks such as J2EE, RoR, .Net (I think, never used it...) that tries to abstract away as much of these problems as possible. These frameworks serve two strict masters: take data from these databases and deal with thier task specific languages and make them usable to any random user's web browser and deal with the idiosycracies there. At the same time, try to make that middle tier easy to understand and make it difficult to allow the users to do the wrong things (e.g. accidentally deleting data that shouldn't be deleted or failing to specifiy all the information they should). In other words, enforce the "business logic".

      I think J2EE does a pretty good job of this, though some people hate it. I'm really looking forward to trying out RoR since I've always been a fan of Ruby as a language.

      --
      Waltz, nymph, for quick jigs vex Bud.
    10. Re:Not so sure about this - I stil "don't get it" by gedhrel · · Score: 1

      The nuances of HTTP transactions to drive your app events (incl. dealing with "back", "refresh", etc) are neither intuitive nor simple. There's a lot of detail. If you use something low-level (eg, PHP) this will bite you at some point.

      Similarly if you need to persist a complex object model (which you will unless you stop at writing trivial bloging apps): you're going to have to understand a great deal of detail.

      Rails and the ilk offer an abstraction layer on top of this that actually means you get an opportunity to express your application logic in a fashion that is perhaps a little more comprehensible - the idiom is more natural to many programmers, unless they've been perverted by years of dealing with shoddy web frameworks :-)

      (Similar tools and frameworks exist for many languages. That's because there is a need for them.)

  34. Re:we already know by Anonymous Coward · · Score: 0

    most organizations right now have the problem of hundreds of small applications made with new stuff and libs (not so new by now). i refuse to work in small-quick webapps since it enforces mantainability/coherence issues.

  35. It is... by Anonymous Coward · · Score: 0

    Marketing at its best.

  36. New Security Framework for Ruby on Rails by Bruce+Perens · · Score: 4, Informative

    ModelSecurity helps Ruby on Rails developers implement a security defense in depth by implementing access control within the data model.

    If you are like most developers, you think about security when you program controllers and views. But a bug in your controller or view can compromise the security of your application, unless your data model has also been secured.

    The economical, flexible, and extremely readable means of specifying access controls provided by ModelSecurity makes it easier for the developer to think about security, and makes security assumptions that might otherwise live in one developers head concrete and communicable to others.

    1. Re:New Security Framework for Ruby on Rails by marcello_dl · · Score: 1

      If you are like most developers, you think about security when you program controllers and views.

      ... indeed, but it doesn't take long to realize that the ModelSecurity approach is the cleanest one. I'll have my apps using it soon.

      --
      ---- MISSING MISCELLANEOUS DATA SEGMENT --- [sigdash] trolololol
  37. Re:we already know by Anonymous Coward · · Score: 0

    And just what *do* you deign to work on? Overpriced, byzantine SAP installations?

  38. Heavyweights taking on Rails by Bruce+Perens · · Score: 3, Interesting
    I visit Fortune 100 companies in my work for Sourcelabs. The managers comment that their engineers are clamoring to use Rails and the managers are holding back until the product is more mature. They continue to watch the trend.

    There are some interesting sites. Note Epson Developers. You might find this note about a large medical application interesting. I also noted a Rails project being developed in a department of the New York City government.

    Bruce

  39. Re:we already know by badmammajamma · · Score: 0, Troll

    True that. You can't bring up anything related to web apps without some rails drone coming out an spewing how wonderful rails is and that if jesus were a programmer, that's what he'd be using. /yawn

    --
    Any man who afflicts the human race with ideas must be prepared to see them misunderstood. -- H. L. Mencken
  40. You know why I'm not trying it? by James+A.+Y.+Joyce · · Score: 1, Insightful

    Because every single fucking article I've read about Ruby on Rails is 95% hype and 5% substance. If the Ruby on Rails evangelists can't even be bothered to spend 15 minutes writing a decent article to actually explain what it is and how it works, why the fuck would I go to the trouble of installing Ruby and learning how to use it "On Rails"?

    1. Re:You know why I'm not trying it? by Anonymous Coward · · Score: 0

      And yet - like the swallows returning to the mission in the spring - you show up and have much the same complaint with every single fucking article that deals with Rails.

      Yours is one of the few usernames I recognize on Slashdot for that very reason.
      Tell us the truth, we're all friends here, did Rails kill your Father?

      In the future I suggest you just not click on the Rails articles - this stresss can't be good for your heart.

      Kevin

    2. Re:You know why I'm not trying it? by Wonko42 · · Score: 1

      Hallelujah and amen to that.

    3. Re:You know why I'm not trying it? by RAD+Kade+1 · · Score: 1

      Uh, did you actually read the article? It's a good overview of how the components of RoR work.

    4. Re:You know why I'm not trying it? by zardo · · Score: 1
      Started programming in Ruby one day because I had heard hype about it and though "WOW, this is a GREAT language!" Then I went looking for web frameworks that use it, I found rails and the community seemed nice. I originally intended to write my own framework because every single framework I've ever used has disappointed me, but there were things about rails that were like, holy shit, that is great! Integrated DB abstraction layer! A really simple templating system!

      It's the first community project I actually feel the urge to contribute to. But if it's not for you it's not for you. Seriously, if everybody used it because they were supposed to, like Java, it wouldn't be as good. Only the elite ever make it to rails, despite it's simplicity.

  41. My Experience by MrByte420 · · Score: 1

    I became a Ruby developer at a financial firm about a month ago. My past expereince had been in PHP for this type of coding - let me say that I am impressed. Not only is it incredibly easy to pick up but you really can create full fledged applications in almost no time. ActiveRecord is what makes it so versitle, and I highly reccomend anyone who hasn't given it a try to actually try it...

    --
    If religous zealots don't believe in Evolution, then why are they so worried about bird flu?
  42. You cannot intuit your way to understanding by guet · · Score: 3, Informative

    You're talking in generalities about complicated things you're not familiar with - it's not very productive.

    Ruby - OOP language which is really quite elegant, tidy, and intuitive and has a bunch of standard APIs
    Ruby on Rails - Additional structure and helpers for building a web application, written in Ruby

    The only way you'll find out if you like it is to try doing something with it - if you seriously want to make a web application or something, you could get an idea of how to use it by watching the tutorial video.

    http://www.rubyonrails.org/media/video/rails_take2 _with_sound.mov

  43. The ultimate contrarian answer to this question by hey! · · Score: 4, Insightful
    Is that there is no answer. At least no answer that is ten words or less and covers every possible case.

    People who say that business logic never belongs in the database are people who tend to be application developers. They are committed to a client platform (say j2ee), and database platforms (oracle and postgres and the like) vary from client to client.

    People who own data on the other hand tend to have the database platform constant, but need to get at it and manipulate it from multiple platforms (j2ee, perl, VB, Access etc.) A viable definition of "database" in my book is a collection of data that is organized to be reused across apps.

    A choice algorithm I'd use is this: If it has to do with the logical consistency of the data, it belongs in the database tier. If it is only possible to meet the needs of the project you are doing in one way, choose that way. Otherwise decide what part of your system is least likely to change, try to put as much as you can there.

    The closest I can get to my self imposed ten word limit is this:

    Business logic belongs in the tier you're most committed to.
    --
    Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
    1. Re:The ultimate contrarian answer to this question by cojerk · · Score: 1

      Well put.

      I can see how the business logic existing in the database level would be nice in certain situtations.

      But the main reason why I'd never do it is in the event the CTO realizes he/she can save a few bucks by changing database vendors across the board (I'm sure this has never happened [/sarcasm]) would screw you if you had all your business logic existing as PL/SQL (for example). Not to mention business logic at an application level would be more easily ported than logic at the DB level.

      Granted you'd be in the same boat if language standards are changed. But I would say those standards are at less risk because most are free and wouldn't tend to concern the CTO enough to change.

      just my .02

    2. Re:The ultimate contrarian answer to this question by hey! · · Score: 2, Interesting

      Well, speaking as a CTO, I'd be slightly offended by your implication that we're a bunch of dunderheaded idiots, except that being CTO means forgetting what the meaning of "shame" is. ;-)

      In any case, there fortunately isn't any reason to use PL/SQL. You can write stored procedures as static java methods in Oracle. Maybe not ideal, but still a lot easier than porting. There's a project for Postgres that allows stored procedure and trigger logic in Java too.

      In some cases web services may be a good for coarse grained kinds of services.

      --
      Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
    3. Re:The ultimate contrarian answer to this question by Anonymous Coward · · Score: 0

      You said it better than I ever could.

      Ideally, in a Rails app, you would never EVER access the data unless you're going through the app. And in Rails, that doesn't mean the webapp. If a 3rd party needs access to your data, let them use a webservice. and if you need to change something real fast, fire up the rails shell and make the change through your app. Never open SQL Enterprise Manager (or whatever).

    4. Re:The ultimate contrarian answer to this question by Anonymous Coward · · Score: 0

      Business logic belongs in the tier you're most committed to.

      That's a little too touchy-feely me for me. The business logic belongs within the gateway to the data, which is the DBMS.

      Your post makes it seem like it's "okay" to create two different models, one in the DBMS, and one in the application, and pretend the one in the DBMS doesn't exist. This is almost NEVER the right thing to do.

      If you're 1) new at programming, or 2) haven't been burned with data inconsistency on a multi-million dollar project yet, or 3) haven't studied any database theory whatsoever, you put it wherever you feel like.

      Everybody else puts it in the DBMS. In fact the DBMS is *defined* to be that part of the system that enforces data integrity.

      The Rails solution, apparently is to re-implement the DBMS in the application. Except that ActiveRecord has no underlying theory, no model, no generality (look at the "eager associations" for instance.. that's straight from the 1960's network model when you couldn't just *ask* the DBMS for what you wanted, you had to "construct" your results yourself). And nothing forces people to go through the Rails app.

      No thanks.

    5. Re:The ultimate contrarian answer to this question by cojerk · · Score: 1

      Sorry - did not intend to make any kind of sweeping statements aginst CTO's. The reason why I even mentioned 'CTO' in my example was because it was a partial truth for me a while back, and I guess I still harbor some bitterness.

      In any case, there fortunately isn't any reason to use PL/SQL

      I would agree as far as business logic goes. But still, that wouldn't mean there isn't existing legacy apps out there that are using PL/SQL (or something similar -- this was only an example) and would have to be ported.

      There's a project for Postgres that allows stored procedure and trigger logic in Java too

      I had no idea Postgres (which I know very little about) could do that. You should mention that and any other Postgres tidbits your holding on to the next time a Postgres / mySQL flamewar errupts on /. :)

    6. Re:The ultimate contrarian answer to this question by soliptic · · Score: 1
      Business logic belongs in the tier you're most committed to

      Unfortunately, that sentence ends in a preposition - BAD! You really need to rewrite it like this:

      Business logic belongs in the tier to which you're most committed.

      At which point it becomes 11 words :(

      (NB: joking ;] )

  44. Ruby in the Job Market by Jack9 · · Score: 1

    Time to learn Ruby: 2-4 weeks multiplied by the # of jobs in the (714) MENTIONING Ruby: 10ish (.01) divided by my years as a programmer 8

    Carefactor elevated to 0.016 - get it up to 2 before I learn it on the weekends.

    This is satire, but succinctly explains what I consider, before learning about a new technology.

    --

    Often wrong but never in doubt.
    I am Jack9.
    Everyone knows me.
    1. Re:Ruby in the Job Market by 21chrisp · · Score: 1

      Imagine if everyone said that back when all we had was assembly... Also, I took a job for PHP/Perl experience and we're now considering moving to Ruby/Rails. I know a lot of people are in the same situation. The fact that it's not in the job postings is actually nice. Do you really want to see "2 years of Ruby on Rails experience"? Being a developer also means that you continue to evaluate available technologies and how they may help you and your organization. Rails is definitely such a technology.

    2. Re:Ruby in the Job Market by Anonymous Coward · · Score: 0

      The Ruby jobs aren't all going on the job boards. It's a chicken and egg situation.. Rails coders are in such demand right now that we don't have to look there.. so why advertise the jobs there?

      I'm currently on a $180,000/year contract doing Ruby on Rails work, and already have lots of projects lined up on the side. But.. if you wanted to be in this position, it would have paid to take a risk a year ago to be considered an expert now. Learning now.. you'll be one of thousands.

    3. Re:Ruby in the Job Market by Jack9 · · Score: 1

      My value to the market is independent of the language. Let's not compare versions of PHP if you're gonna claim 180k a year.

      There is no chicken and egg. There is invention and demand. Ruby has been out how long? Filled what niche? Right. At 100k a year you can afford to simply demand new development machines. At 180k I doubt you have a problem justifying the use of a "up and coming" language if you can get the job done. Motivating programmers is the key to optimum production, in my not-so-unique experience.

      --

      Often wrong but never in doubt.
      I am Jack9.
      Everyone knows me.
    4. Re:Ruby in the Job Market by Anonymous Coward · · Score: 0

      My value to the market is independent of the language. Let's not compare versions of PHP if you're gonna claim 180k a year.

      There is no chicken and egg. There is invention and demand. Ruby has been out how long? Filled what niche? Right. At 100k a year you can afford to simply demand new development machines. At 180k I doubt you have a problem justifying the use of a "up and coming" language if you can get the job done. Motivating programmers is the key to optimum production, in my not-so-unique experience.


      Actually, in this situation the client was totally dead set on using a new technology, so (and this is a sad part of how many programming contracts work) anyone with even minimal Ruby on Rails ended up getting a very sweet deal. What you get paid was, in this case, directly related to the tech. That's contracting for ya.

      Ruby is not really filling any niche, but the combo of Ruby on Rails is. In a few years, RoR coders will be ten-a-penny like PHP coders and I won't be in that market anymore, instead trying to be ahead of the curve on the next industry buzzword.. it's where the $$ is.

  45. A crock of shit, thats what! by Anonymous Coward · · Score: 0

    ROR is the most hyped up thing on the internet. The only thing that compares is AJAX.

  46. Rails and legacy databases by matchboy · · Score: 5, Informative

    Quite a few people have dismissed Ruby on Rails because they think that it enforces a set of rules about how to structure your database. I am currently writing, Programming Rails for O'Reilly and have posted numerous articles on my blog on the topic of Rails and Legacy database systems. Rails can be molded to fit your existing infrastructure with very little effort. It's all I have been using for new projects since last spring... and that was when I started learning Ruby as well.

    PostgreSQL + Ruby + Rails = the next (lamp)

    PRR, RPR, RRP... we need a cool acronym

    --

    Robby Russell
    PLANET ARGON
    Robby on Rails
    1. Re:Rails and legacy databases by talonyx · · Score: 3, Interesting

      how about:

      PURR: PostgreSQL, UNIX, Ruby and Rails

      or RAPR: Rails on Apache, PostgreSQL, and Ruby
      (kinda motorola type thing)

    2. Re:Rails and legacy databases by CodeMunch · · Score: 2, Funny

      I'd mod you up for PURR but my mod points just disapeared. I'd mod you down for RAPR but my mod points just disapeared. ;)

    3. Re:Rails and legacy databases by 27B-6 · · Score: 1
      ... we need a cool acronym

      I would suggest RRP, because it could be pronounced "rip", and have that "rriot grrls" (or boys) attitude. The best part is, when you get ready to make a new site you can say, "Okay, I'm gonna' RRP it a new one."

      --
      "Trust in haste. Repent at leisure"
    4. Re:Rails and legacy databases by nathanh · · Score: 1
      PRR, RPR, RRP... we need a cool acronym

      How about LRRP - Linux, Ruby on Rails and Postgresql - pronounced "lurp" as in "burp". Has some similarity to LAMP though is distinctive enough to not be confused.

    5. Re:Rails and legacy databases by uid8472 · · Score: 1
  47. Already covered this compared to Java... by bADlOGIN · · Score: 4, Interesting

    Don't let your Java get run out on a Rail just yet
    My opinion hasn't changed much since.

    --
    *** Sigs are a stupid waste of bandwidth.
    1. Re:Already covered this compared to Java... by partenon · · Score: 2, Interesting

      FYI, there's a Rails IDE out there: http://www.radrails.org/ . Its a pretty new IDE (actually, plugins over eclipse) that promisses to kill your first point :-)

      --
      ilex paraguariensis for all
  48. Instant Rails by matchboy · · Score: 5, Informative

    Curt Hibbs (author of that Rails article) has just released Instant Rails.

    Instant Rails is a one-stop Rails runtime solution containing Ruby, Rails, Apache, and MySQL, all preconfigured and ready to run. No installer, you simply drop it into the directory of your choice and run it. It does not modify your system environment.

    http://instantrails.rubyforge.org/

    --

    Robby Russell
    PLANET ARGON
    Robby on Rails
  49. LAMER by mattryan78 · · Score: 1

    Would using Linux, Apache, MySQL, Evolution, and Ruby make me a LAMER?

    1. Re:LAMER by Anonymous Coward · · Score: 0

      But Evolution isn't a program generally used on the server end in web applications.

      Perhaps "Linux, Apache, MySQL, eperl, and Ruby"?

  50. standard authorization model by MORTAR_COMBAT! · · Score: 1

    ok. what's the best of breed authorization/authentication model for ruby on rails?

    --
    MORTAR COMBAT!
    1. Re:standard authorization model by partenon · · Score: 1

      Authentication: There are some "login generators" out there. http://wiki.rubyonrails.com/rails/pages/Authentica tion

      Authorization: It depends from application to application. If its a simple "is the user logged?", you can use something like this: (http://wiki.rubyonrails.com/rails/pages/HowToQuic klyDoAuthenticationWithLoginGenerator)

      class AllMySecretsController < ApplicationController
            before_filter :login_required, :except => [ :show_one_secret ]
            def show_one_secret ...
            end
      end

      Otherwise, you will need to do "manually". Maybe, using the before_filter in ApplicationController ;-)

      --
      ilex paraguariensis for all
  51. Model Security is nearly here by BigTom · · Score: 1

    Bruce Perens is working on model security for Active Record sponsored by Soucelabs

  52. Fan of Martin Fowler and ThoughtWorks? by matchboy · · Score: 1

    Ruby on Rails is now a supported platform at ThoughtWorks! (home of Martin Fowler)

    --

    Robby Russell
    PLANET ARGON
    Robby on Rails
  53. Re:we already know by Senzei · · Score: 5, Funny
    True that. You can't bring up anything related to web apps without some rails drone coming out an spewing how wonderful rails is and that if jesus were a programmer, that's what he'd be using. /yawn

    Which, as we all know, is an outright lie. If jesus were a programmer he would write a lisp routine so advanced that A) only god could actually understand it, and B) he would just have to think about a website for it to be written.

    After all, if I were jesus, that is what I would do.

    --
    Slashdot: Where anecdotes and generalizations can be freely substituted for facts, logic, or intelligence
  54. What is Ruby on Rails? Ask Googlism! by Watts+Martin · · Score: 3, Funny

    Google on "ruby on rails is":

    Ruby on Rails is awesome.
    Ruby on Rails is a relatively new Web application framework built on the Ruby language.
    Ruby on Rails is the first startling example of this trend.
    Ruby on Rails is way over hyped.
    Ruby on Rails is finally a bullet point!
    Ruby on Rails is NOT a new programming language.

    And, definitively, from Joel on Software:

    If you don't know whether or not Ruby on Rails is a good tool, give it a try yourself. Most smart people I know love Rails.

    Don't you want to be a smart person?

    [Disclosure: Yes, I actually do like Ruby on Rails from what I've seen. It's fun to bitch about the hype, but most of the bitching is much less well-informed than the hype being bitched about. "If you can't convince me in five minutes that I need to drop everything and learn this, obviously there's no value to it!" Yeah, uh-huh. Some people compensate with fast sportscars, some with Java frameworks, I guess.]

    1. Re:What is Ruby on Rails? Ask Googlism! by Anonymous Coward · · Score: 0
      Joel on Software:

      Joel also likes sucking dick and getting fucked up the ass. Maybe you're into that sort of thing, but I'm not.

  55. Major updates on the horizon for GEM? by hostpc · · Score: 1

    We've had some great looking applications setup by our customers using RoR ... we're looking forward to their next version - and continued GEM updates with new apps and trinkets

  56. What is it? by DigitalHammer · · Score: 1

    What is Ruby on Rails?

    Sounds like some sort of new sex position. :)

  57. zope anyone? by hoover · · Score: 1

    I checked some of the RoR tutorials out there a while ago, and found nothing that Zope (http://www.zope.org/ wouldn't do for me in the same or even shorter amount of time (old fashioned DTML here, not ZPT, mind you ;) . Zope has a quite a steep learning curve, but from reading the tutorials I would guess the same goes for RoR, and for now, I'll be sticking to Zope.

    Cheers,

    Uwe

    --
    Ever wondered whats wrong with the world? http://www.ishmael.org/
  58. Trails: RoR for Java by otisg · · Score: 2, Interesting

    For those using Java and wishing for a RoR-like package for Java, look at Trails - https://trails.dev.java.net/

    --
    Simpy
    1. Re:Trails: RoR for Java by irritating+environme · · Score: 3, Insightful

      Trails was a train wreck of immaturity last time I checked, and the dependencies were ridiculous.

      There is also Grails which is Groovy based, that is probably immature as hell.

      Ruby's main problem is its immaturity, so going with a more immature solution doesn't help. Java for the sake of Java isn't going to help things, but I wish the Grails/Trails people great success. The Java API is extremely valuable, and Ruby's main problems with converting people is the host of apps/APIs (web server, database, etc) above and beyond the language that an enterprise developer will need to learn in order to effectively use it.

      --


      Hey, I'm just your average shit and piss factory.
  59. Ruby on Rails only works on MySQL by Anonymous Coward · · Score: 1, Interesting

    That Rails programmer guy only suggests that Rails developers use MySQL. He seems to hate PostgreSQL, Oracle, and all databases that enforce CONSTRAINTS. How do we know that it works in PostgreSQL (properly) when the lead developer doesn't think you should even waste your time with silly constraints?

    Django leaders love PostgreSQL. I want to try Rails but I don't trust MySQL (or fans of it).

    1. Re:Ruby on Rails only works on MySQL by matchboy · · Score: 2, Informative

      PostgreSQL works with Ruby on Rails!

      If it didn't, I wouldn't be so in love with it :-)

      --

      Robby Russell
      PLANET ARGON
      Robby on Rails
    2. Re:Ruby on Rails only works on MySQL by Anonymous Coward · · Score: 0

      DHH (Rails creator) has the luxury of working in a company where he can dictate that everything that touches the DBMS must go through his "pseudo-DBMS" ActiveRecord layer.

      He is also apparently unaware of the last 40 years of database research and what exactly a "business model" is (hint: it's whatever your DBMS allows). I mean I can't explain how an intelligent person who has studied data management can say some of the things he does. So I assume it's not out of stupidity, just inexperience.

      I've seen enough failures of DBMS-backed applications in the last 15 years due to lack of proper modeling to know exactly how dangerous that thinking is.

      The good news is, Rails doesn't have a problem if you want to set up your database properly. Sure, you don't get to code with all that cozy metaprogramming, but if you give me a choice between correctness and writing everything in one language, I know which I'd picked. Besides, I already know Lisp and Smalltalk, so even Ruby makes me long for more.

      ActiveRecord does have other flaws: it commits both of what Date calls "The Great Blunders": universal surrogate keys ("ids") and equating TYPES (classes) with relations. I.e., table X maps to type X, table Y maps to type Y. The latter one ("The First Great Blunder") is probably the more important of the two. The trouble is, if you select just some of the columns, or if you join two tables together, what class are the resulting rows a part of? Who knows.

      So while the application part of RoR brings a lot of best practices to the table, the data management part feels like the designs of 40 years ago. It's a damn shame!

      The best solution for RoR would be a Ruby RDBMS with full relational support that allows objects to be attributes of relations: (id, customer) instead of (id, first_name, last_name, ...) and is also relationally complete. I would love to see this, but as long as DHH and others spread nonsense, I fear it may be another 40 years...

    3. Re:Ruby on Rails only works on MySQL by therodent · · Score: 1

      We're using Rails at work for an application with Oracle 10.... Bah to those who say you can only use MySQL, we haven't used it once!

  60. That's ok. by Some+Random+Username · · Score: 1

    Rails was written by a used car salesman too.

  61. Rails alternatives (Nitro, TurboGears...) by booch · · Score: 1

    I'm using Rails for a project I've been working on for a month. It's better than anything I've used, but I can still see some room for improvement.

    I've seen mention of a few alternatives that look quite interesting. In particular, TurboGears and Django for the Python crowd, and Nitro as another Ruby platform. Others exist for other languages. (I don't know if anyone has exactly defined what makes a system Rails-like; it seems to be one of those things that you can identify without being able to easily describe.)

    I'd prefer to use Python, just on language preference, and a potentially larger selection of libraries to use on the back end. But I'm wondering if Ruby has some features that Python doesn't that allow a lot of the magic to happen behind the scenes without having to add code.

    I'm also very interested in anyone's experience with Nitro+Og. Og looks like a lot better ORM framework than ActiveRecord.

    I'm tempted to try using TurboGears or Nitro, because they look better from a technical perspective. But Rails has so much momentum that I'm not sure they'd be able to surpass Rails' community support, which is in many ways more important.

    --
    Software sucks. Open Source sucks less.
  62. Forget TurboGears by Colonel+Panic · · Score: 1

    I love Nitro.

  63. Zero turnaround time by Uzik2 · · Score: 1

    "The typical development cycle for testing a change to a web app has steps such as configure, compile, deploy, reset, and test. This is very time consuming. The Rails development environment has none of this. You simply make a change and see it work. Don't make the mistake of dismissing this as a minor point. It's hard to overstate how much this improves productivity and helps you maintain a creative flow without interruption."

    So they don't test anything? They just modify production
    code directly? Sounds like something only suitable for college
    kids and amateurs that leave messes behind for someone else
    to clean up.

    --
    -- Programming with boost is like building a house with lego. It's a cool but I wouldn't want to live in it
    1. Re:Zero turnaround time by swimmar132 · · Score: 1

      What the hell?

      Rails has three modes:

      • test (for running unit and functional tests)
      • development (where you spend your time coding... you see all your changes instantly)
      • production (where your sites should run when they are released

      Honestly, that was a really misinformed and inflamatory comment.

    2. Re:Zero turnaround time by chromatic · · Score: 1
      So they don't test anything? They just modify production code directly?

      No, the part you quoted talks about the Rails development cycle. Rather than making a change, recompiling, and redeploying to see the change, you can just make the change. The typical Rails development process I've seen is to make a change, use the built-in web server to preview the app locally, then deploy it to a live server when everything's correct.

      Nothing in Rails forces or encourages you to modify running production systems, but nothing in Rails forces you to test your code either -- just like nothing in J2EE, ASP.Net, PHP, or even plain HTML forces you to test or to deploy to a testing server first. Of course, Rails does make it easy to test your code.

    3. Re:Zero turnaround time by Uzik2 · · Score: 1

      I just misunderstood. Evidently there's a built in
      webserver as part of the IDE. The step of publishing
      and switching environments to test your code is removed
      from the cycle.

      I've seen a lot of people that tout short cuts as
      "revolutionary improvements". I've also cleaned up after
      a lot of them made horrendous messes. I thought this
      was one of them

      --
      -- Programming with boost is like building a house with lego. It's a cool but I wouldn't want to live in it
    4. Re:Zero turnaround time by aCapitalist · · Score: 1

      There's not a built-in webserver with the IDE. There's a standalone web server called WEBRick. There is a rails IDE (radrails.org) that uses eclipse and a bunch of plugins. It's early in development but I've found it useful

    5. Re:Zero turnaround time by Whatchamacallit · · Score: 1

      "So they don't test anything? They just modify production code directly?"

      Don't get Stuck on Stupid! Of course they test! RoR supports test, development, and production modes of operation.
      In addition, it has a full unit test architecture built right in. The moment you generate a new rails app, you already
      have unit test model templates ready for your tests. RoR supports all the development methods that preach code and test.
      Including Extreme Programming.

      Really want to get XP humming? Code on an Apple PowerBook and run SubEthaEdit - http://www.codingmonkeys.de/subethaedit/ - This allows multiple programmers to code at the same time, so where XP recommends two or three programmers sitting next to each other working together, SubEthaEdit allows you to do that even over the Internet.

    6. Re:Zero turnaround time by Uzik2 · · Score: 1

      >Don't get Stuck on Stupid! Of course they test!

      I know people that don't test at all. A lot of people that
      test minimally ("it works on my box" or "IE 5 required"),
      and almost none that spend much time on testing.

      I'll see if I can find more about the test environment.
      If it generates the unit tests I'd be interested in seeing
      more about that.

      --
      -- Programming with boost is like building a house with lego. It's a cool but I wouldn't want to live in it
    7. Re:Zero turnaround time by Uzik2 · · Score: 1

      If you wanted to really test in an environment that matches
      production you'd have to substitute the web server
      you use in production for webrick. Sounds like a good
      part of what people like is just a flexible IDE

      --
      -- Programming with boost is like building a house with lego. It's a cool but I wouldn't want to live in it
  64. Learning curves, dammit! by IdahoEv · · Score: 1

    Zope has a quite a steep learning curve,

    So Zope is easy to learn, huh? And I'd been holding off because people had told me it's fairly difficult to learn.

    Repeat after me, everyone: a learning curve is a graph of Knowledge or Skill (independent/vertical axis) vs. Time or Effort (horizontal, dependant access). A "steep" learning curve means you gain knowledge quickly given little effort. A "steep learning curve" is a good thing.

    If you mean it takes forever to learn the damn thing, the term you want is "shallow learning curve".

    HTH.

    --
    I stole this sig from someone cleverer than me.
    1. Re:Learning curves, dammit! by hoover · · Score: 1

      Whatever. I guess the rest of us got the message, though,thanks for clearing up this misconception. If you're interested, my interpretation of learning curves won't stop you from learning Zope anyway ;)

      Cheers, uwe

      --
      Ever wondered whats wrong with the world? http://www.ishmael.org/
    2. Re:Learning curves, dammit! by Anonymous Coward · · Score: 0

      Repeat after me:

      "colloquialism".

      Very good. English is a dynamic language, especially with informal speech. It is a common and accepted definition of "steep learning curve" is something that is hard. The reference probably has more to do with the difficulty of climbing a steep mountain, rather than an actual "learning curve" (by the formal definition).

      Regardless (or irregardless, if you're comfortable with information speech), you should find something better to do than be a language nazi. You're obviously intelligent. Why not put some effort into make the "steep" learning curve of Zope (or any other product that is traditionally hard to use) more "shallow".

  65. Re:we already know by protohiro1 · · Score: 1

    Be that as it may some us make a living making small quick web apps. I am a web designer/developer, and most of what I do is for small businesses that need very simple apps for the sites. Real estate companies need to post listing, funeral homes need to post obits, everyone needs a simple cms, etc. I develop in PHP/mysql and a little bit of asp.net. RoR sounds interesting to me, because if I can make it faster I can make more money. I am not writing large enterprise apps. Lord know I wouldn't be able to if I had to...

    --
    Sig removed because it was obnoxious
  66. What do you use for Rails? FCGI, FCGID, or SCGI? by Anonymous Coward · · Score: 0

    It looks like there are 3 choices for running Rails on Apache2:

    mod_fcgi - original fastcgi, been 18+ months since last code change
    http://www.fastcgi.com/

    mod_fcgid - binary-compatible with fastcgi with improved process management
    http://fastcgi.coremail.cn/index.htm

    mod_scgi - simpler protocol utilizing Python (not sure of speed vs other two)
    http://www.mems-exchange.org/software/scgi/

    Which do you use and why? Are there any comparisons that show both speed and memory utilization among these? Did you try one and dump it after finding problems?

  67. ARMD developing by HIRONOBU_SUZUKI · · Score: 0

    Sometime, I called my developing style in Ruby as ARMD developing.
    A: Apache,
    R: Ruby,
    M: ruby Module that is written in C
    D: and Database.

    I don't care about Linux, FreeBSD, MacOS X, whatever around UNIXes. I wrote C codes of ruby module for bit manupulation with OpenPKSD, another version of OpenPGP public keyserver written in Ruby. My CRC24 caluculation module is 200 times faster than pure Ruby CRC24 calculation.

    Hironobu SUZUKI, Japanese Ruby Developer at Ruby Conference 2005 in San Diego

  68. Re:What do you use for Rails? FCGI, FCGID, or SCGI by fak3r · · Score: 1
    I use mod_fastcgi, as it's the general way most ppl use it with Typo. I still have Apache2 on :80, but use mod_proxy to pass any request for *fak3r to :3000 where Lighttpd picks it up and then hands it to fastcgi if a database call is needed. From lighttpd.conf:
    server.port = 3000
    server.bind = "127.0.0.1"
    server.event-handler = "freebsd-kqueue"

    server.modules = ( "mod_rewrite", "mod_fastcgi", )
    server.indexfiles = ( "dispatch.fcgi" )
    server.document-root = "public/"
    server.error-handler-404 = "/dispatch.fcgi"
    server.errorlog = "log/error.log"

    url.rewrite = ( "^/$" => "index.html", "^([^.]+)$" => "$1.html" )

    #### fastcgi module
    fastcgi.server = (
    ".fcgi" => (
    "typo" => (
    "min-procs" => 2,
    "max-procs" => 2,
    "socket" => "/tmp/typo1.socket",
    "bin-path" => "public/dispatch.fcgi",
    "idle-timeout" => 120
    )
    )
    )
    Sorry, but I don't have any comparision with the others, I just know that this just handled ~60,000 hits over the past 4 hours on a home server.
  69. Live by Ruby, die by Ruby by gauchopuro · · Score: 1

    #! /usr/bin/ruby
    require 'net/http'

    h = Net::HTTP.new('fak3r.com', 80)
    while true
      h.get('/index.html', nil)
    end

    1. Re:Live by Ruby, die by Ruby by CableModemSniper · · Score: 1

      A minor addition...

      #! /usr/bin/ruby
      require 'net/http'

      while true
        Thread.start { Net::HTTP.new('fak3r.com', 80).get('/index.html', nil) }
      end

      --
      Why not fork?
    2. Re:Live by Ruby, die by Ruby by Breakfast+Pants · · Score: 1

      Nice addition if you are trying to DoS your own box.

      --

      --

      WHO ATE MY BREAKFAST PANTS?
    3. Re:Live by Ruby, die by Ruby by CableModemSniper · · Score: 1

      Not really, since ruby threads block on syscalls. In fact my version is probably in reality, slower, since it also creates a new object every iteration.

      --
      Why not fork?
  70. Re:What do you use for Rails? FCGI, FCGID, or SCGI by Samus · · Score: 1

    I'm curious why you go from apache to lighthttpd to fcgi to rails? On my home server I have an app that I'm developing that just has apache2 using mod_fcgi going straight to my rails app. I haven't load tested it or anything b/c it is going to be a personal app just for me and my friends but it seems to work fine. I thought about going with mod_ruby but then I read about the ruby interpreter and rails framework in every apache process and decided not to be that cruel to my box.

    --
    In Republican America phones tap you.
  71. Try Ruby on Rails (with many extras) on Mac OS X by raaum · · Score: 1
    as fast as you can download my Rails sandbox app Locomotive. Ruby on Rails ready to go with a lighttpd/fastcgi server. It installs all the dependencies in it's own self-contained bundles, so it won't mess with your system at all.

    If you want to try Rails out for yourself on Mac, you could be doing it in less than 5 minutes (assuming you're sitting on a fast connection....)

    Cheers,

    ryan
  72. Best Quote Ever by ShieldW0lf · · Score: 1

    Rails can automatically create a full set of CRUD (Create, Retrieve, Update, and Delete) operations and views on any database table.

    Best. Quote. Ever.

    --
    -1 Uncomfortable Truth
    1. Re:Best Quote Ever by Decaff · · Score: 1

      Rails can automatically create a full set of CRUD (Create, Retrieve, Update, and Delete) operations and views on any database table.

      Yes, but then what? Very unwisely, Rails by default uses the database as the place where data objects are defined, rather than as Ruby code. This means it can be a significant exercise to subsequently change the database in significant ways, and moving to another database vendor can be a problem (where column names may have to change).

      Other mature ORMs use a mapping layer and have the data objects defined as code. This means that database independence can be very good, and it means that code can be to some extent isolated from changes in the database schema.

    2. Re:Best Quote Ever by ShieldW0lf · · Score: 1

      Whatever. I've never used Ruby, I'm just thinking of being able to tell people that I get paid a fortune to build crud all day.

      --
      -1 Uncomfortable Truth
  73. Goodbye accessibility? by DrMorris · · Score: 1

    I've never been a fan of web applications. They almost never provide what they want to be: applications which run on every guessable platform. There's always a small detail which works only with JS or even only with one specific browser so the platform independence is screwed up. (The advantage of easy & immediate deployment is still valid though.)

    But let's talk about accessibility. There are some guidelines for designing accessable webpages and there are frameworks for the development of normal desktop applications. How could accessibility issues be handled with/by AJAX? A screenreader has a hard job to do even with webpages today, and I don't think the situation will change with more (inter)active websites.

    1. Re:Goodbye accessibility? by Anonymous Coward · · Score: 0

      AJAX is not inherently accessible or unaccessible. It's also platform independent in the sense that it will work with any platform that cares to implement standards (almost all libraries out there are standards based first, and IE-compliant second).

      So AJAX, out of the box, should in theory work with any screen reader that implements full DOM support - I think we can leave some of that responsibility to accessible browser makers.

      Further, almost all AJAX libraries also have mechanisms in place to provide fallback functionality for non-DOM agents (be they screen readers or lynx). So if you must support disabled users, you can certainly do so with some extra work, and there are tools available to you to help. (It is especially easy to do in rails because you can simply have a page call the same controller action AJAX was calling, and render the response in a new page - it's almost trivial really.)

  74. Good luck with changing the world on that by Szplug · · Score: 1

    And anyway, you could be wrong - if the x-axis was time and there was a lot to learn, a steep learning curve would require a lot of effort, which is in the spirit of the saying.

    --
    Someday we'll all be negroes
  75. Not True! by Anonymous Coward · · Score: 1, Insightful

    you know, it really depends on which axis has what label. If EFFORT is on the vertical and KNOWLEDGE is on the horizontal, then the saying is absolutely right. And, uh, i've never heard anyone be explicit about the labelling, so i'll have to assume your just a little pernacious.

    i mean, the above holds water, yeah? Anyway hello there, fellow nitpicker :)

    j.

    1. Re:Not True! by Roland+Walter+Dutton · · Score: 1
      But the general convention is that x, the independent variable, gets the horizontal axis, while f(x), the dependent variable, gets the vertical axis, no? And since the most obvious way to think of learning-curve functions is as functions from "how much you put in" to "how much you learn", that would put "effort" (or "time") on the horizontal.

      OTOH, the loose talk of "gentle" and "steep" learning curves suggests that when you show people a learning curve graph they tend to reflexively think of the graph as (the vertical cross-section of) a physical slope that the learner must climb. (This is unsurprising since we often think of tasks like learning something as being similar to climing a hill.) That metaphor is a lot more appropriate if we put "knowledge" on the vertical, xor graph the inverse function ("time/effort for given knowledge").

  76. Re:What do you use for Rails? FCGI, FCGID, or SCGI by fak3r · · Score: 1

    That's a good question, basically it's just the way Typo's FreeBSD howto said to do it if you already have an exisiting Apache install. It's silly to run two webservers, however I also did want to try out Lighttpd since I had heard good things. I like it, and if it can do all I need Apache for, I may migrate to it, again, just because and to learn new stuff. On the other hand, would be interesting to learn how to make mod_fcgi do it, so there's another route.

  77. Rails != Ajax by splattertrousers · · Score: 1
    In fact, the only ajax help that RoR gives you is that it generates JavaScript for you (eeech) and includes a few third-party scripts.

    So to clear up a common misconception: Rails is not at all related to ajax, and it doesn't really help you write ajax-y web applications.

    1. Re:Rails != Ajax by swimmar132 · · Score: 1

      I wrote an ajax search box in about four lines of code. I'm sure Rails did not help me at all.

    2. Re:Rails != Ajax by splattertrousers · · Score: 1
      I'm sure Rails did not help me at all.

      Agreed. All it did was generate Javascript for you. In the long run, I think that's unhelpful.

      Of course, where Rails probably did help you was in making the request handling really easy, which is what it's good at. But ajax is all about the client-side, and Rails is all about the server side. Both are necessary, but they are not the same thing.

    3. Re:Rails != Ajax by swimmar132 · · Score: 1

      It only generates enough javascript to work with the prototype javascript library. Most of the javascript that you can easily use with Rails is in that library (i.e. it's not automatically generated). And if you don't want to use Rails helpers, you don't have to.

  78. Re:What do you use for Rails? FCGI, FCGID, or SCGI by flash777 · · Score: 1

    If you haven't posted it yet, would you mind posting your hardware config? I tried to see if you have posted it in one of the threads, but didn't find any.

  79. real world use? by drew · · Score: 1

    I've read a couple of articles and tutorials and other things about Ruby on Rails because I tend to think that something that's receiving this much hype must have some backing to it.

    Ruby looks like a really interesting language, and I'd like to start using it on a regular basis soon. But for all I've looked so far, it looks like Rails is basically a great tool for rapidly building CRUD interfaces to your database, and it appears to be entirely designed for people who like to define an object for every table in their database, with load/store methods and instance variables corresponding to each column. Is this what all the hubbub is really about? Because it really seems quite underwhelming to me. Like I got all excited about this great new tool that came so highly reccomended, and then I read the tutorials and went "Oh. That's it? Ohhhh - Kaaay..." I mean, sure it looks like you could develop a full CRUD interface in no time flat, but that doesn't really seem very useful to me. And people I know who do make a lot of those kinds of interfaces already have a whole set of tools and scripts that they use that can generate the whole thing even faster than any of the examples I've seen.

    So if I don't spend much of my time building CRUD interfaces, and I'm not somebody who likes my objects to be an exact representation of a database row, what does Rails actually offer me? (Especially seeing as I would already have to do extra work because I don't use their database naming conventions.)

    --
    If I don't put anything here, will anyone recognize me anymore?
    1. Re:real world use? by swimmar132 · · Score: 1

      Just answering the question in your subject: http://wiki.rubyonrails.com/rails/pages/RealWorldU sage

      The tutorials obviously don't go much beyond the basics, because they are *tutorials*.

    2. Re:real world use? by drew · · Score: 1

      The tutorials obviously don't go much beyond the basics, because they are *tutorials*.

      I understand that. I guess my disappointment wasn't wasn't so much that the tutorials never go beyond the basics, but they all cover exactly the same basics, and they don't really give you any indication of how to move on.

      My question wasn't really "Are there people who really use it?" It was more a matter of "While I see that this is a really convenient tool for developing CRUD applications, how is it more useful than php, jsp, [insert platform of choice here] for any other kind of project?" Because really, I doubt that more than 5-10% of my time is really spend on CRUD.

      --
      If I don't put anything here, will anyone recognize me anymore?
    3. Re:real world use? by guet · · Score: 1

      You shouldn't get obsessed with the CRUD side of things as the only feature. I think the author DHH specifically states in one of those tutorial videos that the CRUD stuff is just a minor footnote on p.236 or something, the implication being that the other stuff is more important.

      Namely, the tools that encourage you to use MVC, the lack of a compile stage when testing, the built in testing frameworks and interactive console, the built in development web-server, the support for partial pages as snippets of code, the lack of a separate template language (uses Ruby), the lack of configuration files and SQL to map objects to the database (though it appears you won't care about that side of things :), AJAX libraries built in, and finally the nice language it's written in.

      There are some missing links it'd be nice to have (a mature security/login framework for example) but overall it's a nice integrated package for doing web applications that does a lot of the groundwork for you so that you can concentrate on creating the bits that are unique to your application. There's a nice example of a site further up this page which almost withstood a slashdotting on a DSL line, and includes things like incremental search of content.

      Depending on your needs, knowledge and expectations, it might not be the best platform for you - you shouldn't expect it to be a panacea. However, regardless of your needs, maybe it's worth downloading it and checking out the way it works. Ruby is a fun language, and is worth checking out on its own.

  80. I love Rails but... by Anonymous Coward · · Score: 0

    Rails is a very nice framework and I look forward to working with it in the future
    as well as with Ruby.

    But...

    Your mileage may vary if you are trying to work with a legacy db schema that does not
    use the naming conventions that Rails uses. I know they can be overidden - but not in
    all cases. For example, I wanted to use Rails to build a small app using a legacy Oracle
    schema. Each table has a sequence generated primary key (e.g. person_seq => person.personid,
    emp_seq => employee.employeeid). I hit a dead end on this one. Rails document said something
    to the effect "I couldn't find a way to pass in a sequence name to the Oracle driver".

    Bottom line is that this stopped me cold from using Rails on a legacy schema that uses a
    primary key/sequence setup that is very common (in the Oracle world at least).

    The moral is that you cannot assume that anything will "Just Work" in all cases.

    1. Re:I love Rails but... by matchboy · · Score: 1

      This has been fixed now. There are new features in edge rails for passing custom sequence names to your objects. :-)

      --

      Robby Russell
      PLANET ARGON
      Robby on Rails
  81. I bet it does it all by convention...NOT! by irritating+environme · · Score: 0, Flamebait

    Oh, so if you have a non-vanilla RoR legacy database, it does ORM to accomodate that all via convention not configuration right? Very little effort, right?

    No details though in most articles. Just ground-up stuff that looks to be competing with LAMP projects, and the pro-RoR articles all mirror that general attitude, not the least of whom is Curt Hibbs.

    Yet all the really grizzled Java guys who have to deal with real-world legacy and enterprise ugliness list off a host of problems that Java has documented, mature projects with, and the RoR people say "Oh, RoR can do that with VERY LITTLE EFFORT...and don't point to anything."

    Let's be honest here, the base ActiveRecord is a Wizard/Code Generator. All that zero-config falls apart once you get out of the baby carriage and into real-world stuff. So quit pushing that all over the place.

    I won't deny it's promising, but it is immature as hell.

    --


    Hey, I'm just your average shit and piss factory.
    1. Re:I bet it does it all by convention...NOT! by matchboy · · Score: 2, Informative

      My book will cover some fun legacy stuff.. a whole section is dedicated to this with Ruby on Rails. :-)

      Programming Rails

      --

      Robby Russell
      PLANET ARGON
      Robby on Rails
    2. Re:I bet it does it all by convention...NOT! by Watts+Martin · · Score: 2, Insightful

      ActiveRecord isn't a code generator. The scaffolding scripts are code generators. ActiveRecord is an ORM system. In fact, AR doesn't generate any code at all, which makes it hard to believe you've even given the Active Record Overview a quick glance. The "convention over configuration" magic is one listed feature out of a dozen.

      Yes, ActiveRecord is immature, and yes, it's clearly designed more with the idea of being used from the ground up. But, see, when you start slagging off AR because it's "just" something that it doesn't even do...

  82. AJAX+Ruby+Rails+PostGres:

    RAPR, PARR, ARPP, PRAR

    Get a T in there and you get close to RAPTOR...Have fun guys.

    --


    Hey, I'm just your average shit and piss factory.
  83. Rails is Great by peatbakke · · Score: 1

    From scratch, it's only taken me a few afternoons of hacking to produce this:

    http://www.peatsbooks.com/ ... it's a used computer book search tool that interfaces with Amazon's Web Services. Pretty straight forward stuff, but handy in it's own way.

    What do I like about Rails? It's hard to put a finger on, but it just *feels* good. I'm coming from about ten years of web dev with Perl, Java, and PHP. Rails seems unencumbered by a lot of stodgy crap (both code and culture) ... of course, that will change as it matures ... but right now it's just marvelous.

  84. Trouble... by Rick+Richardson · · Score: 1

    # gem install rails
    Attempting local installation of 'rails'
    Local gem file not found: rails*.gem
    Attempting remote installation of 'rails'
    Updating Gem source index for: http://gems.rubyforge.org/
    Install required dependency rake? [Yn] y
    Install required dependency activesupport? [Yn] y
    Install required dependency activerecord? [Yn] y
    Install required dependency actionpack? [Yn] y
    Install required dependency actionmailer? [Yn] y
    Install required dependency actionwebservice? [Yn] y
    Successfully installed rails-0.13.1
    Successfully installed rake-0.6.2
    Successfully installed activesupport-1.1.1
    Successfully installed activerecord-1.11.1
    Successfully installed actionpack-1.9.1
    Successfully installed actionmailer-1.0.1
    Successfully installed actionwebservice-0.8.1 /usr/lib64/site_ruby/1.8/rubygems/custom_require.r b:21:in `require__': no such file to load -- rdoc/rdoc (LoadError)
                    from /usr/lib64/site_ruby/1.8/rubygems/custom_require.r b:21:in `require' from /usr/lib64/site_ruby/1.8/rubygems/doc_manager.rb:4 3:in `generate_rdoc'
                    from /usr/lib64/site_ruby/1.8/rubygems/gem_commands.rb: 215:in `execute'
                    from /usr/lib64/site_ruby/1.8/rubygems/gem_commands.rb: 214:in `execute'
                    from /usr/lib64/site_ruby/1.8/rubygems/gem_commands.rb: 153:in `execute'
                    from /usr/lib64/site_ruby/1.8/rubygems/command.rb:49:in `invoke'
                    from /usr/lib64/site_ruby/1.8/rubygems/cmd_manager.rb:9 4:in `process_args'
                    from /usr/lib64/site_ruby/1.8/rubygems/cmd_manager.rb:6 7:in `run'
                    from /usr/lib64/site_ruby/1.8/rubygems/gem_runner.rb:13 :in `run'
                    from /usr/bin/gem:17

  85. Auth Generator by happy · · Score: 1, Informative

    Hey guys.

    I see talks about login generator and other way to handle users. Just to let you know there is an authentification generator I released few days ago at http://penso.info/rails/auth_generator/

    It offers a nice interface to handle users, you can edit/remove/add users, put them into groups and allow specific pages only to specific groups (like ADMIN group, etc). All the usual pages like forgot password/resend the confirmation/change password, etc, that you want your users to have are available out of the box.

    There is a quick video also that takes you from nothing to a website handling articles, with user authentification in mind.

    --
    http://blog.penso.info
  86. Mix 'n match by Furry+Ice · · Score: 1

    I should probably clarify that "taking matters into your own hands" doesn't mean you have to ditch Rails. You'll just write model classes that don't extend ActiveRecord classes. I've used this approach to handle data that was stored in files rather than an RDBMS.

  87. Perl is not fast by Jamie+Lokier · · Score: 1

    I've done quite a bit of benchmarking various Perl constructs, to improve performance of my own Perl scripts. (More web stuff, so it's the relevant sort of Perl).

    I've been very disappointed with it speed-wise. Approximately 1100 CPU cycles on my 366MHz x86 for a trivial subroutine call; approx. 290 for an integer local ("my") variable assignment (260 for globals). That's hot cache (tiny benchmarking loops). That's slow even for a byte-code interpreter. And strings copy a lot more than necessary, in ways which are difficult to avoid without making code very messy; surprising for a language with a reputation for string handling.

    It's great if you want to pattern-match a little bit of text. But even working with text, sometimes you need to split things into token streams and do logical things.

    Perl is full of great things. I use it a lot, and write all sorts of fancy code in it. But one thing it isn't, is fast.

    -- Jamie

  88. This is not nuanced enough. by Estanislao+Mart�nez · · Score: 1
    I think you're still missing the two fundamental problems (or rather, two sides of the same coin):

    1. The distinction between "the application" and "the database" is a bit arbitrary.
    2. Our databases suck.

    On the first point: note that I said "a bit" arbitrary, and not completely so. There are excellent reasons why we separate the application and the database. Or rather, the applications (a plural that says a lot) and the database. Still, the difference between the database and the application should be considerably more seamless.

    On the second point: if you want me to program in PL/SQL, you might as well murder me.

    As to where business logic belongs, I think the best answer is that you should only have to write and maintain the business logic in one place and form. If that didn't sound like an answer to the question, well, that's because the question poses a false dichotomy. Whether the business logic resided on the application or in the database server is an implementation detail that the language used for implementing said logic should abstract away. You should just be able to write down the logic once, and the same set of rules should be able to run on either side. Or even better: on both at once. (Why? Because they serve different functions: the database might the rules to protect data integrity, while the application is in a better position to interpret violations and deal with them smartly.)

    A real-life system I've seen implemented that's kind of similar to the idea: a little domain-specific language for web form validation, that does double duty: it's used on the web server to validate form submissions, but at the same time, it gets compiled to Javascript that gets embedded on the web page and detects invalid submissions at the client side. Again, the same business rules, but they transparently work in more than one implementation. (And there's no reason why in principle the same rules couldn't be translated into database constraints; but doing it in practice might be hell. As I too often say: it's a sad world where the best database is Oracle...)

    1. Re:This is not nuanced enough. by hey! · · Score: 1

      1. The distinction between "the application" and "the database" is a bit arbitrary.

      Well, sure, which is the whole point of what we're talking about. There is, however, a sharp distinction between application tier software and database tier software.


            2. Our databases suck.


      Can't help you there ;-)

      On the first point: note that I said "a bit" arbitrary, and not completely so. There are excellent reasons why we separate the application and the database. Or rather, the applications (a plural that says a lot) and the database. Still, the difference between the database and the application should be considerably more seamless.

      Again, if logic has to do with consistency, it categorically belongs in the database tier. I don't truck with words like "seamless", it's poorly defined and probably not measurable. Every time I've run into it as a "requirement" there's been trouble. I do like words like "performance", "throughput", "latency", "loose coupling", and "enforceability".

      Better so say, I think, that what an "application" is is rather arbitrary. But just because nobody can draw an exact line between day and night doesn't mean there's no difference.

      Whether the business logic resided on the application or in the database server is an implementation detail that the language used for implementing said logic should abstract away.

      While this is a worthy idea, it is important to take into consideration organizational dimensions of this problem. Let's say I create a system called "Z" that abstracts all this away. Maybe things are happening in the database tier, maybe in the app tier, maybe in some web servies somewhere. I build the whole system in "Z". That's great, but when somebody who has an app written in VB needs to muck with the data, all that lovely abstraction goes out the window. THat's the difference in perspective between application developers and data owners. Data owners like being able to use different vendors and products.

      --
      Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
  89. Ruby is better than the 'next Perl' by renoX · · Score: 1

    I and many other hates Perl, while I recognize Perl's power, its syntax is so awful that it makes maintenance a pain whether it is written initially by a beginner (who doesn't use 'use strict' or 'use warning') or by an expert (who finds TMTOWTDI fun, he wrote two lines that took me 1/2h and one book to understand and then 30s to replace by also two lines that a beginner in Perl could understand).

    Perl6's syntax doesn't look any better to me.

    The only thing I miss in Ruby's language compared to Perl is the possibility to declare variable (a use strict equivalent).

  90. Re:What do you use for Rails? FCGI, FCGID, or SCGI by fak3r · · Score: 1

    1.2G Athlon
    512M PC133 RAM
    20Gig IBM
    80Gig Western Digital
    NIC some 10/100 3com
    FreeBSD 6.0 (RELENG_6)
    Speakeasy 1.5/384 ADSL

    As pointed out by others, the bottleneck was def the DSL - but the server was working pretty hard. I'll post some more detailed stats, but suffice to say, over 95,000 hits for 10/15 was a new rekerd for my home server.

  91. It's All A Matter of Levels by oldCoder · · Score: 1
    The first programmers to use operating systems rather than program the bare machine felt the same way. You now use OS's, DBMS's, compilers, interpreters, chips...

    In any situation, you take a bunch of tools and primitives and make an application.

    --

    I18N == Intergalacticization