[ANN] Instiki 0.5.0: Getting Serious

What’s new in Instiki 0.5.0?

···

============================

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

Instiki is running its official website on Instiki itself:
http://instiki.nextangle.com

What is Instiki?

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.
  • 0.2.0: First public release

Download latest from:
http://
rubyforge.org/project/showfiles.php?group_id=186

Visit the official Instiki wiki:
http://instiki.nextangle.com/

License is the same as Ruby’s

[1] http://c2.com/cgi/wiki?
WikiWikiClones

[2] Textile Syntax: http://www.textism.com/
tools/textile/

David Heinemeier Hansson,
david@loudthinking.com
http://www.loudthinking.com/

Excellent…but…

David Heinemeier Hansson david@loudthinking.com writes:

  • 0.5.0: NOTE: 0.5.0 is NOT compatible with databases from earlier
    versions

Is there a way to upgrade an existing database?

···


Josh Huber

Hi

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?

David Heinemeier Hansson david@loudthinking.com wrote in message news:24B5590C-8D8A-11D8-822C-000A958E6254@loudthinking.com

What’s new in Instiki 0.5.0?

I am having a spot of trouble on Windows:

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.

Stephen.
± S.D.Sykes - www.stephensykes.com +
ruby -e ‘_=2;"||25~!A59(1A~47!K~#-6<.A~".scan(/./){
putc$&>$`?$/:
+=$&[0]-?4}’

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.

Thanks!

Josh Huber huber+rt@alum.WPI.EDU writes:

Is there a way to upgrade an existing database?

Nevermind, I read the posting more carefully, and noticed that I had
to cut & paste between them to upgrade.

My wiki is small, so it’s not a big deal.

···


Josh Huber

I was just about to install 0.5.0, but I’m I would run into the same
problem.

David, if you are using fork(), that function does not exist on the Windows
platform.

Curt

haldane wrote:

···

David Heinemeier Hansson david@loudthinking.com wrote in
message news:24B5590C-8D8A-11D8-822C-000A958E6254@loudthinking.com

What’s new in Instiki 0.5.0?

I am having a spot of trouble on Windows:

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.

Stephen.
± S.D.Sykes - www.stephensykes.com +
ruby -e ‘_=2;"||25~!A59(1A~47!K~#-6<.A~".scan(/./){
putc$&>$`?$/:
+=$&[0]-?4}’


Incoming mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.610 / Virus Database: 390 - Release Date: 3/3/2004

In article 20040414013336.GA5258@freeze.org,

···

Jim Freeze jim@freeze.org wrote:

Hi

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- :wink:

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…

Phil

In article K4dfc.46156$LL6.16943@fe1.texas.rr.com,

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?

Phil

···

Its Me itsme213@hotmail.com wrote:

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.

Bill Atkins

Josh Huber huber+rt@alum.wpi.edu wrote in message news:874qrnd2xj.fsf@amalthea.paradoxical.net

···

Excellent…but…

David Heinemeier Hansson david@loudthinking.com writes:

  • 0.5.0: NOTE: 0.5.0 is NOT compatible with databases from earlier
    versions

Is there a way to upgrade an existing database?

Hi,

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.

···


Nobu Nakada

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.

Stay tuned…

···


David Heinemeier Hansson,
http://www.basecamphq.com/ – Web-based Project Management
http://www.loudthinking.com/ – Broadcasting Brain

gabriele renzi wrote:

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.

Curt

hey, that’s cool :slight_smile:
thanks for the quick answer.

OTOH, it would be nice if we had a simple system to build the
OneClickInstaller by ourself. (not that I own a MSVC compiler but some
other may :slight_smile:

Say, download the OneClickBuilder, add package dirs, issue a ruby
buildstuff.rb and let it go…

I remember /\ndy said something like this was supposed to appear, is
there a chance?

···

il Thu, 15 Apr 2004 02:41:48 +0900, “Curt Hibbs” curt@hibbs.com ha scritto::

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.

gabriele renzi wrote:

hey, that’s cool :slight_smile:
thanks for the quick answer.

OTOH, it would be nice if we had a simple system to build the
OneClickInstaller by ourself. (not that I own a MSVC compiler but some
other may :slight_smile:

Say, download the OneClickBuilder, add package dirs, issue a ruby
buildstuff.rb and let it go…

I remember /\ndy said something like this was supposed to appear, is
there a chance?

the RubyInstaller is now a RubyForge project, and you can download all of
the source and build scripts from cvs at:

http://rubyforge.org/projects/rubyinstaller/

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.

Curt