“Getting Serious” includes the first major feature set improvements of
Instiki since the 0.2.0 release. There’s the option to run in
multi-webs mode, which allows for more than one wiki namespace on the
same port. There’s revisions, so you can track the development of a
page, and rollback if someone tool the wrong turn. And much more.
But these features also required a major internal rework, so wikis
created on earlier versions of Instiki won’t easily port over.
Actually, there’s no way to do that but manually copy/pasting
content. I’ve ported a few wikis with a handfull of pages myself. It’s
not too bad. But if there’s sufficient demand for a porting script,
I’ll probably do one. So voice your request if you have a big wiki that
you’d rather not port by hand.
Full change list:
Each revision is stored on the page object and it’s possible to
navigate back through the history with Previous / Next.
Informal signatures as wiki words (DavidHeinemeierHansson) that are
stored in the cookie and attached to each revision.
Simple, optional password protection stored in the cookie.
Multiple wiki spaces running on the same port.
Command-line option for not running as a Daemon on Unix
Upcoming features:
Export to HTML with all control links stripped. All files named after
their wikinames in one big directory, example: GetThisStarted.html.
HomePage becomes index.html.
Two RSS feeds for recent changes. “Headlines” with just headlines,
author, and date. “Full content” that also include the entire page
content.
Admitted, it’s Yet Another Wiki Clone[1], but with a strong focus
on simplicity of installation and running:
Step 1. Download
Step 2. Run "instiki.rb 2505"
Step 3. Chuckle… “There’s no step three!” ™
You’re now running a perfectly suitable wiki on port 2505
that’ll present you with a textarea for the home page on entering.
Instiki lowers the barriers of interest for when you might consider
using a wiki. It’s so simple to get running that you’ll find yourself
using it for anything – taking notes, brainstorming, organizing a
gathering.
Instiki reserves a separate WikiSpace for each port number, so
you can run more than one wiki by keeping them on separate ports.
It also means that you can’t access the same wiki on another port
than the one you started it on (unless you move the directory in
storage).
Features:
Regular expression search: Find deep stuff really fast
Reference tracker: Which other pages are pointing to the current?
Speed: Using Madelein for persistence (all pages are in memory)
Textile formatting[2]: By ways of RedCloth
Embedded webserver: Through WEBrick
Missing:
Revision control
Access control (there’s not even an explicit user concept)
File attachments
Command-line options:
instiki.rb [PORT] [OPTION]…
-m/–multi-web: Enables multiple webs on the same Instiki port.
Great for allowing normal users to start new webs without the help of
an admin.
-s/–simple-server: Forces Instiki to run within the prompt and not
attach itself
as a daemon on Unix systems. Great if you want to test changes to
Instiki and don’t
want to bother hunting down the PID to kill it.
History:
0.5.0: NOTE: 0.5.0 is NOT compatible with databases from earlier
versions
Added revisions
Added multiple webs
Added password protection for webs on multi-web setups
Added the notion of authors (that are saved in a cookie)
Added command-line option for not running as a Daemon on Unix
0.3.1: Added option to escape wiki words with \
0.3.0: Brought all files into common style (including Textile help on
the edit page)
Added page locking (if someone already is editing a page
there’s a warning)
Added daemon abilities on Unix (keep Instiki running after you
close the terminal)
Made port 2500 the default port, so Instiki can be launched by
dobbelt-click
Added Textile cache to speed-up rendering of large pages
Made WikiWords look like "Wiki Words"
Updated RedCloth to 2.0.4
0.2.5: Upgraded to RedCloth 2.0.2 and Madeleine 0.6.1, which means the
Windows problems are gone. Also fixed a problem with wikiwords
that used part of other wikiwords.
I have installed insticki.0.3.1 on Sun in our office and run
it on port 2505.
Viewing on Sun within Netscape works (however the edit box is
a single line – probably due to an old version of netscape.)
However, the windows boxes (using IE) cannot see the page, but get a
’page not displayed’ error.
The linux boxes can see the page from Netscape but not from
IE (under a windows emulator).
Can anyone think of why we would be having these problems?
···
–
Jim Freeze
The power of Ruby. It’s more powerful than cheese.
Ruby. The little language that could.
In the force if Yoda’s so strong, construct a sentence with words in
the proper order then why can’t he?
C:\instiki-0.5.0>ruby instiki.rb
[2004-04-14 14:55:34] INFO WEBrick 1.3.1
[2004-04-14 14:55:34] INFO ruby 1.8.1 (2004-01-27) [i386-mswin32]
C:/ruby/lib/ruby/1.8/webrick/server.rb:29:in fork': The fork() function is unim plemented on this machine (NotImplementedError) from C:/ruby/lib/ruby/1.8/webrick/server.rb:29:in start’
from C:/ruby/lib/ruby/1.8/webrick/server.rb:79:in start' from C:/instiki-0.5.0/libraries/web_controller_server.rb:78:in start_server’
from C:/instiki-0.5.0/libraries/web_controller_server.rb:21:in initialize' from instiki.rb:21:in new’
from instiki.rb:21
C:\instiki-0.5.0>ruby instiki.rb -s
[2004-04-14 14:59:07] INFO WEBrick 1.3.1
[2004-04-14 14:59:07] INFO ruby 1.8.1 (2004-01-27) [i386-mswin32]
C:/ruby/lib/ruby/1.8/webrick/utils.rb:52:in getaddrinfo': getaddrinfo: servname not supported for ai_socktype. (SocketError) from C:/ruby/lib/ruby/1.8/webrick/utils.rb:52:in create_listeners’
from C:/ruby/lib/ruby/1.8/webrick/server.rb:72:in listen' from C:/ruby/lib/ruby/1.8/webrick/server.rb:63:in initialize’
from C:/ruby/lib/ruby/1.8/webrick/httpserver.rb:24:in initialize' from C:/instiki-0.5.0/libraries/web_controller_server.rb:18:in new’
from C:/instiki-0.5.0/libraries/web_controller_server.rb:18:in initialize' from instiki.rb:21:in new’
from instiki.rb:21
C:\instiki-0.5.0>
I am currently running the rubycentral one-click installer version of Ruby.
Running instiki.rb with Ruby 1.8.1 on Windows 2000 gives this error:
C:/Documents and
Settings/desmond/Desktop/misc/ruby/instiki-0.5.0/libraries/madeleine.rb:327:
in mkdir': No such file or directory - C:/Documents and Settings/desmond/Desktop/misc/ruby/instiki-0.5.0/storage/2500 (Errno::ENOENT) from C:/Documents and Settings/desmond/Desktop/misc/ruby/instiki-0.5.0/libraries/madeleine.rb:327: inensure_directory_exists’
from C:/Documents and
Settings/desmond/Desktop/misc/ruby/instiki-0.5.0/libraries/madeleine.rb:322:
in initialize' from C:/Documents and Settings/desmond/Desktop/misc/ruby/instiki-0.5.0/libraries/madeleine.rb:43:i nnew’
If I manually create directories storage/2500, it gets a bit further and
then
[2004-04-14 10:48:43] INFO WEBrick 1.3.1
[2004-04-14 10:48:43] INFO ruby 1.8.1 (2004-01-27) [i386-mswin32]
c:/program files/ruby/lib/ruby/1.8/webrick/server.rb:29:in fork': The fork() function is unimplemented on this machine (NotImplementedError) from c:/program files/ruby/lib/ruby/1.8/webrick/server.rb:29:instart’
from c:/program files/ruby/lib/ruby/1.8/webrick/server.rb:79:in `start’
And lastly if I try to run with “-s” option:
[2004-04-14 10:49:26] INFO WEBrick 1.3.1
[2004-04-14 10:49:26] INFO ruby 1.8.1 (2004-01-27) [i386-mswin32]
c:/program files/ruby/lib/ruby/1.8/webrick/utils.rb:52:in getaddrinfo': getaddrinfo: servname not supported for ai_socktype. (SocketError) from c:/program files/ruby/lib/ruby/1.8/webrick/utils.rb:52:increate_listeners’
from c:/program files/ruby/lib/ruby/1.8/webrick/server.rb:72:in `listen’
Something amiss in 0.5? Version 0.3.x seemed to work for me.
C:\instiki-0.5.0>ruby instiki.rb
[2004-04-14 14:55:34] INFO WEBrick 1.3.1
[2004-04-14 14:55:34] INFO ruby 1.8.1 (2004-01-27) [i386-mswin32]
C:/ruby/lib/ruby/1.8/webrick/server.rb:29:in fork': The fork() function is unim plemented on this machine (NotImplementedError) from C:/ruby/lib/ruby/1.8/webrick/server.rb:29:in start’
from C:/ruby/lib/ruby/1.8/webrick/server.rb:79:in start' from C:/instiki-0.5.0/libraries/web_controller_server.rb:78:in start_server’
from C:/instiki-0.5.0/libraries/web_controller_server.rb:21:in initialize' from instiki.rb:21:in new’
from instiki.rb:21
C:\instiki-0.5.0>ruby instiki.rb -s
[2004-04-14 14:59:07] INFO WEBrick 1.3.1
[2004-04-14 14:59:07] INFO ruby 1.8.1 (2004-01-27) [i386-mswin32]
C:/ruby/lib/ruby/1.8/webrick/utils.rb:52:in getaddrinfo': getaddrinfo: servname not supported for ai_socktype. (SocketError) from C:/ruby/lib/ruby/1.8/webrick/utils.rb:52:in create_listeners’
from C:/ruby/lib/ruby/1.8/webrick/server.rb:72:in listen' from C:/ruby/lib/ruby/1.8/webrick/server.rb:63:in initialize’
from C:/ruby/lib/ruby/1.8/webrick/httpserver.rb:24:in initialize' from C:/instiki-0.5.0/libraries/web_controller_server.rb:18:in new’
from C:/instiki-0.5.0/libraries/web_controller_server.rb:18:in initialize' from instiki.rb:21:in new’
from instiki.rb:21
C:\instiki-0.5.0>
I am currently running the rubycentral one-click installer
version of Ruby.
I have installed insticki.0.3.1 on Sun in our office and run
it on port 2505.
Viewing on Sun within Netscape works (however the edit box is
a single line – probably due to an old version of netscape.)
However, the windows boxes (using IE) cannot see the page, but get a
‘page not displayed’ error.
The linux boxes can see the page from Netscape but not from
IE (under a windows emulator).
Can anyone think of why we would be having these problems?
Because you’re using Windows? -ba-dum-bum-
Seriously, I had the same problem with ruWiki (i’m pretty sure that’s what
it was called) and that’s one of the main reasons I switched to Instiki
because it worked. I haven’t tried the newer versions of Instiki yet…
Running instiki.rb with Ruby 1.8.1 on Windows 2000 gives this error:
C:/Documents and
Settings/desmond/Desktop/misc/ruby/instiki-0.5.0/libraries/madeleine.rb:327:
in mkdir': No such file or directory - C:/Documents and Settings/desmond/Desktop/misc/ruby/instiki-0.5.0/storage/2500 (Errno::ENOENT) from C:/Documents and Settings/desmond/Desktop/misc/ruby/instiki-0.5.0/libraries/madeleine.rb:327: in ensure_directory_exists’
from C:/Documents and
Settings/desmond/Desktop/misc/ruby/instiki-0.5.0/libraries/madeleine.rb:322:
in initialize' from C:/Documents and Settings/desmond/Desktop/misc/ruby/instiki-0.5.0/libraries/madeleine.rb:43:i n new’
If I manually create directories storage/2500, it gets a bit further and
then
[2004-04-14 10:48:43] INFO WEBrick 1.3.1
[2004-04-14 10:48:43] INFO ruby 1.8.1 (2004-01-27) [i386-mswin32]
c:/program files/ruby/lib/ruby/1.8/webrick/server.rb:29:in fork': The fork() function is unimplemented on this machine (NotImplementedError) from c:/program files/ruby/lib/ruby/1.8/webrick/server.rb:29:in start’
from c:/program files/ruby/lib/ruby/1.8/webrick/server.rb:79:in `start’
And lastly if I try to run with “-s” option:
[2004-04-14 10:49:26] INFO WEBrick 1.3.1
[2004-04-14 10:49:26] INFO ruby 1.8.1 (2004-01-27) [i386-mswin32]
c:/program files/ruby/lib/ruby/1.8/webrick/utils.rb:52:in getaddrinfo': getaddrinfo: servname not supported for ai_socktype. (SocketError) from c:/program files/ruby/lib/ruby/1.8/webrick/utils.rb:52:in create_listeners’
from c:/program files/ruby/lib/ruby/1.8/webrick/server.rb:72:in `listen’
Something amiss in 0.5? Version 0.3.x seemed to work for me.
There’s no ‘fork’ function on Windows. Apparently it was added in 0.5.
Instead of ‘fork’ the Instiki writer should consider using threads or
Perhaps using win32-process (from RAA: The package provides fork, wait,
wait2, waitpid and waitpid2 for Win32 systems. It also provides an
alternative kill method. ).
Looks like win32-process would provide a ‘fork’ function on Windows.
BTW: Why not include win32-process in the standard Ruby distro so that if
you’re running Ruby on Windows and make a call to ‘fork’ it gets it from
win32-process?
Is there any other way to make Wiki links aside from using CamelType?
It would be neat if there was some syntax that let you make
single-word links, sort of like Wikipedia.
At Thu, 15 Apr 2004 00:54:12 +0900,
Its Me wrote in [ruby-talk:97147]:
If I manually create directories storage/2500, it gets a bit further and
then
[2004-04-14 10:48:43] INFO WEBrick 1.3.1
[2004-04-14 10:48:43] INFO ruby 1.8.1 (2004-01-27) [i386-mswin32]
c:/program files/ruby/lib/ruby/1.8/webrick/server.rb:29:in fork': The fork() function is unimplemented on this machine (NotImplementedError) from c:/program files/ruby/lib/ruby/1.8/webrick/server.rb:29:in start’
from c:/program files/ruby/lib/ruby/1.8/webrick/server.rb:79:in `start’
And lastly if I try to run with “-s” option:
It seems wrong that instiki.rb defaults server_type to Daemon,
I feel it should be left to WebControllerServer. And it’s not
only mswin, fork is not implemented on mingw and bccwin too.
the same goes for win32-mmap and win32-etc probably…
BTW having precompiled binaries of this extensions for ruby-mswin
would be nice, cause IIRC I got a problem with
ruby -rfake-mingw32 && make && make install
···
il 14 Apr 2004 16:31:15 GMT, ptkwt@aracnet.com (Phil Tomson) ha scritto::
Looks like win32-process would provide a ‘fork’ function on Windows.
BTW: Why not include win32-process in the standard Ruby distro so that if
you’re running Ruby on Windows and make a call to ‘fork’ it gets it from
win32-process?
It seems wrong that instiki.rb defaults server_type to Daemon,
I feel it should be left to WebControllerServer. And it’s not
only mswin, fork is not implemented on mingw and bccwin too.
I just got a patch from Florian Gloss that does this properly. Checks
if fork is available, if so, uses Daemon, otherwise uses SimpleServer.
I’ll bundle up a release with this patch, which also includes a
safe-mode option to forbid CSS in RedCloth, and probably a few other
features.
Looks like win32-process would provide a ‘fork’ function on Windows.
BTW: Why not include win32-process in the standard Ruby distro
so that if
you’re running Ruby on Windows and make a call to ‘fork’ it gets it from
win32-process?
the same goes for win32-mmap and win32-etc probably…
BTW having precompiled binaries of this extensions for ruby-mswin
would be nice, cause IIRC I got a problem with
ruby -rfake-mingw32 && make && make install
I will add these suggestions to our feature request list.
They won’t make it in our next release (which is a bug-fix release and will
be out very soon), but we will consider them for the next release.
You will need MSVC, though. I’ve read postings that there is a free version
of the msvc 6.0 compiler bundled with some unrelated package that can be
downloaded from MS. I haven’t verified or tried this out, but its on my
to-do list.