A Ruby appliance: What would you include?

Hello, list!

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

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.

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. :slight_smile:

My apologies for this oversight.

···

On 29.12.2009 02:40, Phillip Gawlowski wrote:

Hello, list!

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

--
Phillip Gawlowski

Phillip Gawlowski wrote:

Hello, list!

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

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.

···

--
Posted via http://www.ruby-forum.com/\.

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

Cheers

robert

···

2009/12/29 Phillip Gawlowski <pg@thimian.com>:

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

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

Phillip Gawlowski wrote:

Hello, list!

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

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.

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... :-)))

···

2009/12/29 Aldric Giacomoni <aldric@trevoke.net>:

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

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.

···

On Tuesday 29 December 2009 07:25:13 am Aldric Giacomoni wrote:

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.

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. :wink:

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

So, you are volunteering? :wink:

As a tool, this could come in very handy.

That's the plan. :slight_smile:

···

On 29.12.2009 14:25, Aldric Giacomoni wrote:

--
Phillip Gawlowski

Aldric Giacomoni wrote:

Phillip Gawlowski wrote:

Hello, list!

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

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.

It wouldn't be hard to do this in Ubuntu either, I think, and Ubuntu
configuration is generally very easy.

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.

No, I don't think it's appropriate to include an IDE in something like
this. Perhaps there should be links to info about some, but I see no
reason that they should be preinstalled.

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

Yup.

As a tool, this could come in very handy.

Best,

···

--
Marnen Laibow-Koser
http://www.marnen.org
marnen@marnen.org
--
Posted via http://www.ruby-forum.com/\.

http://www.h-e-r-e-t-i-x.org/

... once hosted a Ruby 'distro'.

The init script was/is Ruby.

I did have it running in a Xen VM around two years back.

I wonder if it is powering .... http://www.h-e-r-e-t-i-x.org/download.htm

MarkT

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

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. :slight_smile:

···

On 29.12.2009 09:13, Robert Klemme wrote:

2009/12/29 Phillip Gawlowski<pg@thimian.com>:

--
Phillip Gawlowski

Robert Klemme wrote:

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.

···

--
Posted via http://www.ruby-forum.com/\.

David Masover wrote:

···

On Tuesday 29 December 2009 07:25:13 am Aldric Giacomoni wrote:

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.

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.
--
Posted via http://www.ruby-forum.com/\.

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.

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

···

2009/12/29 Phillip Gawlowski <pg@thimian.com>:

On 29.12.2009 14:25, Aldric Giacomoni wrote:

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

Phillip Gawlowski wrote:

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. :wink:

Ugh, really? Fear, Uncertainty, Doubt? I'm not opening that can of worms
any further; Ubuntu is fine.

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

So, you are volunteering? :wink:

Maybe. Shame, I'm out of google wave invites.

···

--
Posted via http://www.ruby-forum.com/\.

It wouldn't be hard to do this in Ubuntu either, I think, and Ubuntu
configuration is generally very easy.

Solvable in a script, that deletes the current symlink, and creates a new one. Call it switch, give it the commandline argument "ruby", and you have a nice little "switch ruby" command. :wink:

No, I don't think it's appropriate to include an IDE in something like
this. Perhaps there should be links to info about some, but I see no
reason that they should be preinstalled.

Couple of reason pro-IDE:
- Most developers are already used to IDEs, be it Visual Studio, NetBeans, or IntelliJ IDEA.
- IDEs (especially NetBeans, IME), provide excellent support for syntax highlighting, debugging, and plugin management (NetBeans has a nice integration for RubyGems, for example).

Cons:
- Redistribution isn't always possible
- Redistribution can create a significant overhead
- It's one more thing to keep track of.

A simple text editor that allows to run Ruby scripts in its buffer(s) at the push of a button is already a great step forward, IMO.

···

On 29.12.2009 17:51, Marnen Laibow-Koser wrote:

--
Phillip Gawlowski

Bummer. Thanks for the "fix"! :slight_smile:

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.

Martin has already created an overview of editors feature wise:

Kind regards

robert

···

2009/12/29 Phillip Gawlowski <pg@thimian.com>:

On 29.12.2009 09:13, Robert Klemme wrote:

2009/12/29 Phillip Gawlowski<pg@thimian.com>:

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

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. :slight_smile:

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

Not true. You can use VMWare Server which is free as well.
VMware vSphere | Enterprise Workload Platform

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.

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.

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. :wink:

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

···

On 29.12.2009 15:39, Robert Klemme wrote:

--
Phillip Gawlowski

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. :wink:

Ugh, really? Fear, Uncertainty, Doubt?

Yes, really. Ask a random person, chances are they know Ubuntu if not Linux directly. :wink:

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. :wink:

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. :slight_smile:

···

On 29.12.2009 16:24, Aldric Giacomoni wrote:

--
Phillip Gawlowski

Phillip Gawlowski wrote:

It wouldn't be hard to do this in Ubuntu either, I think, and Ubuntu
configuration is generally very easy.

Solvable in a script, that deletes the current symlink, and creates a
new one. Call it switch, give it the commandline argument "ruby", and
you have a nice little "switch ruby" command. :wink:

Right.

No, I don't think it's appropriate to include an IDE in something like
this. Perhaps there should be links to info about some, but I see no
reason that they should be preinstalled.

Couple of reason pro-IDE:
- Most developers are already used to IDEs, be it Visual Studio,
NetBeans, or IntelliJ IDEA.

That's actually a reason not to include an IDE. Developers used to Java
or C* tend to think that all development requires an IDE. It's probably
a good idea to expose them to the fact that an IDE is less necessary for
Ruby.

In other words, we don't want people rushing to Eclipse simply because
they've always used it. Let 'em install it if they want to, but
hopefully they'll fire up Emacs or Kate first.

- IDEs (especially NetBeans, IME), provide excellent support for syntax
highlighting, debugging, and plugin management (NetBeans has a nice
integration for RubyGems, for example).

Cons:
- Redistribution isn't always possible

All free IDEs are redistributable, aren't they?

- Redistribution can create a significant overhead
- It's one more thing to keep track of.

If we do include IDEs, then I would also push for the inclusion of
full-featured editors like jEdit and KomodoEdit. I actually think these
are far more useful for most Ruby work than are IDEs.

A simple text editor that allows to run Ruby scripts in its buffer(s) at
the push of a button is already a great step forward, IMO.

Perhaps.

Best,

···

On 29.12.2009 17:51, Marnen Laibow-Koser wrote:

--
Marnen Laibow-Koser
http://www.marnen.org
marnen@marnen.org
--
Posted via http://www.ruby-forum.com/\.

Solvable in a script, that deletes the current symlink, and creates a new

one. Call it switch, give it the commandline argument "ruby", and you have a
nice little "switch ruby" command. :wink:

A script... called rvm perhaps? :wink: