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.
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...
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/
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.
?
IMO, you have to consider the audience. Chris probably hasn't had time to build any kind of glossary for 'marketing-slang'. He's probably spent most of his time building the functionality that the new version of LT is displaying today.
The line you highlighted can make plenty of sense if you take the time to think about what each word means. There is no instant gratification for understanding.
What do I mean by that? Google 'REPL' and take the time to learn what that concept means. Do some research and play around with leiningen. I'm really not trying to be rude, but do you know what type of developers LT is aimed at right now? hint: clojure
HTH.
One thing to keep in mind is that this is an update to something already released, and terms like "Instarepl" were introduced there. Likewise, the playground itself is really only useful to people who either do Clojure or are interested in trying it out. The post contains links to things like Leiningen as that is likely new to folks starting out with Clojure, but aside from that I don't see many other Clojure specific things. Maybe it's worth reintroducing some terms every time, but I worry that serves as an equal annoyance to those who've already heard it all before.
What do you see as marketing-slang? And are there other things that made it frustrating to read?
You're apparently not alone though, so it's probably a good idea to make the writeups more readable to non-Clojurians.
What you are calling "marketing slang" are actually "common concepts". The definition of common is highly context dependent. Here, the common concepts are what is known by a clojure programmer.
> and a lot of it smells like a coffeehouse-MBA >> 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.
What kind of MBAs you hang out with who know what is REPL, leiningen, plugin etc, and use it in the copy-writing?
> 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.
So, every time he posts an update, he explains what is a REPL, leiningen, how to install leiningen, what is lein-light, how to install lein-light, what is clojure, how to install clojure?
You just run lein light is perfectly reasonable. Had he gone into details about leiningen, that would have been fluff and totally unnecessary.
LightTable is an IDE which right now is being developed for Clojure. If you don't know Clojure, you are't the target audience. I can assure you there isn't anything in the post which isn't obvious to a clojure programmer.
Is there a way to save files?
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?
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!
> 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?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.
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.
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.
(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?
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?
I'm on macosx 10.7. Perhaps it works better for Linux users?
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.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 :-)
Light Table is better than collide anyway :-P
[edit] worked by deleting ~/.lighttable and trying again