
Light Table Playground Levels Up - ibdthor
http://www.chris-granger.com/2012/07/09/light-table-playgrounds-level-up/
======
rhizome
I don't mean to crap on this fresh out of the gate, but can you include a
glossary that connects all the marketing-slang to the common concepts that
they represent? Frankly, I barely have any idea what you're talking about over
2/3s of this post, and a lot of it smells like a coffeehouse-MBA. Sorry, only
my opinion!

 _The most exciting addition to the playground is the ability to use your own
projects as the context for the Instarepl. You do this by using the lein-light
leiningen plugin. Just run lein light from one of your projects and use the
sidebar's connect verb to hook into it._

A friendly (honestly!) tip about writing tutorials and helptext in general:
the word "just" usually means it would be better to describe the actual steps
to be taken. Think of it as a code-smell or a misplaced abstraction.

I know LT has community support and I might just be an odd man out, but the
writing here is highly targeted toward initiates. Perhaps intentionally to
further foster a subculture, or perhaps out of laziness, I don't know, but
it's frustrating to read.

~~~
jhickner
I don't see any marketing speak, but there's a lot of Clojure terminology. If
you're not familiar with Clojure I can see how this could be annoying.

REPL: read/eval/print/loop (think irb from Ruby, although there's more to it).
[http://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print...](http://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop)

Instarepl: A portmanteau of instant and REPL, meaning a REPL that evaluates
immediately as you type.

"context for the Instarepl": essentially the namespace in which the REPL
executes, meaning that if you run lein-light inside your project folder you
can get access to your project's functions inside LightTable.

leiningen: Clojure's most popular build tool and vector for plugins that
enhance the build cycle. <https://github.com/technomancy/leiningen/>

~~~
alttab
Think about getting people to use your project/app/tool as a funnel:

targeted industry -> people who are exposed to it -> people who actually
investigate it -> people who actually download it -> people who actually try
it once downloading it -> people who continue to use it.

You want to get as many people to that last step as possible. Unless you only
care about getting closure people, appealing to a wider base will help
adoption and broadening the base vocabulary is the first step.

Right now this is only appealing to closure people, and statistically only a
small subset will actually go through the trouble of giving it a try. An even
smaller number of people will switch to it full time. Considering mainstream
development doesn't happen in closure (yet), your first part of the funnel is
already pretty freakin' small.

Just my $0.02.

~~~
ImprovedSilence
"Unless you only care about getting closure people,"

Uh, Light Table is an IDE for clojure.

~~~
molbioguy
You're right, but I always understood that Light would support multiple
languages. The Kickstarter site mentions "The first two languages it will
support are Javascript and Clojure, but the application will be written in
such a way that adding new languages can happen through plugins." And I think
Python will be the third based on contributions. So it's good not to
discourage people that aren't using clojure.

~~~
Sandman
True, but it's probably a lot easier to build an IDE by concentrating on
supporting one language, at least in the beginning, and thinking about support
for other languages later on. Don't forget that this is not even an alpha
version of Light Table yet. This is simply a demo, showing us what we might
expect. I have no doubt that both JavaScript and Python will be supported in
the final version of LT.

~~~
deafbybeheading
I think what alttab was saying is that you should still post updates without
assuming you're just talking to a bunch of clojure aficionados.

E.g., I'm somewhat interested in LT but for the other languages. I'm curious
enough to check out the odd blog post now and then, but if it's all gibberish,
I won't come back and may lose track of the project and miss the other
language support when it does land.

~~~
alttab
Nailed it sir.

------
lsdafjklsd
This is great, I have been using Light Table along side Clojure Programming
and The Clojure Way and it has been invaluable. I am easily able to interact
with Clojure without falling over setting a dev environment up, and this just
makes it even better.

Is there a way to save files?

------
uxp
I've actually started learning Clojure and finally started understanding Lisp
(like) languages because of this. Clojure is quite the shift from my normal
toolkit of Ruby, Obj-C and PHP, but it's extremely enjoyable (though light in
online documentation at times).

Though, my normal development machine is down for the day and I'm stuck on my
CoreDuo 32-bit MacBook Pro. I might be a bit of an edge case here, but no
where on the site does it mention that the Light Table.app executable only has
a 64-bit binary inside rendering it useless on this machine. Maybe as a kind
notice you could mention such a requirement?

------
jhickner
Very cool! Running into an issue installing lein-light though. Are the jars
not posted yet maybe? gist here: <https://gist.github.com/3078428>

~~~
ibdknox
Yeah screwed up in some renaming. Try lein-light 0.0.4

~~~
meteorfox
I'm having a similar issue, but I already tried 0.0.4, this is what I got, it
seems it can't find clojure 1.5.0 jar.

<https://gist.github.com/3078651>

~~~
ibdknox
You might've gotten one of my intermediates somehow.

rm -r ~/.m2/repository/lein-light ~/.m2/repository/ibdknox

------
kinleyd
I've installed it for the very first time, and it is pretty cool! I've dabbled
in Clojure before, and the mention of Leiningen in the context of Light Field
worried me a bit (getting Clojure, Leiningen, etc working on my Linux system
was quite a chore).

However, installation of Light Field was a breeze and I'm puttering around.
Links to basic how tos would be more helpful, and I'm sure you'll be getting
to that. But for now, thanks, it is looking awesome!

~~~
apl

      > getting Clojure, Leiningen, etc working on my Linux
      > system was quite a chore
    

Can you elaborate on that? Tooling and set-up _used to be_ one of Clojure's
big weaknesses; they are less so now. On Ubuntu, for instance, it shouldn't be
much more than

    
    
      $ sudo apt-get install leiningen
      $ lein new my-proj
    

What went wrong?

~~~
kinleyd
It was some time ago (8 months or so). I remember googling around and finding
different approaches to setting up the tool chain. The notes I kept on some of
the steps I tried to get Clojure working on emacs included the following (not
the whole list of commands):

Setting up Clojure

Followed the gist of
<http://riddell.us/ClojureSwankLeiningenWithEmacsOnLinux.html> (no longer
existing) The first time, invoking 'mvn2 install' to build clojure-contrib jar
failed. Later, after cleaning up Java, it worked.

Java was already installed, so I apt-get installed ant and maven2

    
    
      ~$ git clone git://github.com/clojure/clojure.git
      ~$ git clone git://github.com/clojure/clojure-contrib.git 
      ~$ mvn install
      Copy jline-0.0.94.jar
    

Create a bash script called clj to start clojure with these commands:

    
    
      #!/bin/sh
      # without jline
      #java -cp "$CLOJURE_HOME/clojure-1.3.0.jar" clojure.main "$@"
      # with jline
      java -cp "$CLOJURE_HOME/jline-0.9.94.jar:$CLOJURE_HOME/clojure-1.4.0.jar" jline.ConsoleRunner clojure.main
    

Running clj in the terminal worked, with the repl functioning as expected.

For emacs:

    
    
      ~$ sudo apt-get install emacs-snapshot-gtk
    

SLIME, clojure-mode and leiningen

    
    
      git clone git://github.com/nablaone/slime.git
      git clone git://github.com/technomancy/clojure-mode.git
      ~$ wget --no-check-certificate http://github.com/technomancy/leiningen/raw/stable/bin/lein
    

Execute the leiningen script

    
    
      ~$ chmod +x lein
      ~$ ./lein self-install
    

For some reason, this didn't work in emacs and I opted instead to run Clojure
in jEdit. It worked but I didn't quite like the jEdit look and feel. Anyway,
the long and the short of it was I played with Clojure mainly in jEdit for a
while.

As you said, the setup process was not well documented at that time and it was
quite frustrating. I'm sure it's better now. I'm going to play with Clojure in
Light Table again, and if it excites me, I'll have another go at a full
Clojure install.

~~~
apl

      > As you said, the setup process was not well documented at
      > that time and it was quite frustrating. I'm sure it's
      > better now.
    

As a matter of fact, it was much better than that 8 months ago, but the
improvements took a while to become common knowledge. This is a massive
problem with Clojure -- there's way too much outdated information out there.

For your sanity's sake: don't mess with manual Clojure installation etc. Just
use leiningen for everything. It pulls in the Clojure compiler and runtime on
its own, offers a much more useful REPL, and even handles Emacs integration
these days. In conjunction with package.el/Emacs24, there's not a single thing
you have to install manually.

<https://github.com/technomancy/swank-clojure> \\\
<https://github.com/technomancy/leiningen>

~~~
kinleyd
You were absolutely right. I've got leiningen running in one swat (sudo apt-
get install leiningen). Will mosey out to get clojure-swank running on emacs
next. :)

------
olivergeorge
I've really enjoyed using light table.

I spent a few solid days using it while implementing a spreadsheet into a
webapp (I wrote the algorithm in clojure and then migrated to clojurescript).

Immediate feedback and live tests felt natural.

Given my clojure is rusty it was helpful to be able to see how functions work
with little test cases.

The lein plugin is a nice addition. I'm looking forward to seeing it trigger a
refresh when project source files change.

------
gnarmis
I just tried this out with a project I'm working on. Finally upgraded to
Leiningen 2 as well. In all, took about 3 minutes to get everything setup!

I'm just loving this instarepl. The most direct benefit for now is having a
few of the function calls I'm testing all be there so I can interact with the
program live. And have all the (use ... :reload-all) calls also setup.

------
lsh
I'll sign up with Github to post this bug if it actually is a bug and not just
my ignorance, but this is still not working from the original release:

(ns foo.bar (:import (java.io File)))

I get a RuntimeException "EOF while reading".

It works from a regular repl and it's the first line in a project I wrote a
while ago - so having Lighttable fail almost immediately for no obvious reason
is leaving a bad taste.

Also the installation/updating was quirky and broke three times (downloaded it
fully twice), and it launches Firefox, which gives me a blank+grey screen so I
have to launch Chromium and that works well.

Does this fail for anybody else? Are there any other issues I should be
skirting at the moment? I haven't encountered any others.

I've looked, but is there a better forum for Lighttable than the comments
section of hacker news?

------
ohazi
Love what I've seen so far.

I'm not entirely sure how you're supposed to use the lein-light plugin,
though. I start light table, then run 'lein light' from a dummy lein project
directory. I seem to be able to connect to the project via light table without
any complaining, but then nothing happens. I'm unable to find any of my
project namespaces from within light table.

Am I doing it wrong, or did I break something?

~~~
sjjohnston
I'm having the same problem. It looks like we're not the only ones:
<https://github.com/Kodowa/Light-Table-Playground/issues/13>

I'm on macosx 10.7. Perhaps it works better for Linux users?

~~~
sjjohnston
Ok, since my previous post, ibdknox posted a comment in the issue. It was
working all along. Once you have connected with "lein light", you should then
be able to reference namespaces in your project from the instarepl.

------
ksev
I don't know where to submit bug reports so i'll just write it here.

The "instarepl" stops evaluating all code as soon as there any what i'm
guessing non ASCII characters in the buffer, even when they are inside
strings.

Example:

    
    
      (println "Some string with umlaut åäö")
    

Will stop the instarepl from evaluating, and there is no error.

~~~
endlessvoid94
<https://github.com/Kodowa/Light-Table-Playground/issues>

------
bobobjorn
Running the install script installs and starts the old version. Might wanna
fix that?

edit: It just keept saying version 0.0.8 is availible for me until i ran table
update 0.0.8. Just running light table looked for updates but didnt find any.
When i finaly got the 0.0.8 version it greeted me welcomme to 0.0.7 :-)

------
endlessvoid94
If you get stuck at "waiting for server", make sure you're not using Java 7. I
installed it yesterday to play with Google Collide and light table wasn't
working.

Light Table is better than collide anyway :-P

------
munchor
What programming language was used to make Light Table?

~~~
ibdknox
Clojure and ClojureScript

~~~
batista
Was ClojureScript really used? For what?

~~~
asmala
Check out [http://www.chris-granger.com/2012/04/12/light-table---
a-new-...](http://www.chris-granger.com/2012/04/12/light-table---a-new-ide-
concept/).

------
lucian1900
It still doesn't work on my Chrome on Ubuntu :(

[edit] worked by deleting ~/.lighttable and trying again

------
spenvo
Is there any chance that V .8 or V.9 will support Javascript?

~~~
threepointone
I'd love to have any info on this as well. I tried learning a little clojure
to mess with light table, and I loved it. Aching to have instant feedback from
my js too.

