[ANN] LAIKA Open Source Software

Hello!

On behalf of the entire LAIKA Information Technology department, it
is my great pleasure to announce the release of a number of projects
developed by the Information Systems group:

* Athenaeum -- A "live" web view of the contents of a Delicious Library
* Growl Notifier -- A plugin for CruiseControl.rb that sends build
   notifications to one or more Growl daemons.
* Linen -- A framework for building command-line interfaces
* TextMate Bundle -- Some of us use TextMate. This bundle includes
   some helpful commands and snippets that we wrote.
* ThingFish* -- A network-accessable datastore with extensible metadata

These projects were all developed to fit needs within our organization,
but designed to be useful outside LAIKA as well. They're released under
the BSD license, and are therefore free to use, in every sense of the
word.

* Please note that the ThingFish release is alpha quality, and much has
  changed between the current download and trunk. Watch for a new release
  Real Soon(tm)

== Where To Get It

The primary source for LAIKA Open Source software is:

  http://opensource.laika.com

This is a Trac instance, and is the main point of contact for all
LAIKA open source projects. Check here first. File bugs here. Read
documentation here :slight_smile:

Downloads will also be hosted at RubyForge, so any of our projects
that are available as gems will be installable via the normal gem
mechanism. You can view our project page at:

  http://laika.rubyforge.org

and download our files at:

  http://rubyforge.org/projects/laika

== About LAIKA

LAIKA is an animation studio based in Portland, Oregon (USA). We are
currently working on two feature films and a large number of commercial
projects. More information is available at http://www.laika.com

== About LAIKA IS

LAIKA's Information Systems group is a team of programmers, database
administrators, and tech writers inside the Information Technology
department. We make the shiny tools that help the rest of LAIKA do
their jobs more easily, ease the sharing of information between groups,
and solve mission-critical problems (like picking a place to go to
lunch).

We believe in open source software. Many of the tools we use in-house
are open source, and we feel strongly that we should give back whenever
possible.

LAIKA's IS department is:

* Ben Bleything <bbleything@laika.com>
* Jeff Davis <jdavis@laika.com>
* Michael Granger <mgranger@laika.com>
* Steven J. Hall <shall@laika.com>
* Jeremiah Jordan <jjordan@laika.com>
* Myra Lavenue <mlavenue@laika.com>
* Mahlon E. Smith <mahlon@laika.com>
* Anthony Roberts <aroberts@laika.com>
* Kim Wallmark <kwallmark@laika.com>

== How to Contact Us

If you've got problems with the code, please file appropriate bugs in
our Trac instance. If you've got general questions or comments, please
email opensource@laika.com.

Cheers!
Ben

..snip..

* Linen -- A framework for building command-line interfaces

..snip..

This looks interesting. If someone wasn't using this, what would they
use?

Mike B.

···

On Sep 12, 11:28 am, Ben Bleything <bbleyth...@laika.com> wrote:

That's an interesting question. At the time we started on Linen, we
didn't know about HighLine[1]. Had we, Linen would look different
today. That said, HighLine is, at its core, a wrapper for Readline that
gives you a bunch of really nice ways to ask the user for input.

Linen was designed to be the underlying framework of an application that
adds host to our directory server. We call it "a framework for building
command-line interfaces", but what Linen is really about is defining
how to get input from the user and what to do with it once you have
it. This latter bit is what HighLine doesn't do for you. It's just a
different philosophy; we needed to build a system where the user could
define the action in a similar way to how they define the input.

Command line interfaces aren't the end. Linen's designed to be agnostic
of the handler, only telling you what the input should look like and
what should be done with it. We've toyed with the idea of writing a web
handler for Linen plugins, and I personally would like to try to write a
handler that you could plug into an Asterisk IVR. Both of those should
be possible (though maybe somewhat less than trivial ;))

Around the time Linen was hitting 0.3 or 0.4 internally (we only
released it publically now), there was another similar library released.
It's called main[2], and it's closer to Linen than HighLine in some
ways. It too defines the action that's taken after the arguments are
validated. The main (the adjective) difference is that main (the
library) doesn't (seem to) provide an interactive environment... it
gives you command line flags and usage methods and stuff. Linen does
the interactive thing. Again, just a difference of philosophy. Linen
will someday have a batch mode that looks just like main :slight_smile:

Hope that answers your question, and wasn't too long-winded!

Ben

[1]: http://highline.rubyforge.org/
[2]: http://codeforpeople.com/lib/ruby/main/

···

On Thu, Sep 13, 2007, barjunk wrote:

On Sep 12, 11:28 am, Ben Bleything <bbleyth...@laika.com> wrote:
> * Linen -- A framework for building command-line interfaces

This looks interesting. If someone wasn't using this, what would they
use?

..snip..

Thanks Ben.

How does OptParse fit into all of this?

The upcoming release of the animation looks intersting as well.

Thanks for releasing this to the community.

Mike B.

···

On Sep 12, 9:51 pm, Ben Bleything <b...@bleything.net> wrote:

On Thu, Sep 13, 2007, barjunk wrote:
> On Sep 12, 11:28 am, Ben Bleything <bbleyth...@laika.com> wrote:
> > * Linen -- A framework for building command-line interfaces

> This looks interesting. If someone wasn't using this, what would they
> use?

That's an interesting question. At the time we started on Linen, we
didn't know about HighLine[1]. Had we, Linen would look different
today. That said, HighLine is, at its core, a wrapper for Readline that
gives you a bunch of really nice ways to ask the user for input.

Linen was designed to be the underlying framework of an application that
adds host to our directory server. We call it "a framework for building
command-line interfaces", but what Linen is really about is defining
how to get input from the user and what to do with it once you have
it. This latter bit is what HighLine doesn't do for you. It's just a
different philosophy; we needed to build a system where the user could
define the action in a similar way to how they define the input.

Anyone having trouble getting to the above link?

Mike B.

···

On Sep 12, 9:51 pm, Ben Bleything <b...@bleything.net> wrote:

On Thu, Sep 13, 2007, barjunk wrote:
> On Sep 12, 11:28 am, Ben Bleything <bbleyth...@laika.com> wrote:

[2]:http://codeforpeople.com/lib/ruby/main/

Yup, looks like it might be down at the moment. Was definitely up last
night, so give it some time.

Ben

···

On Fri, Sep 14, 2007, barjunk wrote:

> [2]:http://codeforpeople.com/lib/ruby/main/

Anyone having trouble getting to the above link?

How does OptParse fit into all of this?

OptParse is just a library to parse command line flags. It's about half
of what main does... main adds the ability to define the action that's
performed on the options that are fetched from the command line.

The upcoming release of the animation looks intersting as well.

I think we're all very excited about it :smiley:

Thanks for releasing this to the community.

You're welcome. I'm really glad we were able to do so.

Ben

···

On Fri, Sep 14, 2007, barjunk wrote: