IDEA: Ruby "offline" CD / DVD

Hi all. I hope this is the appropriate place to post my idea. I have
been using Ruby on and off for two years now, but especially lately as I
have been implementing some personal projects, and modifying some Rails
apps for our intranet, and I am thoroughly enjoying it.

Currently I am working for an NGO in Indonesia (I’m Norwegian, studying
in Canada), and although we have a decent internet connection in the
office, I do most of my coding at home in the evenings - without
internet. And I have come to realize how much we depend on being
online… not for the actual coding, but for all that surrounds it,
whether it’s looking up a library reference, downloading a new gem,
googling an error message, downloading some source code to see how
somebody else solved this problem. Often I come to a block, and I have
to wait till the next morning before I can move on. I’ve partly solved
this by pre-downloading a number of good resources, whether PDFs or even
wgetting small sites that I might want to refer to.

Internet is very expensive and slow in Indonesia, and almost nobody have
it at home. I’ve met a bunch of CS students at the local Linux
usergroup, and I was saddened to see how little they knew of basic stuff
(whether Linux or programming, but at least they came, which is a great
start). I never did CS, but I’ve been playing around with computers
since I was 10. I firmly believe that having access to your own
computer, and being able to sit up all night trying stuff out is the
only real way of learning - all kinds of courses can help, but they are
never enough.

So I started thinking about producing some kind of a “Ruby ++” CD that
could be sold really cheaply or handed out for free here and in other
places. It would obviously contain some kind of installer/distribution
of Ruby for most platforms (Win/Linux/Mac), but in addition some of the
following:

  • a huge collection of gems - how big are all the gems together? enough
    for a DVD? or only the most useful ones
  • a bunch of big Ruby and RoR apps from Rubyforge etc
  • Rubybooks (like in the rubydoc bundle)
  • Functional and searchable webdumps of things like: the 10-20 most
    prolific Ruby bloggers, the Ruby-lang mailing list, Ruby quiz, etc

(I’d personally also like to sneak in a pdf book about svn and maybe a
few other tools as well).

Previously I experimented a lot with getting offline access to Wikipedia
dumps that are zipped without unzipping them first. I made a simple
Ruby+webrick server that unzips and serves files on demand. It turned
out to be way too slow for huge Wikipedia files (not Ruby but calling
7zip through the backtick), so someone from Spanish Wikipedia wrote an
integrated server/7zip that only opens the 7z file once, and caches the
index. Yesterday I wrote a first mockup of a Ruby script that accepts a
URL, runs wget following all links in subdirectories, then scans all
HTML/txt etc files with Ferret, and zips it all up to a format that is
instantly usable. This way we could put a lot of documentation on the CD
and have instantly useable - and searchable!

Anyway, I’m throwing this out there, and wondering if it’s a good idea,
if you have any inputs etc. It might be hard to imagine how it is to be
learning Ruby with no or almost no access to the network, but I can tell
you that I would certainly pick up such a CD/DVD in a heartbeat, and I
think it would be really useful. I’d love nothing more than having a
generation of young creative minds in Indonesia (and other places)
growing up churning out beautiful Ruby code! (This idea could obviously
be extended to covering other programming languages etc, but I’m a Ruby
guy). Also distribution has to be thought of, but there are lots of user
groups for Ruby/Ubuntu/Linux etc in Indonesia. And we could put it up as
an ISO, so other user groups in other countries could distribute it as
they saw fit.

Stian
(ps please cc to my email since I might not be able to check this list
often)

For me personally, this is a great idea. Even having just a
downloadable image that can be burnt and taken would be handy.

At work I live behind a big enterprisey firewall and do most of my
Ruby work on a ‘secret’ server (one I found that was no longer in
use :wink: that has no internet connection at all. Setting things up on
this has been an absolute pain. Being able to slip in a CD would be
magic.

Cheers,
Dave

SoC material perhaps?

A brilliant idea, but you might want to dream even further.
OpenBSD, Linux running on pendrives nowadays, pendrives becoming
cheaper and cheaper, why not try to come up with the “Dedicated Ruby
Newby pendrive distribution” ?
BTW the pendrive and the CD/DVD might fit together very nicely :slight_smile:

Cheers
Robert

Robert D. wrote:

A brilliant idea, but you might want to dream even further.
OpenBSD, Linux running on pendrives nowadays, pendrives becoming
cheaper and cheaper, why not try to come up with the “Dedicated Ruby
Newby pendrive distribution” ?
BTW the pendrive and the CD/DVD might fit together very nicely :slight_smile:
This is somewhat relevant:

On 14 Mar 2007, at 08:15, Stian H. wrote:

obviously
be extended to covering other programming languages etc, but I’m a
Ruby
guy). Also distribution has to be thought of, but there are lots of
user
groups for Ruby/Ubuntu/Linux etc in Indonesia. And we could put it
up as
an ISO, so other user groups in other countries could distribute it as
they saw fit.

This sounds like a brilliant idea. Getting a useful Ruby distro into
the hands of as many programmers as possible would be really good for
the growth of the community. If it could be configured so it all ran
from the CD with Windows/MacOS X/*NIX that would be even better - the
less that needs to be installed, the more that people would be
willing to experiment.

Ellie

Eleanor McHugh
Games With Brains

raise ArgumentError unless @reality.responds_to? :reason

Eleanor McHugh wrote:

On 14 Mar 2007, at 12:25, Robert D. wrote:

A brilliant idea, but you might want to dream even further.
OpenBSD, Linux running on pendrives nowadays, pendrives becoming
cheaper and cheaper, why not try to come up with the “Dedicated Ruby
Newby pendrive distribution” ?
BTW the pendrive and the CD/DVD might fit together very nicely :slight_smile:

Personally I’d be more interested in targeting the OLPC $100 laptop,
but that’s a whole different magnitude of project :wink:
I’ve forgotten where it is, but you can actually download and run a
“virtual” OLPC, and presumably there’s a development kit close by if in
fact one is needed. One Ruby Per Child? Why not?


M. Edward (Ed) Borasky, FBG, AB, PTA, PGS, MS, MNLP, NST, ACMC(P)
http://borasky-research.blogspot.com/

If God had meant for carrots to be eaten cooked, He would have given
rabbits fire.

On 14 Mar 2007, at 15:02, M. Edward (Ed) Borasky wrote:

Eleanor McHugh wrote:

Personally I’d be more interested in targeting the OLPC $100
laptop, but that’s a whole different magnitude of project :wink:
I’ve forgotten where it is, but you can actually download and run a
“virtual” OLPC, and presumably there’s a development kit close by
if in fact one is needed. One Ruby Per Child? Why not?

My thought exactly. Imagine a world in which 100 million teenagers
from the developing world all had the benefit of Ruby. Not that I
object to it being a python-based system right now, but I reckon
Ruby’s a subtly more disruptive technology and I’d love to see
teenagers in the developing world experience the same explosion of
creativity that we in the developed world did back in the 1980s :slight_smile:

Ellie

Eleanor McHugh
Games With Brains

raise ArgumentError unless @reality.responds_to? :reason

On 14 Mar 2007, at 12:25, Robert D. wrote:

A brilliant idea, but you might want to dream even further.
OpenBSD, Linux running on pendrives nowadays, pendrives becoming
cheaper and cheaper, why not try to come up with the “Dedicated Ruby
Newby pendrive distribution” ?
BTW the pendrive and the CD/DVD might fit together very nicely :slight_smile:

Personally I’d be more interested in targeting the OLPC $100 laptop,
but that’s a whole different magnitude of project :wink:

Ellie

Eleanor McHugh
Games With Brains

raise ArgumentError unless @reality.responds_to? :reason

Eleanor McHugh wrote:

My thought exactly. Imagine a world in which 100 million teenagers
from the developing world all had the benefit of Ruby. Not that I
object to it being a python-based system right now, but I reckon
Ruby’s a subtly more disruptive technology and I’d love to see
teenagers in the developing world experience the same explosion of
creativity that we in the developed world did back in the 1980s :slight_smile:
Well, when I was a teenager, the explosions of creativity were sparked
by magnetic core memory, germanium transistors, FORTRAN and COBOL. :slight_smile:
But seriously:

  1. What sort of explosions of creativity were there in the 1980s? I
    spent almost precisely that decade at Floating Point Systems, using
    FORTRAN and FPS microcode to do hard-core number crunching. The
    explosions of creativity I’m familiar with have to do with vector and
    parallel architectures and just the beginning hints of things like RISC
    and super-scalar. Back then, I couldn’t have predicted that the Xeon and
    AMD64 and hypervisors would dominate the landscape. They told me I’d
    have a Cray on my desktop, but I certainly didn’t anticipate that it
    would also do email and word processing, or that I’d be able to talk to
    colleagues all over the world for free on it.

  2. What’s disruptive about Ruby? It seems to me perfectly mainstream –
    imperative, object oriented, dynamic, reasonable block-structured
    syntax, agile, pragmatic, human-centric, etc. Disruptive would be
    Scheme, FORTH, Haskell or Erlang.


M. Edward (Ed) Borasky, FBG, AB, PTA, PGS, MS, MNLP, NST, ACMC(P)
http://borasky-research.blogspot.com/

If God had meant for carrots to be eaten cooked, He would have given
rabbits fire.

Martin DeMello wrote:

m.

Well … I don’t see any FORTH in Ruby. :slight_smile: Ruby has call/cc from Scheme,
but as I understand it, call/cc may not survive the transition from 1.8
to 1.9/2.0. And while Ruby may allow a functional programming style,
it doesn’t necessarily point someone in that direction. I don’t think
it’s the language that encourages people to explore other languages as
much as it’s the influence of the “agilists” and “pragmatists” in the
Ruby community, who do the encouraging. I learned Lisp (though not
Scheme) long before there even was a Ruby or Perl or Java or Haskell or
Erlang. And I learned Forth right about the time Perl, DOS and the
Macintosh were emerging.


M. Edward (Ed) Borasky, FBG, AB, PTA, PGS, MS, MNLP, NST, ACMC(P)
http://borasky-research.blogspot.com/

If God had meant for carrots to be eaten cooked, He would have given
rabbits fire.

On 3/14/07, M. Edward (Ed) Borasky [email protected] wrote:

languages that it encourages its users to go out and try them.
Ruby community, who do the encouraging. I learned Lisp (though not

and as I am a very sensible and difficult person (and pain in the
neck.) I just want to say that you have lost all my respect - and you
had a lot [but that is true] :wink:
You did not mention Smalltalk, I will accept apologies though ;).

Seriously now:

I believe Smalltalk has its place in the list. And seriously again, Ed
maybe there is more to Ruby than even you see in it yet.
BTW it is a shame that CC will go away, it is still a mystery for me,
but now I might never understand it :(.

Cheers
Robert

On 3/14/07, M. Edward (Ed) Borasky [email protected] wrote:

  1. What’s disruptive about Ruby? It seems to me perfectly mainstream –
    imperative, object oriented, dynamic, reasonable block-structured
    syntax, agile, pragmatic, human-centric, etc. Disruptive would be
    Scheme, FORTH, Haskell or Erlang.

I’ve noticed that Ruby is a very “gateway drug” sort of language :slight_smile: It
has enough (and well-integrated enough) features from mind-expanding
languages that it encourages its users to go out and try them.

m.

On 14 Mar 2007, at 17:04, M. Edward (Ed) Borasky wrote:

world for free on it.
Funny, as a teenage hacker the world didn’t look at all like that -
not that I’d have said no to a desktop Cray!
I had to make do with a succession of z80-based micros and spent
pretty much every waking hour (yay for insomnia!!!) writing adventure
games and language interpreters in Basic. Lots of my friends were
into the demo scene and did amazing stuff with graphics and sound and
we used to get together at weekends to drink rot-gut cider and geek ;p

  1. What’s disruptive about Ruby? It seems to me perfectly
    mainstream – imperative, object oriented, dynamic, reasonable
    block-structured syntax, agile, pragmatic, human-centric, etc.
    Disruptive would be Scheme, FORTH, Haskell or Erlang.

Been there, done that. Well, FORTH and Scheme anyway. Haskell left me
totally cold when I learnt it, and I’ve yet to play with Erlang. I
wouldn’t class any of them as disruptive as say Snobol or Icon were -
not that most people here will have used either in anger. Yes they’re
different, and if you grok CS theory and like Lisp then Scheme is
cool, but to be truly disruptive a language has to have broader
appeal than that: it needs to be useable by people who don’t get CS
at all. Icon still has a following in the humanities which isn’t a
claim most languages can make.

To my mind Ruby fits the bill because it appears so perfectly
mainstream (assuming that mainstream no longer means Java) and is
lightweight enough not to get in the way. The syntax is expressive,
but as easy to grasp as Basic so even a relative newbie can get into
it - and once mastered it’s just a joy to work with. What wonderful
things I could have done twenty years ago if I’d had it to play with :slight_smile:

Ellie

Eleanor McHugh
Games With Brains

raise ArgumentError unless @reality.responds_to? :reason

Robert D. wrote:

but now I might never understand it :(.
Well … OK … a little history. You probably already know how long I’ve
been programming for a living, but when I first started to get my hands
on home computers, no matter how you sliced and diced and enhanced and
enROMed it, BASIC was, well, not something I wanted to deal with. There
was a brief period of time on the cusp from the 8-bit machines to the
16-bit ones where there was a blossoming of alternate languages, among
them FORTH and Smalltalk. You could get Lisp interpreters, there was
even a decent Logo for the Commodore 64, there were definitely usable
Pascal compilers, and there were starting to be C compilers.

My preference at that time would have been Lisp, but the performance
just wasn’t there. Lisp is memory-intensive more than anything else –
just about everything is a pair of address-width pointers. There’s not a
heck of a lot you can do when a CONS cell takes up 4 bytes in a 64
kilobyte machine. I couldn’t find a Smalltalk for the C-64 – there may
have been one, but I never managed to get my hands on it. So – I went
with FORTH. The whole compiler/interpreter/OS/virtual machine fits in
about 2K bytes, leaving the rest of the 64K for equally compact
application code.

My next machine after the C-64 was a DOS 5.0 machine, and it ran just
fine with Perl 4 and FORTH. I also had a couple of Lisps for it – one a
kind of public domain or open source Lisp the name of which I’ve
forgotten, and the other one muLisp, from the same people who built the
Derive math package. If there was a Smalltalk then, again, I didn’t know
about it.

Yes, Smalltalk does have a place in the list. It’s a wonderful language,
in spite of the garish monstrosity that the Squeak folks built out of
it. :slight_smile: I just never learned it, and there are more interesting languages
now. :slight_smile:


M. Edward (Ed) Borasky, FBG, AB, PTA, PGS, MS, MNLP, NST, ACMC(P)
http://borasky-research.blogspot.com/

If God had meant for carrots to be eaten cooked, He would have given
rabbits fire.

Hi all,

I like the idea to create a CD/DVD to help people use Ruby.
My idea is to customize Knoppix CD/DVD and include Ruby-related packages

  • gems, also
    add Windows, Mac Ruby packages.
    With this kind of Live CD + USB flash disk, user can develop on Linux
    environment and also use as
    a source for software installer on Windows, Mac.

Just my thought.

Regards.
Tho Nguyen

M. Edward (Ed) Borasky wrote:

  1. What sort of explosions of creativity were there in the 1980s?

In my field, there were two, with very different trajectories:

  • Relational databases
  • 4GL and CASE tools

I believe the time has come for significant progress in both fields,
forward from the success of SQL (such a 1970’s language) and forward
past the failure of the model-driven development paradigms. One
succeeded
because it had a solid formal foundation, lack of which was why the
other
failed. Fact-based models promise to improve both areas.

It’s a pity that Rails, in ActiveRecord, tries to drag us back to the
pre-relational ISAM era… I’ll be saying a few words about that at
the RailsConf, and hopefully offering an alternative.

I’m discounting the fact that a lot of ordinary folk realized they were
capable of creating an operating system, and some, like Linus, went
ahead and did it (a bit later). But that realization came during the
80s.

Clifford H…

On 3/15/07, M. Edward (Ed) Borasky [email protected] wrote:

Robert D. wrote:

Yes, Smalltalk does have a place in the list. It’s a wonderful language,
in spite of the garish monstrosity that the Squeak folks built out of
it. :slight_smile: I just never learned it, and there are more interesting languages
now. :slight_smile:
It might be noteworthy though that the Squeak folks are the original
developers of Smalltalk.
Thx for the story Ed, I did not mean “you should have used Smalltalk”
of course :wink:
Cheers
Robert

On 3/14/07, M. Edward (Ed) Borasky [email protected] wrote:

I couldn’t find a Smalltalk for the C-64 – there may
have been one, but I never managed to get my hands on it.

Probably not. I’m not aware of any Smalltalk implementations for
8-bit machines. Well then again maybe. Digitalk’s first product was
a text based Smalltalk called Methods which ran on MS/DOS, I’m not
sure whether or not it actually ran on an 8088 or if it required a
PC/AT. It was called Methods because they were concerned about
trademark issues with Xerox. Their next product was Smalltalk/V, which
had graphics support. Alan Kay had seen Methods and convinced them
that they HAD to call it Smalltalk. (IIRC, Alan is related indirectly
by marriage to one of the Digitalk founders, but that might be my
senility kicking in). Alan also gave them a blurb for the back cover
of the Smalltalk/V manual “Smalltalk/V is the Smalltalk I Use – Alan
Kay”.

Although Smalltalk/V might have run on an original PC class machine, I
don’t think that it did, I think that the V stood for Virtual as in
virtual memory and that they required an 80286 and handled swapping
themselves outside the OS (MS/DOS). Then Smalltalk/V for PM came out
which definitely required a 16-bit machine as it ran on OS/2, the DOS
version got rebranded as Smalltalk/V DOS.

Since Ed is reminiscing, I hope that you’ll indulge me a bit.

One of my jobs back in the late 1980s/early 1990s was as a technical
liaison between IBM and Digitalk. I just pulled down one of my
treasured mementos from those days; a copy of the supplemental manual
for release 1.3 of Smalltalk/V PM, autographed by the entire team, and
given to me at the Digitalk Developers Conference. Alan Kay was
there where he gave a keynote. Among the inscriptions is “To the
least IBM-like IBMer I’ve ever met – Happy OOPing - Alan Kay”

We had some conversations with the newly formed ParcPlace back in
those days about also doing Smalltalk-80 for OS/2 but they had no
interest in any platform with a word length smaller than 32-bits.

Yes, Smalltalk does have a place in the list. It’s a wonderful language,

And to an old Smalltalker there’s quite a bit of evidence in Ruby that
it was a pretty big influence on Matz.


Rick DeNatale

My blog on Ruby
http://talklikeaduck.denhaven2.com/

On 3/15/07, Rick DeNatale [email protected] wrote:

had graphics support. Alan Kay had seen Methods and convinced them
which definitely required a 16-bit machine as it ran on OS/2, the DOS
least IBM-like IBMer I’ve ever met – Happy OOPing - Alan Kay"
That is nice, can I have an autograph too :wink:

Boy I get sentimental:

Smalltalk.new( (%w{ Matz new: #language do: [ : ruby | Transcript
show: '} << “Hi Alan” << %w{ ’ ; cr . ] }).join(" ") )


Rick DeNatale

My blog on Ruby
http://talklikeaduck.denhaven2.com/

Cheers
Robert