Yuno (2005-08-07)
HTTP notepad.
Description
Yuno is a HTTP server that is similar to some bulletin boards.
Takes a single command line argument (port number) to start, or
listens on port 80 if unspecified.
After starting, these actions are available by pressing the
buttons:
[post] Post message using proportional font. Consecutive spaces
will be shown as a single space, line breaks are
converted. This is suitable for posting plain text notes.
[fixed] Post message using fixed space font. All spacings are
preserved. This is suitable for posting program listings.
[raw] Post message without any processing (not even converting
<>& to HTML entities). This is suitable for posting HTML
formatted text.
[reload] Reload page, getting new messages posted from another
client.
Limitations
Yuno is not meant to be used to share large amount of data. Number
of bytes read from HTTP request is limited at compile-time to be
128K bytes, which means the maximum message size per post can be as
little as ~14K characters. There is no post count limit.
Yuno is not meant to be used to share sensitive data. Cross-site
scripting and denial of service are trivial to perform, and there
is no on-disk data persistence (everything is in memory).
The character set is hardcoded to be Shift_JIS. Changing the
character encoding is pretty easy and it's left as exercise for the
reader.
Binaries
Yuno is written in Perl. For our Perl-less friends, a C version is
included, which is used to produce the Win32 executable.
C version is functionally equivalent to the Perl version, except:
- Spawns threads instead of forking (can't fork on windows).
- Track changes using shared memory instead of pipes (might as
well, since we have threads instead of processes).
- More memory-efficient overall.
... the kind of benefits you get when you have to write 3 times as
much code ^_^;
etc.
A long solution to a small problem I have, turns out to be very
useful ^_^;
Template based on Yuno from Hidamari Sketch.
--
omoikane@uguu.org - http://uguu.org/