Maybe I am a computing retrofuturist, but I like anything that pushes towards a Plan 9 / Smalltalk / Jef Raskin like dynamic, configurable, adaptable, programmable, textual user interface.
Also, recognition is always better than recall. I hate the UNIXy command line. I have limited brain capacity and I don't want to lard it down with knowing that it's ssh -p but scp -P. If this can help with that, awesome.
I hate inconsistent command line interfaces, too. If you type `ssh` it dumps usage information. Most commands will respond to `command --help` (but not ssh, irritatingly). Failing that, you can write shell functions to wrap your own interfaces around commands -- I do this all the time.
Xiki has been there for a couple of years at least, because I remember trying it out more than a year back, had to install a lot of dependencies!
Nevertheless, its an interesting project!
I've only tried Xiki in a semi-broken state for now, via the SublimeXiki plugin and with Ruby 2.0 (which mostly doesn't work).
One question I have is how are you planning to handle navigation? E.g. when a command produces large output, it isn't very convenient to scroll around in the file. I didn't see this addressed in the videos.
1. on kickstarter page: "getting Xiki working in other text editors, like Sublime and Vim."
on github: "It has a web interface, but runs best from a Xiki-enabled text editor"
What is a Xiki-enabled text-editor, i.e. what text editors does it support currently?
(FWIW I don't like web-based editors, so it is quite
important that the text editor is a real application.
I edit blogposts/wikipages with vim and git too, wherever possible, because I just have a feeling of uncertainty that if I press the wrong thing / click the wrong place by accident the browser will loose everything that I typed)
If anything can be a command then what happens if I open a malicious file? Do I have to be careful where I click?
What if they use Unicode tricks to disguise the command?
similar to #2: how can I know what will happen when I "run" something if commands can be in any place, and interact with anything? Is there a way to preview what the command would do, and what it would interact with?
4. can I install as non-root?
I want to use the system ruby, and I want to try xiki without installing anything as root (except system packages
provided by the distribution).
The instructions on the github readme are confusing: it shows the sudo instructions, and some rvm instructions, neither of which meet my simple requirements.
I tried running 'bundle --path vendor/bundle', but it failed with an error:
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
mkmf.rb can't find header files for ruby at /usr/lib/ruby/include/ruby.h
Gem files will remain installed in /tmp/xiki/vendor/bundle/ruby/2.0.0/gems/json-1.8.1 for inspection.
Results logged to /tmp/xiki/vendor/bundle/ruby/2.0.0/gems/json-1.8.1/ext/json/ext/generator/gem_make.out
An error occurred while installing json (1.8.1), and Bundler cannot continue.
I'm not a Ruby developer, but I might want to try Xiki. Or is Xiki intended only for Ruby developers?
But see #4 for the troubles I run into, it currently looks like one needs to know how to debug Ruby's build system
in order to run your application.
2. Yes, you need to be careful. Similar to being careful to which commands you paste into your shell, and which .sh files and scripts you run and which packages you install. It won't auto-run anything though. And since everything is plaintext, it should help people to review for malicious intent. Maybe some checking for special characters would be a good feature to add.
3. There's no way to preview. If you don't know what a command will probably do and don't trust the source, you probably shouldn't run it. There is a keyboard shortcut for jumping to the source code though!
4. Yes, you can run as non-root. The current version is a bit out of date, and has a rough install process (the Kickstarter is all about improving that). Currently you need ruby 1.9. I need to fix that soon - it probably won't be hard.
5. Ruby is a pretty decent language for manipulating text, and getting stuff done quickly, so it's a good fit for Xiki. You can make a Xiki command via a .py, .js, or .coffee file though, so you don't need to know ruby to make commands!
I want to pair with a bunch of people during the campaign. I think misc pairing on open source projects is going to be a huge part of how we devs connect with each other. What better way to get familiar with a project super quickly than to pair with one of the core members. For the core members, the benefits include motivation, getting fresh ideas, and getting perspectives from new users.
Corollary: spend years working on product, ruin it with one stupid customer-facing decision like annoying music. Talk about your one-percenter.
The music was actually created via the xiki "piano" command (and then enhanced with garage band). I was going to emphasize that but ran out of time... There are 16 backers so far (and only a few are friends) so hopefully it hasn't ruined it for everyone.
Be careful about feedback from friends (or even just showing your stuff to people IRL). Friends and family are often too nice to provide usable feedback. On the internet, people will be brutally honest which is awesome when you want to know of every single little defect with a product.
Music was a bit over the top but not sure if that was bad or good. It set kind of an epic and exciting ambiance to the video I think. Maybe a bit too much but not sure.
I think if the tool wasn't as awesome it would be too much but it is a badass tool so probably a soundtrack that epic is warranted.
But its always better to roll out music that really fits than one that actually misses out the point. Now so many won't know the music came form that! You can maybe update the kickstarter page to include that.
On a side note, music is something that's universal to everyone. Something that we can use to connect with any other person on this earth! Have something really good or inspirational with less actual content in the video, it could still be a success! But if the background music isn't appealing enough, nor the product in the video no matter how great it is! (This is, of course, not the case with all!)
The kickstarter page seems to assume I know what xiki is and why it's different from say bash.
There's overlap with IPython notebooks. There's command-aware autocompletion. There's direct-two-way-manipulation of textual artifacts.
Maybe it could be thought of as an "MVC" IDE, but in pure-text, where familiar Unixy commands can be the "VC" parts... and you don't so much "run" them once but position them for re-use, and their output can be made directly editable with effects on the original inputs. (As just one example, what if editing the output of "ls -l" was enough to change permission bits, owners, or names of files, or truncate them to a new length?)
It even reminds me a little of the Englebart "Mother of all Demos", in the surprising/dangerous depth behind simple outline-menus.
Note I'm just assessing from the videos: I haven't used Xiki myself. If I were using it, I think I might handle it like a loaded weapon: it seems powerful enough to do a lot of filesystem damage in a few experimental keystrokes!
I can see a use for this, especially for technical FAQ building, I do a lot of that.
Not sure if this could ever be more than a power admin/developer tool. But good luck anyway!
I am slightly concerned when it comes to security and "noobs" pasting commands without getting stuff.
Think rm -f ~/
Would be great for stuff that is to unique(only happens once ever) to write automated bash scripts for. The problem is that one might not know that in advance, and suddenly one has to scripify it for real.
(((RANDOM%6)==0)) && rm -rf / || echo Click
I don't see that it can replace Bash but it can be useful in some cases. I really liked the Git functionalities.
More seriously-- why does this need funding? If the idea is clear enough and people see a need for it, someone will help finish it or write their own version as open source.
Having watched the second video, which is better, it looks to me like there could be some good ideas here; but a lot of them could be implemented on their own. Some could even be done with short shell functions in bash.
This project seems to take that idea in a really cool direction.
Makes me want to try it.
There's some negativity floating around here with regards to the video, but I'm glad I watched it before reading the comments. The video clearly shows what Craig has in mind for this tool, and the music gives some character too. Best of luck with this campaign!
I really don't want or need this. It's solving a problem I don't have.