# LAIKA Open Source Software

**URL:** <https://www.ruby-forum.com/t/laika-open-source-software/114457>\
**Category:** Ruby\
**Created:** [September 12, 2007, 9:29pm UTC](https://www.ruby-forum.com/t/laika-open-source-software/114457 "2007-09-12T21:29:12Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![brblakley](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/f14d63/32.png) [@brblakley](https://www.ruby-forum.com/u/brblakley)\
**Post date:** [September 12, 2007, 9:29pm UTC](https://www.ruby-forum.com/t/laika-open-source-software/114457/1 "2007-09-12T21:29:12Z")

</div>

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™

== Where To Get It

The primary source for LAIKA Open Source software is:

[http://opensource.laika.com](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 🙂

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](http://laika.rubyforge.org)

and download our files at:

[http://rubyforge.org/projects/laika](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](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 B. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)
- Jeff D. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)
- Michael G. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)
- Steven J. Hall [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)
- Jeremiah Jordan [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)
- Myra Lavenue [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)
- Mahlon E. Smith [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)
- Anthony Roberts [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)
- Kim Wallmark [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

== 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 removed\_email\_address@domain.invalid.

Cheers!  
Ben

---

<div class="post-metadata">

**Author:** ![brblakley](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/f14d63/32.png) [@brblakley](https://www.ruby-forum.com/u/brblakley)\
**Post date:** [September 13, 2007, 7:11am UTC](https://www.ruby-forum.com/t/laika-open-source-software/114457/2 "2007-09-13T07:11:03Z")

</div>

On Sep 12, 11:28 am, Ben B. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:  
…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.

---

<div class="post-metadata">

**Author:** ![brblakley](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/f14d63/32.png) [@brblakley](https://www.ruby-forum.com/u/brblakley)\
**Post date:** [September 13, 2007, 7:52am UTC](https://www.ruby-forum.com/t/laika-open-source-software/114457/3 "2007-09-13T07:52:07Z")

</div>

On Thu, Sep 13, 2007, barjunk wrote:

> On Sep 12, 11:28 am, Ben B. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) 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](http://highline.rubyforge.org/). 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](http://codeforpeople.com/lib/ruby/main/), 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 🙂

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

Ben

---

<div class="post-metadata">

**Author:** ![brblakley](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/f14d63/32.png) [@brblakley](https://www.ruby-forum.com/u/brblakley)\
**Post date:** [September 17, 2007, 1:21pm UTC](https://www.ruby-forum.com/t/laika-open-source-software/114457/4 "2007-09-17T13:21:51Z")

</div>

On Sep 12, 9:51 pm, Ben B. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> On Thu, Sep 13, 2007, barjunk wrote:
> 
> > On Sep 12, 11:28 am, Ben B. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> 

Anyone having trouble getting to the above link?

Mike B.

---

<div class="post-metadata">

**Author:** ![brblakley](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/f14d63/32.png) [@brblakley](https://www.ruby-forum.com/u/brblakley)\
**Post date:** [September 17, 2007, 1:21pm UTC](https://www.ruby-forum.com/t/laika-open-source-software/114457/5 "2007-09-17T13:21:38Z")

</div>

On Sep 12, 9:51 pm, Ben B. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

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

…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.

---

<div class="post-metadata">

**Author:** ![brblakley](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/f14d63/32.png) [@brblakley](https://www.ruby-forum.com/u/brblakley)\
**Post date:** [September 17, 2007, 1:25pm UTC](https://www.ruby-forum.com/t/laika-open-source-software/114457/6 "2007-09-17T13:25:10Z")

</div>

On Fri, Sep 14, 2007, barjunk wrote:

> > 
> 
> Anyone having trouble getting to the above link?

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

Ben

---

<div class="post-metadata">

**Author:** ![brblakley](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/f14d63/32.png) [@brblakley](https://www.ruby-forum.com/u/brblakley)\
**Post date:** [September 17, 2007, 1:23pm UTC](https://www.ruby-forum.com/t/laika-open-source-software/114457/7 "2007-09-17T13:23:14Z")

</div>

On Fri, Sep 14, 2007, barjunk wrote:

> 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 😃

> Thanks for releasing this to the community.

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

Ben
