[ANN] Instiki 0.5.0: Getting Serious

  • Thread starter David Heinemeier Hansson
  • Start date
D

David Heinemeier Hansson

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!" (TM)

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:
<a
href="http://rubyforge.org/project/showfiles.php?group_id=186">http://
rubyforge.org/project/showfiles.php?group_id=186</a>

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

License is the same as Ruby's

[1] <a
href="http://c2.com/cgi/wiki?WikiWikiClones">http://c2.com/cgi/wiki?
WikiWikiClones</a>
[2] Textile Syntax: <a
href="http://www.textism.com/tools/textile/">http://www.textism.com/
tools/textile/</a>
 
J

Josh Huber

Excellent...but...

David Heinemeier Hansson said:
* 0.5.0: NOTE: 0.5.0 is NOT compatible with databases from earlier
versions

Is there a way to upgrade an existing database?
 
J

Josh Huber

Josh Huber said:
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.
 
J

Jim Freeze

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?
 
H

haldane

David Heinemeier Hansson said:
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}'
 
P

Phil Tomson

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- ;-)

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
 
P

Phil Tomson

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
 
G

gabriele renzi

il 14 Apr 2004 16:31:15 GMT, (e-mail address removed) (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?

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
 
G

gabriele renzi

il Thu, 15 Apr 2004 02:41:48 +0900, "Curt Hibbs" <[email protected]> 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.

hey, that's cool :)
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 :)

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?
 
B

Bill Atkins

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
 
N

nobu.nokada

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

David Heinemeier Hansson

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

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,766
Messages
2,569,569
Members
45,043
Latest member
CannalabsCBDReview

Latest Threads

Top