Domain: rubyonrails.org
Stories and comments across the archive that link to rubyonrails.org.
Comments · 199
-
Prominent Rubyists moved to Rust.
This is a good point. Ruby, and especially Ruby on Rails, did fall out of favor quite quickly. I think that many people and organizations regret falling for the hype. Ruby and Ruby on Rails both gained a pretty bad reputation for being slow and bloated, and software written using them was often found to be difficult to maintain. Dynamically typed scripting languages might work well for quickly throwing together a prototype, but they often aren't so good for writing large software systems that must be maintained for many years or even decades.
It is also important to note that some prominent members of the Ruby and/or Ruby on Rails communities jumped ship to Rust when it started to become obvious that the Ruby and Ruby on Rails hype was wearing very thin, and the Rust hype was just starting to build.
For example, look at the Rust Core Team. We see Yehuda Katz listed, who is apparently a former member of the Ruby on Rails Core Team. We also see Steve Klabnik listed. He apparently wrote a book about Ruby on Rails with Katz. Alex Crichton appears to maintain some Ruby gems.
So over 30% of Rust's Core Team was involved with Ruby at some point. It might even be more than that. This has made me very suspicious and weary of Rust. I personally have had bad experiences with Ruby and Ruby on Rails, and I fear that I might be subjected to the same hype-driven nonsense if I get anywhere near Rust, due to the same people being involved with both.
-
Re:Naming
"Ruby on Rails" ? Is there a good reason for the name, or were you watching too many old western train movies?
Here has a discussion of the name in RoR's early time (2007). Also, it seems that many people do not even know what Ruby on Rails is. My company is still using it and I am the only person develop and maintain the application... Not a bad web frame work at all.
-
Re:Abandonware?
Oh come on. Rails 4 has been out for over 3 years ( http://weblog.rubyonrails.org/... ) not counting beta versions. If you haven't been bothered to update your public-facing application to 4.x in 3 years then yes, you're on your own. If you were one of the volunteers donating your time to run the Rails project would you want to support every version forever? You can always feel free to pay a developer yourself to fix any security holes that may turn up in Rails 3 in the future. And heck, you could sell those patches to other laggards!
-
With that website? No, definitely not.
These guys don't know the first thing about marketing. Their logo doesn't look quite as shitty as other FOSS project logos, but that's about it. I couldn't even find screenshots.
Want to have some obscure half-assed unfinished FOSS project to become the most hyped and famous?
Here, this is how you do it. (Note: That site is outdated, but it was the best for a FOSS project back then) -
'tis a Smorgasbord
The caveat to the rest of this is that I'm somewhat new to the web development frontier. (a yearish of unpaid experimentation)
Having said that here are a few technologies/languages that I find highly useful, perhaps you will too.
Redis, everyone needs a cache/queue, if someone says otherwise they're lying to you. The really cool part about redis is that operations done with it are (mostly) atomic at the operating system level, and it has persistent records of transactions, which sets it far apart from its other competitors. Redis is something I would use in any sort of web application backend.
At least one of: rails/vibe.d/yesod/spray. These tools, while not ideal solutions, are extremely useful for maintaining separation of concerns, as well as rapid prototyping, I would consider knowing some framework essential.
Ember.js/angular.js are both javascript frameworks that are extremely powerful, the necessity of these increases with the more interactivity you want, they're probably a bit overkill for most webapps, but I'd definitely recommend looking into one of these at some point.
Foundation/Bootstrap are frontend frameworks for easily organizing the layout of your pages and styling them, again, for simple projects these will probably add more complexity than necessary to the project, but these are another thing I would consider essential.
Postgresql is a rdbms similar to Oracle that has very powerful/fascinating features that no other db system has such as hstore which is essentially a key value store that allows you to input whatever in a column, which is great for unstructured/semi-structured data (e.g. user uploads). Mongo can't beat an ACID compliant json store. ;)
I could go on for a while in this direction, but I hope this helps.
Personally, I use rails/ember/foundation for frontend stuff and use spray/redis/postgres for the backend, they seem to fit my workflow the best and solve the problem at hand the most effectively. -
It's called marketing.
It's called marketing. RubyOnRails wasn't the first web framework and it certainly wasn't the best. In fact, it was pretty shitty. But it was the first that had a professionally designed website that advertised its benefits and a screencast that explained and demonstraded them. The pratically invented screencasts. Weeks later slashdot was filled with Rails fanatics.
The first version of the Zope Webapp Server came out roughly a decade before rails and still was notabliy superiour to any other WebFW, Rails included, in all aspects. Yet nobody cared. Why? That's why. Bland website? Nothing flashy? Can't find what I'm looking for? Backend UI without good looking buttons? Won't adhere to the loudmouths and hippsters and won't get attention, won't get critical mass, will lose eventually. It's that simple, even in the FOSS world nowadays (Rails actually sought to that, btw.)
If you really want to bring ICEwm (back) into the limelight, join the team, update their 12 year old website, bundle a new version with good looking modern themes and your tweaked setup, give it a new version number and do a little rattling on related online forums. Once everything is in place, tested, up and running that is. If you've done your job well, userbase will rise again and IceWM 2.0 will the the Hip WM of 2014. Fluxbox, a Blackbox fork, gained hippness status some years back the exact same way. Neat website, one or two nice little extras, screenshots, a well kempt miniblog and everybody went "Oh, look, new and shiny."
That's just about all there is to it. But don't you dare think good marketing isn't work and isn't worth giving as much thought as your projects software architecture. It's more work and - most of the time - even more important than that for the success of a project. Even in FOSS.
Good luck.
-
Re:A fractal of bad design
Again, your assumptions and guesswork about me are entirely unfounded (not that it should matter in considering Drupal):
1. I don't recommend or use WP very often, it's good for simple sites, and I've seen a few Drupal sites that could more easily have been done with WP.
2. I've fixed/maintained a few drupal sites and replaced one big underperforming drupal site (bad developer, compounded by bad usage of drupal IMHO) with rails, taking less than half the resources (CPU/RAM), and half the time to do the same job (500k uniques a year, no not willing to link). These direct comparisons have led me to my conclusion that it is not so much better than other frameworks, quite the reverse.
3. Don't let yourself assume I don't know what I'm talking about to avoid cognitive dissonance, I think I've clearly demonstrated I know the framework and am not some hobbyist WP advocate, and plenty of drupal or ex-drupal developers agree with me, see [1]A content neutral CMS is a *mistake* IMHO (nodes etc) - most CMS systems are tailored to the problem domain and rightly so. Not doing so leads to bad performance, inflexibility, complex db schemas, and ongoing problems with maintenance. Not many other frameworks try to do this the drupal way; instead a CMS should have pages, users, admin etc, and then you should build your own *domain specific* admin. See Django [2], Rails[3], Play[4] etc. Apparently the core developers have recognised serious problems with drupal even if you don't as they're ripping out the internals in v8 and starting again on many core components. I don't have confidence they'll do better then 8th time round, but YMMV. It's quite possible to build good websites with Drupal, but I think they could be built better, easier, and faster with most other frameworks, even ones which out of the box do far less. If you haven't I would honestly recommend trying one of those in my list and giving it a go to build a simple site just to compare (not another PHP one).
[1] http://benbuckman.net/drupal-excessive-complexity
[2] https://docs.djangoproject.com/en/1.5/topics/db/models/
[3] http://guides.rubyonrails.org/getting_started.html#getting-up-and-running-quickly-with-scaffolding
[4] http://www.playframework.com/documentation/1.0/guide7 -
Holy hard-sell !
What the hell, Soulskill?! After reading the lengthy self-aggrandizing pitch, I hovered over the links, half-expecting them to offer me cheap Nikes o handbags:
http://www.propublica.org/about/
http://slashdot.org/index2.pl?fhfilter= propublica
http://www.propublica.org/nerds/item/our-news-app-tech
http://www.propublica.org/nerds/item/propublicas-news-app-guides
http://www.propublica.org/tools/
http://www.propublica.org/nerds/item/how-to-edit-52000-stories-at-once
http://rubyonrails.org/
https://www.djangoproject.com/
http://www.nytimes.com/2012/06/29/us/cnn-and-foxs-supreme-court-mistake.htmlProPublica is a non-profit corporation, and is exempt from taxes under Section 501(c)(3).
Their public-awareness tactics sure don't look like it.
-
Re:It's always been obvious
For that matter where are the canned sites in Perl or Ruby or whatever?
http://rubyonrails.org/ IS the canned site in Ruby.
The problem is that while Ruby is a nice, reasonable language that's pleasant for both new coders and experienced coders, Rails has its very own learning curve on top of that. One need learn Rails configuration options, its database abstraction layer, the ins and out of Rails itself, and the ins and outs of a double-handful of 'gems' (read: 'plugins') for commonly used website features like authentication.
Now all that said, it's not a fun learning curve, but it's not exactly brutal, either. Once you get that mess down, you can 'throw up' a website in minutes...
...assuming you can find a webhost that supports rails. -
Re:PHP alternatives
Wait. What?
-
Re:What, what.
Hulu, among others: http://rubyonrails.org/applications
-
A Radical Challenge
You know, I first got started programming when I happened upon a left hand basic cartridge with an Atari 400 for $5 at a garage sale. It came with an attachable floppy disk drive that was DOA. Countless hours would be spent with a small black and white TV with me writing procedures. Should the power turn off, all that work was lost.
Despite growing up below the poverty line working on farms, I was able to go to college with enough grants based on need. This is where our paths diverge ... and I would not automatically assume that my four year degree at the University of Minnesota would make me a better programmer than yourself or anyone who taught themselves to code. But the important point of this is that when I interview (and I've held interviews for programmers to come onto my team many times) the interviewer is looking for you to prove that you will be a self motivated asset to the team. If you can put MIT or some prestigious school, they often lower their required threshold of proof. If you put U of MN there is still proof required -- after all there are some ~50k students at the U of MN and as such it would be entirely possible for some idiot to be herded through with the other cattle. So they just need to make sure I am not this idiot -- or at least not in the area they need me for. Now, when you have institution to back up your claim of skills, the proof requirement quickly becomes insurmountable.
So I will issue you a challenge and I will target the Ruby language and Rails framework. This probably isn't the best option for a job seeker (I think some Java with maybe Spring Framework would be better suited for a position) but this could result in proof. If you want reading material for any of these steps, I recommend the Pragmatic Programmer series on Ruby and Ruby on Rails (used it is quite cheap but here is a free alternative).
Step One: Learn Ruby. Ruby is a functional language that is very simple and easy to learn but difficult to completely master. The flexibility of the language seems to continually leave me with more and more options at my disposal. From mixins to domain specific languages, it just keeps on giving. I'm guessing with your background you're going to notice that some things in Ruby are slow. This is okay. As computers have gotten beefier, programmers have sacrificed performance and (to a large degree) memory in order to make code easier to maintain and write.
Step Two: Learn Rails. Rails is a very extensive framework that is again easy to learn. That tutorial should show you how to master concepts like quickly creating a CRUD (Create, Read, Update, Delete) application for a blog or recipes (I forget). From here you have to use your imagination. Make something that is CRUD or some mutation of CRUD to demonstrate that you know how to utilize and extend this concept. You might use census data and experiment with new UI toys like Processing or HTML5's Canvas element. I think if you have access to some mildly interesting data that building a site you'd like to share would be a great idea (even if it is just in CRUD format). But get it to a state where you're proud of it.
Step Three: Github. Put your source on Github.
Step Four: Host your project on Heroku. You might buy a domain name if you're open to $12/year. I don't know how far you want to take this part. But get it so that people can access it.
Now once you've iterated over that a bunch -
Rake + Capistrano
As GP, I use Rails migrations, and they work for most part. Unless you're changing some data in a batch, structural changes should be able to do / undo. Rake automations helps a lot http://api.rubyonrails.org/classes/ActiveRecord/Migration.html
But for SPs I'd create a separate file for each and add to SVN, then force my migration to recreate them every time.
I also find it handy to keep your dev / test / production databases up to date. Or at least a test one (with a sample data set), so you won't screw up badly if you mess up.
Altering production databases is great responsability!
-
Re:The documentation for Ruby on Rails is horrible
Excellent documentation, good official tutorials:
http://guides.rubyonrails.org/
One of the goals of rails 3 is indeed a solid public api.
In fact because of rails' goal to be more modular / customisable the public api is going to constitute the only communication between rails' components. -
Re:I think everyone would agree here...
Thus they have made no allowance for dropping back to raw SQL queries.
Ignoring your inaccurate remarks about the core Rails developers, do you care to expand on the above mentioned claim?
count_by_sql: http://api.rubyonrails.org/classes/ActiveRecord/Base.html#M002276
find_by_sql: http://api.rubyonrails.org/classes/ActiveRecord/Base.html#M002267
-
Re:I think everyone would agree here...
Thus they have made no allowance for dropping back to raw SQL queries.
Ignoring your inaccurate remarks about the core Rails developers, do you care to expand on the above mentioned claim?
count_by_sql: http://api.rubyonrails.org/classes/ActiveRecord/Base.html#M002276
find_by_sql: http://api.rubyonrails.org/classes/ActiveRecord/Base.html#M002267
-
Re:I think everyone would agree here...
I've never heard that Rails would make "programmers obsolete", in fact it seems to be the opposite; if you look at the official Rails site you'll notice that the biggest tag-line is "optimized for developer happiness".
Rails makes developers happier, not unemployed. What's more, anyone can write bad code in any language, so pointing to Twitter is hardly a conclusive argument. There are lots of big Rails sites out there, including Basecamp, the original Rails application.
For a better (and longer) write up on scaling Rails, I refer you to this article.
-
Re:Your input has been noted
That is pretty thin thinking. Oracle want the full software line up, from the operating system right through to the office quite, from personal users right through industry and into education and they want services and support. This is all about Oracle versus M$ and the hardware is secondary. Oracle big push will be in the educational market, a complete offering backend server systems to front end smart books. For business much the same idea, with the addition of either smart or dumb terminals in addition to the smart books.
The best place now for MySql is where it will most effectively be incorporated into OpenOffice for the individual users and small business. For the bigger end, it really is all about services and support upon a national or even global scale.
As for java http://www.ruby-lang.org/en/ is making an end run around it, not that java wont continue to have a very important place in programming but ruby and of course http://rubyonrails.org/ are really going to take a big bite out of java for the bulk of typical relatively simple web programming but if you are talking about
.net being squeezed into complete .nothingness you probably are totally correct. -
Re:Qt
he probibly ran into missing documentation on the stuff he wants. Among Open Source projects, this is often what seperates Django from Rails
... click on the links to see which one I think is better, or make your own judgment call. http://library.gnome.org/devel/gtkmm/unstable/ -
Re:Qt
he probibly ran into missing documentation on the stuff he wants. Among Open Source projects, this is often what seperates Django from Rails
... click on the links to see which one I think is better, or make your own judgment call. http://library.gnome.org/devel/gtkmm/unstable/ -
Re:heh
Since this isn't "in the box" with web app frameworks
Woah look what's in the box: Grails Guide: Pessimistic & Optimistic Locking
... that's a built in Hibernate feature common to all Java frameworks... for some reason I thought *all* frameworks had that baked in. Look Ruby on Rails has this too proving how AWESOME it is.What *lame* frameworks don't have this?
-
Re:Trademarks helps some of OSS best organisations
Except
... Rails. Rails is a trademark, so in theory we now need to write Rails(tm). Now I can understand the Ruby on Rails(tm) logo being trademarked, if you don't want it appropriated, but Hansson has gone a bit further.On the use of the logo he's said
So I only grant promotional use for products I'm directly involved with. Such as books that I've been part of the development process for or conferences where I have a say in the execution.
This steps out of protection and into control, he's been refusing to allow books to use the logo on their covers. He's even trademarked "Ruby on Rails", taking the name of something he didn't invent or write and using that as part of his mark;
"Rails", "Ruby on Rails", and the Rails logo are trademarks of David Heinemeier Hansson.
Want to have a Ruby on Rails(tm) conference? Better not include the name of the platform in your conference name then, that would be violating Hansson's trade mark. Even more "interesting" is the Ruby on Rails(tm) logo was a community effort (although the wiki pages for that are now gone. The original logo was even open source. The money to register the trademarks came from the community, but the marks are in the hands of Hansson alone.
It's not trademarks that are the problem, it's the person who controls them. If, for example, the Rails(tm) marks were overseen by a committee (made up, as a starting point, of everyone that helped pay for them) then that would be more acceptable than the current situation.
-
Re:Trademarks helps some of OSS best organisations
Except
... Rails. Rails is a trademark, so in theory we now need to write Rails(tm). Now I can understand the Ruby on Rails(tm) logo being trademarked, if you don't want it appropriated, but Hansson has gone a bit further.On the use of the logo he's said
So I only grant promotional use for products I'm directly involved with. Such as books that I've been part of the development process for or conferences where I have a say in the execution.
This steps out of protection and into control, he's been refusing to allow books to use the logo on their covers. He's even trademarked "Ruby on Rails", taking the name of something he didn't invent or write and using that as part of his mark;
"Rails", "Ruby on Rails", and the Rails logo are trademarks of David Heinemeier Hansson.
Want to have a Ruby on Rails(tm) conference? Better not include the name of the platform in your conference name then, that would be violating Hansson's trade mark. Even more "interesting" is the Ruby on Rails(tm) logo was a community effort (although the wiki pages for that are now gone. The original logo was even open source. The money to register the trademarks came from the community, but the marks are in the hands of Hansson alone.
It's not trademarks that are the problem, it's the person who controls them. If, for example, the Rails(tm) marks were overseen by a committee (made up, as a starting point, of everyone that helped pay for them) then that would be more acceptable than the current situation.
-
Re:Trademarks helps some of OSS best organisations
Except
... Rails. Rails is a trademark, so in theory we now need to write Rails(tm). Now I can understand the Ruby on Rails(tm) logo being trademarked, if you don't want it appropriated, but Hansson has gone a bit further.On the use of the logo he's said
So I only grant promotional use for products I'm directly involved with. Such as books that I've been part of the development process for or conferences where I have a say in the execution.
This steps out of protection and into control, he's been refusing to allow books to use the logo on their covers. He's even trademarked "Ruby on Rails", taking the name of something he didn't invent or write and using that as part of his mark;
"Rails", "Ruby on Rails", and the Rails logo are trademarks of David Heinemeier Hansson.
Want to have a Ruby on Rails(tm) conference? Better not include the name of the platform in your conference name then, that would be violating Hansson's trade mark. Even more "interesting" is the Ruby on Rails(tm) logo was a community effort (although the wiki pages for that are now gone. The original logo was even open source. The money to register the trademarks came from the community, but the marks are in the hands of Hansson alone.
It's not trademarks that are the problem, it's the person who controls them. If, for example, the Rails(tm) marks were overseen by a committee (made up, as a starting point, of everyone that helped pay for them) then that would be more acceptable than the current situation.
-
Re:Rails?
You sir, are correct.
-
Re:could this be any more of a rails knockoff?
God, you kids these days don't bother to learn any history what so ever. Always thinking the stuff you see today is 'new'. Do you realize that MVC was around before Ruby was even a stain in your panties?
And I don't mean they came up with the idea around the same time but someone else did it first, MVC is a principle thats been around since the 70s, a good 20 years before Ruby even existed, and 30 years before Ruby on Rails. Looking at the Rails development team, considering most of them were born AFTER MVC was coined, I think you should probaby get a bit of a history lesson in programing if you intend to continue making such retarded statements.
From wikipedia:
MVC was coined in 1979 ( http://en.wikipedia.org/wiki/Model-view-controller )
Ruby was first released in 1995 ( http://en.wikipedia.org/wiki/Ruby_(programming_language) )
Rails was first released in 2005 ( http://en.wikipedia.org/wiki/Ruby_on_Rails )
Author of Ruby, Mr Matsumoto as born in 1965 and was 14 when MVC was coined.
Most of the uthors of Ruby on Rails were born AFTER the term MVC was coined. ( http://rubyonrails.org/core )If you look at:
http://en.wikipedia.org/wiki/Model-view-controller
You'll see a long list of items, MANY of which were around long before rails existed.
Go ahead and throw in that it took someone else telling the rails development team that they were doing MVC concepts and your post becomes rather retarded. -
Re:84 hours?!?!
You've got a point, to an extent, I didn't make a list of successful rails deployments. Let's fix that with a list of successful rails apps:
-
Write Tests, Open Source, & use Rack
[test!]
A good test suite == "best practice to avoid digging custom holes you can't climb out of"
I work at a Rails shop too and, when I/we need to do something highly custom, we create it as a gem (or a Rails plugin) and post it somewhere incase someone else finds it useful. None of the plugins/gems I've released have required any maintenance to speak of, unless I've wanted to add additional features.
Be sure to write tests for your customizations (gem/plugin)! This will make it really easy to discover if your plugin no longer works for the next version of Rails/ActiveRecord/whatever it is you're extending.
[open source!]
If your changes might help other developers (they're not very, very specific to your product), open source them as a gem and let people know how to use it.
Not only can others benefit from your changes, but they can commit back too! Put the gem up on github[1], as it's the current de facto standard home for such things.
[rack it up!]
If you really need crazy performance out of Rails, look into using Rack[2]. Rails 2.3 (currently Rails Edge, will be released this month) *finally* uses Rack. Something like Rails Metal[3] makes it easy to return directly from Rack, letting you *highly* optimize certain requests. This is like rewriting some of your Ruby as C extensions to speed it up - Rack is really easy to use.
Good luck!
[1]: http://github.com/
[2]: http://rack.rubyforge.org/
[3]: http://weblog.rubyonrails.org/2008/12/17/introducing-rails-metal -
Re:N+1 problem
You're just wrong. Order.all is simply an alias for Order.find(:all), and as such and array of Orders - *not an associations*. (see http://api.rubyonrails.org/classes/ActiveRecord/Base.html#M001966). There's no N+1 problem here.
p.s. I just noticed the grandfather quotes code in the form Orders.find. This is clearly a sign the author isn't even used with basic Rails naming conventions.
-
RUBY ruby RUBY ruby RUBY!!!
I completely share your disappointment at Python's usage of indentation as syntax. I gave python a deep review when it appeared, around '97 or '98. I was fascinated by the concepts, I could see there was some important element of progress in it. But I concluded that I could never use the language because of the indentation problem. It was (and is) unacceptable that I would end up changing the logic of a program by inadvertently deleting an invisible tab. It is the duty of the editor to fix the right indentation of my code, and it is an invaluable debugging tool to press tab in my Emacs screen and find out what the right indentation should be. This is obviously impossible if it is the change of indentation itself that marks the end of a loop or of an if clause. Really really really impossible to adopt.
I had hopes that the Python developers would eventually give in and allow the (maybe facultative) usage of a reserved word for closing loops and clauses. This has not happened. Worse: it has become a matter of pride, a distinctive aspect of the language.
I went on with my mostly C with limited Java usage. Until in 2005 I decided to give Ruby a try. From that moment, all my projects have been written in Ruby, with substantial C inserts. After writing almost 100.000 lines of Ruby code, I am more awed than ever about the qualities of the language. It goes without saying that you use keywords to close loops and clauses in Ruby (either the end keyword, or C-like curly brackets, at your choice.)
A few reasons for giving Ruby a try:
- Ruby is from the same generation of Python, only newer. Same zeitgeist, better implementation.
- Ruby comes from Japan, where it is developed with typical pragmatic attitude. The language contains what is useful, often with more than one possible alternative (you can create your own distinctive style).
- Ruby implements the object-oriented paradigm in a full, no-compromise way, which is at last capable to deliver the results (in terms of ease of coding and adherence to thought processes) that were promised by the theoreticians.
- Ruby has a lean, very efficient way of including C code. it is really possible to have the best of both worlds. If you need to use a C library, it is easy to write your own bindings, provided they have not already been written by someone else.
- Ruby is very net-aware. Generic tasks can be implemented in a few lines of code.
You should take great care to distinguish between Ruby and Ruby on Rails. The first one is the language. The second one is an application based on the language. While it is obviously good that RoR gained such a notable momentum, it must be remembered that Ruby is a language as of itself, with great qualities that can be harvested even if one does not use RoR. I, for one, do not use RoR.
-
Very easy
Ruby On Rails has prevented this, by default, for almost a year:
http://api.rubyonrails.org/classes/ActionController/RequestForgeryProtection/ClassMethods.html
That not only prevents against the image hack, it also prevents against things like a hidden form in an iframe.
Granted, it's still possible for you to do stupid things with GET requests, and it's possible you could turn it off entirely. But it's pretty trivial to stay safe here.
And no, there's not really going to be a sane way for browsers to protect you from this, unless you've left on all the annoying "You are about to send data over the internet!!!1!one" warnings. This is really going to be up to site admins to fix.
-
Ruby
The official site is always a good bet. But I also make it a habit to memorize the url to the rdoc of whatever I'm doing:
ruby-doc.org/core
api.rubyonrails.orgBeyond that, it's more about the framework. For example:
ramaze.net
sequel.rubyforge.orgBeyond that, there's the source (and IRB + tab-completion), and for the really tough questions, the ruby-talk mailing list.
Can't really recommend the jQuery docs, as they're down half the time, the UI is lacking some critical features, and it doesn't seem to quite work in Konqueror. For a library claiming to be cross-browser, you should at least have your docs be cross-browser!
-
Re:Some of my picks
Ruby On Rails - http://rubyonrails.org/ obviously, but the interface to the library docs is rather unfriendly - try http://noobkit.com/ for something more pleasant to use.
-
SlashDot
-
Re:Documentation Sucks
It's not quite as bad as you make it out to be. It sounds like you are looking for the Rails API docs. These docs are also typically distributed with Rails AFAIK.
Additionally, there are several good books like the "Pickaxe" book (Which is an excellent starting point IMO) but they tend to be slightly outdated as Rails continues to evolve. -
*facepalm*
This breaks my brain, even for the normally stereotypically slow, stereotypically technology-shy government (though I will say that a lot of the Government of Canada sites work surprisingly well in my experience).
SQL queries IN THE QUERY STRING. Someone reading their FIRST BOOK on web development would know not to do that! And now God help the people who have been affected by this: try proving to the government that you're not a sexual offender when you're already on their list.
SQL injections. Learn them. Learn how to mitigate them (a PHP-specific example, but there are similar mitigation techniques for other languages). And I mean, hell, in a site like this (and especially with programmers apparently this bad), stored procedures might be the thing to implement. Or even better, use a framework like CakePHP, Rails, or Django with this sort of sanitation built into the queries it generates.
Ugh. I hope someone gets fired for this. I bet, though, that in reality this was programmed by the lowest bidder. -
Re:Good old RubyOnRails
You make some good points about Rails's flaws, although I'd argue that many of them are related to ORM in general and have less to do with ActiveRecord's implementation than the concept as a whole. Your mention of "interpreted" gives me pause, as it almost sounds like you're arguing that interpreted languages are inherently flawed. I'm not say that's what you're saying, but I think you can see how that could be, well, interpreted.
Of the things you pointed out, I'll candidly say that Rails deployment is perhaps the area where it is most apparent that in the grand scheme of things Rails is still something of a baby. It has (arguably) matured fairly rapidly, but there are certainly areas where there is still room for improvement. Given the sheer bullishness of the core team I'd like to think we're going to continue to make significant progress in this regard. One of the biggest problems Rails faces today is deployment in shared hosting environments, but to say it can't scale is simply false.
As I've noted in prior comments, your problem with Rails has far more to do with some of the people who use it and less with the code itself.
-
Re:still waiting to use it...
Yes, but as far as I know, RoR is the main package people use for Ruby, versus Python which has 5-6 packages that I know of.
I suggested at least that many alternatives for Ruby, and there are more. You don't base all your decisions on how popular or well marketed something is, do you?
Part of the reason for this is that Ruby's language has some unique features that make it favorable to RoR's style
Perhaps, but it's also perfectly favourable to various other "styles". Metaprogramming is quite a general tool, as you might have guessed
;)I was assuming that most readers would be smart enough to figure out I meant the standard way you do things in PHP or Python
It's akin to calling PHP development Cake. Names of frameworks are not interchangable with generic terms for web development in a language, and I assumed you'd be smart enough to recognise that. I've used Ruby for 8 years, and I certainly don't equate Rails with the One True Way of doing web development in it. I might end at it for some things, but I certainly don't start there.
There's plenty of sites I'm interested in making that actually have no database whatsoever. Because that's RoR's, I would assume it's not going to help me much.
Like I said; you may not have a database, but you probbaly have data you want to serve dynamically in some way? Much of the advantage Rails provides is a convention for how to interact with that data, with ActiveRecord being the de-facto example, but, for example there's also ActiveResource which talks to web services instead of directly to a database; if you don't want a database, you just fill in the "M" part of MVC with a layer that talks to something else, and try to stick with the conventions to keep the interface Rails-alike. Maybe you'll make find() work off flat files, and put more complex queries through Ferret. Maybe you'll just store it in an object temporarily and use validations to help sanitize your data and drive your forms.
Or, again, if that's all a bit overkill or otherwise a poor fit for your applications, use a different framework, or none at all.By going back, I didn't mean revision control. I meant changes in the structure of the code (you might have heard of refactoring?) or even the database.
The structure's defined by things like your class definition and routing configuration: generating a controller or model basically makes "class FooController < ApplicationController;end" in the right place, plus helpers for your views and templates for testing. You're generally not generating scary big fragile chunks of code; if you want to rename something, do so, it's not magic. The point of metaprogramming is that you can be agile with these changes without you having to generate and maintain reams of static code.
Database wise, the models are mostly driven by what the database looks like; you add a column to the database (probably using a migration) and your models automagically notice. Renaming a model can be done without renaming the table, and vice versa, and you can make renames less painful by mapping old names to new trivially. Either way, the code generation helps you because it's mostly done dynamically via metaprogramming based on the code you wrote, not statically based on your script/generate commands like, e.g. the C++ GUI generators you might be familiar with.
But again, even that level of code generation might be overkill, and if having lots of files dotted about feels wrong when you really just want one or two modest .rb's for a small application, something like Ramaze, Rack or even Campin -
Re:still waiting to use it...
Yes, but as far as I know, RoR is the main package people use for Ruby, versus Python which has 5-6 packages that I know of.
I suggested at least that many alternatives for Ruby, and there are more. You don't base all your decisions on how popular or well marketed something is, do you?
Part of the reason for this is that Ruby's language has some unique features that make it favorable to RoR's style
Perhaps, but it's also perfectly favourable to various other "styles". Metaprogramming is quite a general tool, as you might have guessed
;)I was assuming that most readers would be smart enough to figure out I meant the standard way you do things in PHP or Python
It's akin to calling PHP development Cake. Names of frameworks are not interchangable with generic terms for web development in a language, and I assumed you'd be smart enough to recognise that. I've used Ruby for 8 years, and I certainly don't equate Rails with the One True Way of doing web development in it. I might end at it for some things, but I certainly don't start there.
There's plenty of sites I'm interested in making that actually have no database whatsoever. Because that's RoR's, I would assume it's not going to help me much.
Like I said; you may not have a database, but you probbaly have data you want to serve dynamically in some way? Much of the advantage Rails provides is a convention for how to interact with that data, with ActiveRecord being the de-facto example, but, for example there's also ActiveResource which talks to web services instead of directly to a database; if you don't want a database, you just fill in the "M" part of MVC with a layer that talks to something else, and try to stick with the conventions to keep the interface Rails-alike. Maybe you'll make find() work off flat files, and put more complex queries through Ferret. Maybe you'll just store it in an object temporarily and use validations to help sanitize your data and drive your forms.
Or, again, if that's all a bit overkill or otherwise a poor fit for your applications, use a different framework, or none at all.By going back, I didn't mean revision control. I meant changes in the structure of the code (you might have heard of refactoring?) or even the database.
The structure's defined by things like your class definition and routing configuration: generating a controller or model basically makes "class FooController < ApplicationController;end" in the right place, plus helpers for your views and templates for testing. You're generally not generating scary big fragile chunks of code; if you want to rename something, do so, it's not magic. The point of metaprogramming is that you can be agile with these changes without you having to generate and maintain reams of static code.
Database wise, the models are mostly driven by what the database looks like; you add a column to the database (probably using a migration) and your models automagically notice. Renaming a model can be done without renaming the table, and vice versa, and you can make renames less painful by mapping old names to new trivially. Either way, the code generation helps you because it's mostly done dynamically via metaprogramming based on the code you wrote, not statically based on your script/generate commands like, e.g. the C++ GUI generators you might be familiar with.
But again, even that level of code generation might be overkill, and if having lots of files dotted about feels wrong when you really just want one or two modest .rb's for a small application, something like Ramaze, Rack or even Campin -
Netcraft confirms it: you're wrong
You can still spot what they are running on Netcraft
Yes, I can. And when I do, I find that contrary to your claims, neither the Ruby language site (which is www.ruby-lang.org, not www.ruby.com) nor 43things.com is running PHP. Rubyonrails.(org/com) is. www.ruby.com doesn't show PHP on Netcraft either, but isn't really relevant to the Ruby programming language in the first place.and ask them why they are running PHP and they will tell you; they have responded in the past to such inquiries with what I am telling you.
Where? Here's DHH's explanation for Rubyonrails.org's use of PHP (from the rubyonrails.org blog:PHP, because its a great language for small degrees of dynamic elements. Like, say, including a static footer and header, which is what we use it for here. Firing up Rails to do something so simple just because you think it'll impress people with a single track of all or nothing would have been the nut case way to go.
Just because we love and build Rails, doesn't mean we don't appreciate or use other technologies when they're appropriate. Apart from the performance problems with Trac, we love that too. Even though its, gulp, built in Python! Yeah, I know, I can barely contain the drama either.
Strangely, no mention of using PHP for "scaling", which you claim is the motivation and the explanation that "they" give. So, out of the three Ruby-related sites you claim say they are using PHP for scaling that somehow prove that Ruby can't scale, one isn't the site you seem to think it is, 2 aren't (whether you check the site you give the address for or the actual site you seem to think that address refers to) using PHP based on the source you claim confirms that they are, and the one that is using PHP doesn't explain that use with the explanation you say they give.
It would be hard for you to be more wrong about this. -
Re:I guess they didn't fix the scalability issues
One might now be tempted to attack Rails for using PHP. Keep in mind that rubyonrails.org is a simple and "dumb" website with only some static content (except the blog). For that kind of small stuff, PHP is best.
In that case, was the infamous screencast where David slams out a Ruby on Rails weblog in 15 minutes inaccurate, pointless, or both?
-
37Signals does not belong on that list
Jive, SugarCRM, and Novell are all companies that are built around products that are open source. While 37Signals has released an application framework as open source, their applications, like Backpack, Basecamp, and Highrise are not open source. 37Signals is a great company with really good products, but I don't think they are the sort of company that Ballmer was referring to.
-
What a false dichotomy!
I've now written two large business applications in Rails. I did the UML modelling first. Then I wrote a fully constrained RDBMS schema, normalised to 3NF, using the Rails naming conventions. Then I wrote the Rails app on top of the rigorously constrained database.
If you want multi-key uniqueness constraints, just define it in your database already! Why do you think Rails prevents you from configuring your database layer?
When I need to do transactions, I use Rails' full support for transactions. There, that wasn't so difficult, was it?
I let Rails save me hours of backbreaking labour writing conventional SQL queries. Then I use the completed application, identify the query bottlenecks (thanks to Rails' built-in profiling) and re-write the slowest of the dumb auto-created SQL using hand-written SQL, which I can get to using find_by_sql, finder_sql, etc. Rails lets you put your own SQL into the application almost anywhere. -
Re:Article doesn't make sense
Rails is to Ruby as Symfony is to PHP. I've tried Symfony myself and real had a hard time getting my head around it, likewise I'd probably have the same problem with RoR only worse because I'm more attuned to PHP or Perl, I do find that by using the Smarty templateing engine and MDB2 Database API that what I'm working on has shrunk dramatically and is much easier to understand. There are several Perl equivalents on CPAN, that are probably more reliable and mature than the PEAR equivalents in PHP, I assume that the only reason they aren't used more is because embperl is more arcane to use than PHP.
-
Re:Excuse me, you didnt have to attempt it to knowRails was a 'framework' built on php What??
-
blazing new ground here, man
-
ActiveRecord and my web framework
OK, I've looked up ActiveRecord now. What I am doing is similar but a bit more sophisticated, in that it can put together parent and child records into a single object. Also that it can generate the whole site this way, although you may want to add in some of your own code if you want/need.
-
Re:The more I learn about JavaScript...That's not compile time, that's IDE time. In which case, you can use Eclipse for Javascript. But it works by compiling while you're typing. I don't see how a Javascript plugin for Eclipse can give you the same benefits you get in Java without static type information. I went to the home page for Aptana and it seems like it has built-in knowledge for standardized things like CSS properties, but not the code you are writing. I never really found types useful, just one more thing I had to keep track of -- kind of like memory management. I find this hard to believe. I've seen enough dynamically written code to know that the types are there, but latent. For example, if a method takes a "foo" argument, the method is written with knowledge of what a foo is. Look at the API for something like Ruby on Rails. It's chock full of types, and if you're calling some method you'll want to know the types of arguments it expects. So you'll have to infer it by the name, documentation, or reading the implementation. With Java and Eclipse I can find out what I need to know with a simple click.
As for your comparison to garbage collection, I'm glad you made that analogy. The garbage collector is keeping track of memory for you, and you say "It's just nice to be able to work in a garbage-collected language." And I say it's nice when the compiler keeps track of types for me! That's why I get immediate error detection while I'm typing, code completion, and hyperlinks to code and documentation.
Now, Java's implementation of static typing is incredibly verbose and tedious. But there are much better statically typed systems that infer the type for you, so you don't have to write it out all the time. -
Re:Mongrel is a web server
I certainly agree with the parent poster, I've installed Rails many times on Linux and it's never been more complex than a simple "apt-get install rails".
A similar product to Instant Rails, but for OS X is Locomotive, a simple, GUI-based way of getting Rails up and running in that environment... one executable, no hassle. Also for OS X, the definitive tutorial for building and installing from source is certainly the one at HiveLogic. I've used this tutorial as well, as installing it from the packages can be a little tricky on OS X 10.4, because it ships with a broken Ruby installation. Good news though, Leopard (10.5) will come with Rails installed by default.
-
Re:Wow, I didn't know that Ruby could do that!
See, the difference between my post and yours is that I'm actually right. I suppose that's what's bothered you into turning my post into a canned troll, you're a fanboy and you felt personally insulted. I'm glad. I intend to insult you further, in fact. Only because you've made it so easy for me.
Being that you're obviously uneducated and malicious, I'll do my best to try and inform others, as I doubt you have the cognitive capacity to make sense of factual information:
1) Your claim is that Python is a primitive and feature-incomplete language, which is -true- of Ruby. Perl might be feature-complete if 6 ever comes out...keep holding the faith, eh? I'm guessing we'll be replacing the Linux kernel with HURD before that happens. Great OOP and functional programming features, libraries for everything from advanced math functions to graphics display (many of which are included in the standard library, as opposed to having to pull it down from CPAN).
2) easy_install doesn't come with Perl. That's certainly true, it's a python program. Perl has CPAN, which pretty much does the same thing. Not so much of a lie as pointing out the obviousness of your canned troll.
3) Yes, many of the points that I made about Python can also be made about Perl. But some of them can't, and that's where your argument falls apart again. Example: Turbogears (www.turbogears.org), a project similar to Rails that brings together a number of mature, web-development related projects together as one product. Cell phones that are capable of running Python are technically capable of executing a web-server on said cell phone if they wished.
Can the same be said for perl? Maybe. Search for "perl embedded cell phone" on Google. You'll get a few million results, but none of them will be a cell phone that runs perl as an embedded language. What do you get when you do a similar search for python? http://www.artima.com/weblogs/viewpost.jsp?thread= 148064 (which for those of you who don't care to read, is an author reviewing Python as used on a Nokia cellphone).
4) The statement that Python has difficulty with internationalization support is patently false, anyone who cares to point their browsers at www.python.net may verify that for themselves. This is the process involved in creating a unicode string in python:
unicode_string = u"Test."
What does the Ruby on Rails wiki have to say about internationalization support (which is fully offered in Turbogears by the way)?
http://wiki.rubyonrails.org/rails/pages/Internatio nalization
First paragraph of the page: "Rails currently doesn't offer any explicit support for internalization."
Well, there you have it. You're obviously wrong, you obviously attempted a canned troll, and you obviously failed. Not that I expected a great deal from a pale and overweight man who lives a secret life from his children trolling on Slashdot. If you can really call that a life. I wonder what they'd all think of you if they knew you were acting like an angry pre-teen online? Think they would still respect their father with that knowledge? Do they even respect you now?
I don't intend to reply to your messages any further, as it's obvious that's exactly what you want...attention. Maybe because you don't get enough of it in real life -- the frustration brings you here to troll like a little boy having a temper tantrum. Well guess what? You're not a little boy, you're a man...or at least you would be if you weren't acting like such a dipshit. Grow up.