A Ruby appliance: What would you include?

P

Phillip Gawlowski

Hello, list!

This is, of sorts, a cross post of an idea that lodged itself in my head
pretty firmly. ;)

As part of scratching an itch (gain access to a *NIX environment for my
Ruby work), I've setup an Ubuntu VM.

So, I got thinking: Why not offer this to the community as a tool, and
why not include the community in creating the best possible Ruby
environment?

================= cut at this line ====================================
A Ruby Appliance

What is an "Appliance"?

In this context, an appliance is a ready-to-run virtual machine. No set
up to speak of required.


But why? Isn’t it easy to install Ruby wherever you like?

That is very true.

However, the Ruby ecosystem is very *NIX centric. Not everyone has the
luxury, or time or ability, to setup and maintain a UNIX-like operating
system.

Virtualization and thus appliances turn operating systems into just
another kind of program. They reduce the risk of using a different
operating system. Further, not everyone using Ruby wants to, or can, dig
through C extensions to make them work on their operating system of
choice. The hurdles as a Windows user are too high in most cases.

An appliance makes it easier to setup test environments, so they are
great for seasoned developers, as well!

You can start with a clean slate, only Ruby, RubyGems, and a compiler
tool chain are installed, and you can easily revert to this blank slate
at the push of a button. With the different networking tools in today’s
VM tools, you can even test network deployment of Rails applications.

So here is my proposal:

To create the best possible Ruby appliance and experience, I want to
know which Gems and tools the Ruby community sees as essential to make
life as a Rubyist easier.

Submit your ideas, and the Ruby Appliance will benefit and with that,
all of the Ruby community.
 
P

Phillip Gawlowski

Hello, list!

This is, of sorts, a cross post of an idea that lodged itself in my head
pretty firmly. ;)

What do you get when you try to pull off a simultaneous post?

Mistakes, is what.

Here's the link to my blog post:
http://blog.thimian.com/2009/12/29/a-ruby-appliance/

Feel free to leave comments either on the mailing list, contact me off
list, or leave a comment on my blog.

If interest is high enough or the project advances beyond personal itch
scratching, I'll see about getting a collaboration site going. :)


My apologies for this oversight.
 
P

Phillip Gawlowski

Are comments moderated?
Nope.

I did not see any hints in that direction but
my comment did not show up immediately either.

It got caught as spam by Askimet. I fixed that. :)
 
P

Phillip Gawlowski

Bummer. Thanks for the "fix"! :)

No problem.
If you are going to collect stats on what is used maybe you could set
up a form via Google Docs which collects usage of editors and other
tools.

It's an idea.

And I seem to remember a Ruby "metrics" project from a long, long time
ago (two years, or so), which aimed to collect Gems usage.

Hm, seems to have been folded into Gemcutter. Which provides "top
downloads", but thanks to Rails, that statistic is next to pointless. ;)

Time to write an email or three, methinks.
 
A

Aldric Giacomoni

Phillip said:
Hello, list!

This is, of sorts, a cross post of an idea that lodged itself in my head
pretty firmly. ;)

As part of scratching an itch (gain access to a *NIX environment for my
Ruby work), I've setup an Ubuntu VM.

So, I got thinking: Why not offer this to the community as a tool, and
why not include the community in creating the best possible Ruby
environment?

VMWare allows "teams" of virtual machines, which can be set up in their
own little network. It's something to think about, especially now that
VMWare Player is available for free and all.

I don't know if Ubuntu is a good choice though. It's a can of worms, so
I don't really want to open it, but I suggest Gentoo: it has a tool
available to switch painlessly between Ruby 1.8 and 1.9, which allows
for any and all setup on editors and such to be simple and just link to
#!/usr/bin/ruby ... For instance.

You'll definitely need to include emacs and vim, along with the
appropriate plugins, and probably Netbeans/Aptana, so people can check
out different ways of developing.

Sticking a bunch of tutorials on a folder on the desktop would be a good
idea as well.


As a tool, this could come in very handy.
 
R

Robert Klemme

2009/12/29 Aldric Giacomoni said:
VMWare allows "teams" of virtual machines, which can be set up in their
own little network. It's something to think about, especially now that
VMWare Player is available for free and all.

The "team concpet" is interesting news. Thanks for that! Btw, I
always use VMWare Server which is free as well but allows to create
VMs (which VMWare Player prohibits AFAIK).
I don't know if Ubuntu is a good choice though. It's a can of worms, so
I don't really want to open it, but I suggest Gentoo: it has a tool

I find Ubuntu pretty good as desktop environment.
available to switch painlessly between Ruby 1.8 and 1.9, which allows
for any and all setup on editors and such to be simple and just link to
#!/usr/bin/ruby ... For instance.

Hm... I prefer explicit naming particular versions having
/usr/bin/ruby change might lead to bad effects especially in the area
where syntax or semantics have change between 1.8 and 1.9.
You'll definitely need to include emacs and vim, along with the
appropriate plugins, and probably Netbeans/Aptana, so people can check
out different ways of developing.

And maybe Eclipse although I do not know how good the current version
is and what the license permits.
Sticking a bunch of tutorials on a folder on the desktop would be a good
idea as well.

Very good idea! Tutorials could even be a mix of local resources and web links.

Kind regards

robert


PS: There you have it: three people and at least five opinions on what
platform and which editor to include... :)))
 
D

David Masover

I suggest Gentoo: it has a tool
available to switch painlessly between Ruby 1.8 and 1.9, which allows
for any and all setup on editors and such to be simple and just link to
#!/usr/bin/ruby ... For instance.

That would imply you can't have both 1.8 and 1.9 programs running
simultaneously. Ubuntu installs 1.9 as /usr/bin/ruby1.9.

Also, most programs that are actually meant to run standalone will have
#!/usr/bin/env ruby, which means you can simply change your path to switch
interpreters.
 
A

Aldric Giacomoni

Robert said:
Hm... I prefer explicit naming particular versions having
/usr/bin/ruby change might lead to bad effects especially in the area
where syntax or semantics have change between 1.8 and 1.9.

That is a valid point; if it is to be a sandbox, then Ubuntu's behavior
is probably more suited.
PS: There you have it: three people and at least five opinions on what
platform and which editor to include... :)))

The smallest Ubuntu config with a GUI will be, I think, a few hundred
megabytes. A few apps more or less won't make too much of a difference!
Have we started arguing on which desktop environment / window manager we
wanted yet? *grins* I'll be quiet! Ubuntu Netbook Remix does have a
pretty nice and simplified desktop environment (still GNOME) which may
be worth looking into.
 
A

Aldric Giacomoni

David said:
That would imply you can't have both 1.8 and 1.9 programs running
simultaneously. Ubuntu installs 1.9 as /usr/bin/ruby1.9.

Also, most programs that are actually meant to run standalone will have
#!/usr/bin/env ruby, which means you can simply change your path to
switch
interpreters.

Actually, you can, but you have to explicitly choose. I don't recall off
the top of my head, as I haven't looked in quite a while, but I believe
that Gentoo installs /usr/bin/ruby18 and /usr/bin/ruby19 (as well as
gem18 and gem19), and just toggles the /usr/bin/ruby symlink.
 
P

Phillip Gawlowski

VMWare allows "teams" of virtual machines, which can be set up in their
own little network. It's something to think about, especially now that
VMWare Player is available for free and all.

That's called "[host|internal] networking", and is pretty basic for
virtualization.

Also: Only VMWare Workstation allows creation of appliances, and I don't
have the 500 bucks to spare.

Also, VirtualBox is free, and available for Linux, Windows, and Mac OS
X. And it supports the open standard from VM description, so VMware
should at least be able to import it, and I expect KVM and Xen are able
to handel the format as well, if that should ever be necessary.
I don't know if Ubuntu is a good choice though. It's a can of worms, so
I don't really want to open it, but I suggest Gentoo: it has a tool
available to switch painlessly between Ruby 1.8 and 1.9, which allows
for any and all setup on editors and such to be simple and just link to
#!/usr/bin/ruby ... For instance.

Ubuntu has one big, big benefit: It's being used. Widespread. Finding
support for Ubuntu is easier than for Gentoo, and nobody has to mess
with compile flags to get an "emerge world" working. ;)
Sticking a bunch of tutorials on a folder on the desktop would be a good
idea as well.

So, you are volunteering? ;)
As a tool, this could come in very handy.

That's the plan. :)
 
R

Robert Klemme

2009/12/29 Phillip Gawlowski said:
VMWare allows "teams" of virtual machines, which can be set up in their
own little network. It's something to think about, especially now that
VMWare Player is available for free and all.

That's called "[host|internal] networking", and is pretty basic for
virtualization.

Also: Only VMWare Workstation allows creation of appliances, and I don't
have the 500 bucks to spare.

Not true. You can use VMWare Server which is free as well.
http://www.vmware.com/products/server/
Also, VirtualBox is free, and available for Linux, Windows, and Mac OS X.
And it supports the open standard from VM description, so VMware should at
least be able to import it, and I expect KVM and Xen are able to handel the
format as well, if that should ever be necessary.

Good point.

Cheers

robert
 
P

Phillip Gawlowski

Not true. You can use VMWare Server which is free as well.
http://www.vmware.com/products/server/

Alas, true. Proper, actual managing of appliances, and not just virtual
machines (which are almost, but not entirely, completely unlike each
other) requires VMWare Workstation. The difference between the tools is
*extreme*. The gap'll have only increased since I used VMware
Workstation 5.5, too.

Not to mention: I'd like to avoid using or requiring commercial tools
that are intended to produce vendor lock in (which VMware's tools *are*).

Last, but not least, I'd like to expose the unwary to the world of OSS.

It's the spirit on which this community was built, and on which it
thrives. It's the key stone of how we all interact each other, and the
sooner we expose newbies to this, the better.
Good point.

But a minor one. I don't expect a Ruby Appliance to be used in such an
environment in any kind of production way; the networks configurations
are just too different from what the average enthusiast has at home. ;)


P.S.: I guess I should look at getting some sort of collaboration site
going. Anyone got a Google Wave invite to spare? ;)
 
A

Aldric Giacomoni

Phillip said:
Also: Only VMWare Workstation allows creation of appliances, and I don't
have the 500 bucks to spare.

Also, VirtualBox is free, and available for Linux, Windows, and Mac OS
X. And it supports the open standard from VM description, so VMware
should at least be able to import it, and I expect KVM and Xen are able
to handel the format as well, if that should ever be necessary.
I -think- you may be confused when it comes to VMWare, but if VirtualBox
also allows inter-VM networking, the point is moot.
Ubuntu has one big, big benefit: It's being used. Widespread. Finding
support for Ubuntu is easier than for Gentoo, and nobody has to mess
with compile flags to get an "emerge world" working. ;)
Ugh, really? Fear, Uncertainty, Doubt? I'm not opening that can of worms
any further; Ubuntu is fine.
So, you are volunteering? ;)
Maybe. Shame, I'm out of google wave invites.
 
R

Robert Klemme

2009/12/29 Phillip Gawlowski said:
Alas, true. Proper, actual managing of appliances, and not just virtual
machines (which are almost, but not entirely, completely unlike each othe= r)
requires VMWare Workstation. The difference between the tools is *extreme= *.
The gap'll have only increased since I used VMware Workstation 5.5, too.

I'm not sure I get the difference you are hinting at. The most
annoying deficiency of VMWare Server for me is that you can only have
1 snapshot at most.
Not to mention: I'd like to avoid using or requiring commercial tools tha= t
are intended to produce vendor lock in (which VMware's tools *are*).

Last, but not least, I'd like to expose the unwary to the world of OSS.

It's the spirit on which this community was built, and on which it thrive= s.
It's the key stone of how we all interact each other, and the sooner we
expose newbies to this, the better.

Another good point.
P.S.: I guess I should look at getting some sort of collaboration site
going. Anyone got a Google Wave invite to spare? ;)

Done.

Kind regards

robert

--=20
remember.guy do |as, often| as.you_can - without end
http://blog.rubybestpractices.com/
 
P

Phillip Gawlowski

2009/12/29 Phillip Gawlowski<[email protected]>:

I'm not sure I get the difference you are hinting at. The most
annoying deficiency of VMWare Server for me is that you can only have
1 snapshot at most.

The management tools are vastly different, from managing the VMs
themselves to handling their maintenance. VMWare Workstation allows to
create an appliance out of any snapshot (and allows nested snapshots;
branches, if you like), for example, or VMs and thus appliances out of
"live" operating systems, by doing a disc image (it's more complicated
than that, but that's basically it).

In a nutshell: VMware Worstation is Oracle 10g to VMware Server's MySQL:
Both get the work done, but are quite different beasts if you look at
them in detail. ;)

Besides, VirtualBox is perfectly serviceable by now, and doesn't require
to manage a serial number. ;)

It is one less step to get rolling. :)
Another good point.

And the most important one, IMO. :)

Cool. Thanks. :)

I'll also have a look through Google Sites, since my hosting package
includes Google Apps Basic, so that's an option, too, if I can make it
do what would be needed (since I have only 95 Google Apps accounts left,
and these might be needed to get access to Sites in a collaborative
manner this is a bit of a last resort).

If there are ideas for sites to use (GitHub, for example, to track
project code as well as providing an issue tracker), or PHP/Rails based
solutions I can host, I'm open to suggestions, too. :)
 
P

Phillip Gawlowski

Ugh, really? Fear, Uncertainty, Doubt?

Yes, really. Ask a random person, chances are they know Ubuntu if not
Linux directly. ;)
I'm not opening that can of worms
any further; Ubuntu is fine.

Don't be afraid. If you can make a case, that @distro is superior in UX,
support, and ecosystem, by all means say so!

But keep in mind that a sizable chunk of users of this Appliance are
more than likely to be utter newbies to Linux *and* Ruby.

If they are stuck, they'll look for support on the web, and it is far
easier to find a random forum post that handles an Ubuntu issue than any
other distro (much as I feel that OpenSUSE is superior, personally).

It'd also make things easier for appliance-user MLs, since pointing to
Ubuntu solutions is so easy. ;)

The Appliance'll have to include custom code, too, to create a smooth
"turn key" experience, I bet, so the choice of distro might influence this.

The choice of distribution to use is *fundamental*, and we better
consider all the options now, before a single line of code is written. :)
 
A

Aldric Giacomoni

Phillip said:
Don't be afraid. If you can make a case, that @distro is superior in UX,
support, and ecosystem, by all means say so!

But keep in mind that a sizable chunk of users of this Appliance are
more than likely to be utter newbies to Linux *and* Ruby.

If they are stuck, they'll look for support on the web, and it is far
easier to find a random forum post that handles an Ubuntu issue than any
other distro (much as I feel that OpenSUSE is superior, personally).

It'd also make things easier for appliance-user MLs, since pointing to
Ubuntu solutions is so easy. ;)

The Appliance'll have to include custom code, too, to create a smooth
"turn key" experience, I bet, so the choice of distro might influence
this.

The choice of distribution to use is *fundamental*, and we better
consider all the options now, before a single line of code is written.
:)

Fair points.
I don't want to pollute Ruby-Talk with ... Distro-talk though, so I'll
start writing on this wave (public wave, accessibly by all):
https://wave.google.com/wave/#restored:wave:googlewave.com!w%2BWsu54CnMA
Wave should also be findable with the 'ruby appliance' tag
Hopefully your invite comes through quickly... :)
 
P

Phillip Gawlowski

I don't want to pollute Ruby-Talk with ... Distro-talk though, so I'll
start writing on this wave (public wave, accessibly by all):

Yeah, we should move this whole shebang off-list ASAP.

I underestimated the amount of attention this would generate, I have to
say. :)
Hopefully your invite comes through quickly... :)

It's taking its sweet, sweet time.

Well, it should be back on after I had my allotted sleep cycle. ;)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,768
Messages
2,569,574
Members
45,048
Latest member
verona

Latest Threads

Top