That was a good read, thanks for the pointer. Though as one fellow pointed out, Java seems to have survived the lack of a mod_java. And mod_proxy_balancer + mongrel seems to be doing the trick for most folks. You're right, good comment thread on that one... thanks.
> One of the big things that worries me is that there are a lot of > files generated. That scares me. What if I made a mistake at > the beginning? Is it easy to go back? Do I need to start from scratch?
Yup. Most of the files that are generated are just enough to get you started. For example, generating a simple "person" model class gets you this:
$ ruby script/generate model person name:string birthday:date [... some output... ] $ cat app/models/person.rb class Person < ActiveRecord::Base end
You can add methods to this file as you see fit. And the outline of a test class - a fine practice to get into - is generated as well:
require File.dirname(__FILE__) + '/../test_helper' class PersonTest < ActiveSupport::TestCase
# Replace this with your real tests.
def test_truth
assert true
end end
They're just scaffolding to eliminate some unnecessary typing. Enjoy!
> A truly relevant shared agent would filter out all ads and click-through trap sites, > and totally mess up the dynamic of the ad-supported Internet.
Sounds like the Firefox plugin "adblock", which works wonders. Blocking ads is apparently also considered stealing by some... huh. That's a tough sell.
> We are nowhere near multi-core programming being a no-brainer.
You got modded down as flamebait for some unknown reason... but you are exactly correct. As you say later in your post, lightweight processes are how folks are scaling these days. Ruby on Rails is a success for many reasons, but one of them is a single-threaded model that is just scaled horizontally.
> FOP - Use XSL-FO to design printable page layouts in XML, > then use FOP to transform them to PDF documents.
Right on. I used Docbook + FOP to write my JavaCC book; FOP held up fine for most things. It had some problems with (as I recall) callouts and footnotes, though, so, I did the final version with AltSoft's XML2PDF.
Speaking of which, if you're writing a lot of DocBook, Bob Stayton's Docbook XSL is indispensible. I bought the third edition and you can tell that he monitors the mailing list closely; he answers a lot of common questions.
Over on Linux, my perception is that FastCGI enjoyed a brief reawakening as it was (for a while) _the_ way to deploy Ruby on Rails apps with Apache. But now that seems to have changed to over to using Apache + mod_proxy_balancer + Mongrel.
One nice thing about mod_proxy_balancer is that it's easy to distribute the Mongrels across a couple of machines... and Apache will take them out of the loop if the machine goes down or they become unresponsive or whatever. Works for us, anyhow....
> In the United Kingdom, more are killed in road traffic > accidents in a couple of weeks than were in the July 7th bombings.
Yes, but, at the risk of stating the obvious, there's a big difference between dying in an car accident and being killed by someone who blows up a train. You may as well console someone who gets mugged by saying "well, you know, people accidentally lose money every day." It's not relevant to the incident.
> To use Ruby productively, you have to learn to > take advantage of the dynamic typing.
So true. I translated a bunch of little artificial intelligence example programs when I was first learning Ruby and now when I look back at that code there's a lot of stuff I'd do differently. Even little idioms like using x = [] vs x = Array.new... I was a Java/C guy doing Ruby, and it showed.
> Elite had hundreds of systems on something like four galactic > maps, but it wasn't infinitely generated.
Yup, I think the trick was that it was generated with fractals, which was why they could have so many systems and planets and such in 16K of memory.
There's a little blurb about Elite in the preface of Infinite Game Universe; it's kind of funny when it says something to the effect of "a DOOM WAD file can be as large as 2MB"! Now we can generate those same WAD files with interpreted scripting languages, and a 2 MB download takes a few seconds...
...but it's interesting to see Stu Halloway's thoughts on design patterns. I heard that he once gave a talk where he said something to the effect of "The 'Design Patterns' book should have been named 'Ways to Work Around C++ Language Limitations'".
> the Ruby web sites are so completely littered with dead > projects, projects that have never released code, and > so on, not to mention rampant wheel-reinvention.
That's just the nature of open source. It takes a minute to start an open source project in Ruby or any other language - and neglecting that project take even less time.:-)
That said, if anyone has a dead project on RubyForge, put in a support request to have it deleted; keep things tidy! And I posted some notes on cleaning up live projects too. Good times.
> RAILS makes it easy to develop in but it's achilles heel it's > still it's scalability; and it has a problem scaling due > to the way it's architectured.
> I used to run ship fire simulations, with actual fire and > smoke in a building setup for this type of deal when I was in the Navy.
We did the same thing in the Coast Guard in boarding officer school. We'd go into a ship's hold armed with pistols and blanks, with hidden cameras everywhere and an instructor playing the role of drug runner. It was very effective - dark, quiet, and you never knew where the guy would pop out from. Add to that the fact that he had the tactical advantage since we had to approach shouting variants on "This is the Coast Guard, come on out of there!" and it was a pretty tense experience. We'd do the debrief and everyone would be sweating bullets... good time.
> I will fly in helos into the eye of the storm to rescue > people dumber then rocks, and then be heckled by the same > people when I bust them for transporting drugs two months later.
If only it had been that exciting! I spent my CG career checking EPIRBs, counting rockfish, and filling out boarding reports. And spending money on barcode equipment no one used. Ah well. But, the gunnery exercises were fun!
> Very true. Rails has deployment issues. See here,
> and especially read the comments:
> http://www.rubyinside.com/no-true-mod_ruby-is-damaging-rubys-viability-on-the-web-693.html [rubyinside.com]
That was a good read, thanks for the pointer. Though as one fellow pointed out, Java seems to have survived the lack of a mod_java. And mod_proxy_balancer + mongrel seems to be doing the trick for most folks. You're right, good comment thread on that one... thanks.
> files generated. That scares me. What if I made a mistake at
> the beginning? Is it easy to go back? Do I need to start from scratch?
Yup. Most of the files that are generated are just enough to get you started. For example, generating a simple "person" model class gets you this: You can add methods to this file as you see fit. And the outline of a test class - a fine practice to get into - is generated as well: They're just scaffolding to eliminate some unnecessary typing. Enjoy!
From the article:
> A truly relevant shared agent would filter out all ads and click-through trap sites,
> and totally mess up the dynamic of the ad-supported Internet.
Sounds like the Firefox plugin "adblock", which works wonders. Blocking ads is apparently also considered stealing by some... huh. That's a tough sell.
> We are nowhere near multi-core programming being a no-brainer.
You got modded down as flamebait for some unknown reason... but you are exactly correct. As you say later in your post, lightweight processes are how folks are scaling these days. Ruby on Rails is a success for many reasons, but one of them is a single-threaded model that is just scaled horizontally.
....they earn money from conferences and such and then turn that into grants and community hardware. Good times.
And yup, the grant PDF file is missing, I've emailed them about it.
> FOP - Use XSL-FO to design printable page layouts in XML,
> then use FOP to transform them to PDF documents.
Right on. I used Docbook + FOP to write my JavaCC book; FOP held up fine for most things. It had some problems with (as I recall) callouts and footnotes, though, so, I did the final version with AltSoft's XML2PDF.
Speaking of which, if you're writing a lot of DocBook, Bob Stayton's Docbook XSL is indispensible. I bought the third edition and you can tell that he monitors the mailing list closely; he answers a lot of common questions.
Over on Linux, my perception is that FastCGI enjoyed a brief reawakening as it was (for a while) _the_ way to deploy Ruby on Rails apps with Apache. But now that seems to have changed to over to using Apache + mod_proxy_balancer + Mongrel.
One nice thing about mod_proxy_balancer is that it's easy to distribute the Mongrels across a couple of machines... and Apache will take them out of the loop if the machine goes down or they become unresponsive or whatever. Works for us, anyhow....
> I wonder how much orphaned legacy Delphi code
> there is out there looking for a support route.
Here's an option - a Java to Delphi converter (in the second paragraph).
Argh, yeah, I did... and you're right, the code is still there. Serves me right for posting immediately....
....is on PostgreSQL. Good stuff!
> In the United Kingdom, more are killed in road traffic
> accidents in a couple of weeks than were in the July 7th bombings.
Yes, but, at the risk of stating the obvious, there's a big difference between dying in an car accident and being killed by someone who blows up a train. You may as well console someone who gets mugged by saying "well, you know, people accidentally lose money every day." It's not relevant to the incident.
> To use Ruby productively, you have to learn to
> take advantage of the dynamic typing.
So true. I translated a bunch of little artificial intelligence example programs when I was first learning Ruby and now when I look back at that code there's a lot of stuff I'd do differently. Even little idioms like using x = [] vs x = Array.new... I was a Java/C guy doing Ruby, and it showed.
> Want to show somebody a video or a picture you
> posted to your profile? They have to have an account.
Yup, but that's an enabler, too. For example, you can have an app that allows for conversations to develop around a video. Rather nice.
Disclaimer: I helped work on that one, tech details here.
> Elite had hundreds of systems on something like four galactic
> maps, but it wasn't infinitely generated.
Yup, I think the trick was that it was generated with fractals, which was why they could have so many systems and planets and such in 16K of memory.
There's a little blurb about Elite in the preface of Infinite Game Universe; it's kind of funny when it says something to the effect of "a DOOM WAD file can be as large as 2MB"! Now we can generate those same WAD files with interpreted scripting languages, and a 2 MB download takes a few seconds...
...that is, this game which had an "infinite" universe. The book Infinite Game Universe has some good discussions of this sort of thing, too.
...but it's interesting to see Stu Halloway's thoughts on design patterns. I heard that he once gave a talk where he said something to the effect of "The 'Design Patterns' book should have been named 'Ways to Work Around C++ Language Limitations'".
> Java 6 and Java 7 are relatively minor changes.
Language-wise Java 1.6 doesn't include any changes; check out the docs for the -source option for javac.
> Installing Ruby on an Apache web server and getting it to work properly.
The trick here is using Apache 2.2 + mod_proxy + Mongrel. The Mongrel book is well worth the $15, too.
> the Ruby web sites are so completely littered with dead
:-)
> projects, projects that have never released code, and
> so on, not to mention rampant wheel-reinvention.
That's just the nature of open source. It takes a minute to start an open source project in Ruby or any other language - and neglecting that project take even less time.
That said, if anyone has a dead project on RubyForge, put in a support request to have it deleted; keep things tidy! And I posted some notes on cleaning up live projects too. Good times.
> RAILS makes it easy to develop in but it's achilles heel it's
> still it's scalability; and it has a problem scaling due
> to the way it's architectured.
Nah. We use it on thenewsroom.com; it's yet another Rails success story.
> I used to run ship fire simulations, with actual fire and
> smoke in a building setup for this type of deal when I was in the Navy.
We did the same thing in the Coast Guard in boarding officer school. We'd go into a ship's hold armed with pistols and blanks, with hidden cameras everywhere and an instructor playing the role of drug runner. It was very effective - dark, quiet, and you never knew where the guy would pop out from. Add to that the fact that he had the tactical advantage since we had to approach shouting variants on "This is the Coast Guard, come on out of there!" and it was a pretty tense experience. We'd do the debrief and everyone would be sweating bullets... good time.
CGA 94, baby!
> I will fly in helos into the eye of the storm to rescue
> people dumber then rocks, and then be heckled by the same
> people when I bust them for transporting drugs two months later.
If only it had been that exciting! I spent my CG career checking EPIRBs, counting rockfish, and filling out boarding reports. And spending money on barcode equipment no one used. Ah well. But, the gunnery exercises were fun!
...at least, the fellows at CGA are looking into using Linux for Coast Guard systems. Coast Guard, the armed service that works for a living!
... the actual press release, including the estimated price - $600-$700.
...that is:
> The fire blazed for about 50 minutes before the
> Kansas City Fire Department put it out because Wayne
> didn't have a permit for burning.
So, Bob's your uncle.