Search the web
Sign In
New User? Sign Up
extremeperl · Extreme Perl
? Already a member? Sign in to Yahoo!

Yahoo! Groups Tips

Did you know...
Hear how Yahoo! Groups has changed the lives of others. Take me there.

Best of Y! Groups

   Check them out and nominate your group.
Having problems with message search? Fill out this form to ensure your group is one of the first to be migrated to the new message search system.

Messages

  Messages Help
Advanced
FUD Starts Early   Message List  
Reply | Forward Message #478 of 500 |
Re: [extremeperl] FUD Starts Early

Mark A. Hershberger writes:
> What a coincidence! I write on my weblog by typing text in emacs and
> typing C-c C-c! (weblogger.el is my secret weapon.)

:-)

Since there's been an overwhelming demand for a blog, and since this
list has been getting more noise than signal lately (those buggers
registered a bunch of addresses a while ago, and are using them. I'm
tempted to kill all .in and .cn addresses in attempt to stop the
blight, but I digress...), I'll write a bit more about a recent bOP
change. FYI, I am writing this as much for bivions as for the OSS
community, just like I write code for my customers as much as for the
programming community...

I added a Wiki (per a customer request, of course :-) to bOP this
week. I also added a feature that allows our customer to use the Wiki
to write help text. WikiView.pm outputs XHTML, and the customer can
control the L&F by adding a base.css to the wiki directory. And yes,
as with everything in bOP, each Realm can have its own Wiki.

In the process of creating the Wiki, I was trying to figure out why
blogs, wikis, etc. are interesting. They are all CMS technologies and
they compete with each other. In bOP, they work together. To create
a blog, all you'd have to do is render the RealmFiles in a Table
ordered by date with WikiView. A blog is a chronological wiki. A
wiki is a blog with clear and uniform naming.

The way I see it, Wikis, blogs, html, etc. are an attempt at
decoupling the content from the presentation. It's a problem the
software industry has been repeatedly solving since at least the
1960s. It's really not that complex a problem -- hence the
re-inventions. It seems to me that programmers like solving simple
problems with complex solutions, because it's too hard to actually
write and re-use good abstractions. It's one of the reasons why CSS
is so messed up even though there were innumerable better solutions to
the problem of decoupling formatting from content prior to the
invention of CSS, but I digress again...

Why did I write my own wiki? Blogs and wikis get one thing wrong that
bOP gets right: groupware. They focus on the content creation and
naming, which is a trival problem, and they often do a bad job at it
imiho. weblogger.el seems like an odd mix of bad ideas, too. Why
does it use XML-RPC, when WebDAV has been around longer and is
supported by more web servers?

The two problems CMSes solve that general groupware systems don't
solve: naming and formatting. Groupware sometimes handles formatting,
but the point of groupware is to solve the
security-for-shared-resources problem. In other words, good groupware
gives the appropriate access to files and other communications to
people in a group. The formatting problem is something that you throw
on top of groupware, because people do need to format their content
every now and then. CMSes also handle versioning, but that's not the
topic I'd like to talk about today, and it really is distinct from
naming and formatting.

Assuming you've solved the file access problem, you'll use those
abstractions for the Wiki so all I have to think about is naming and
formatting. Naming in Wikis is just fine. CamelCase works, and I
just used that. You also want to match email addresses, domain names,
and local file references, and so one. In our wiki, you refer to an
image in the wiki folder by naming it, e.g mypicture.jpg. The wiki
formatter turns it into an <img> link just as it turns emails into
mailto's. (This is a private wiki so we don't care about hiding
addresses, and if we needed to, we could make the mailto: be a local
form email so the address doesn't get public.)

The general formatting problem is interesting. Just like this email,
I use blank lines for paragraph delimiters. I also allowed _italics_
and *bold*, but that's it. I didn't want to invent my own formatting
language, and I wanted to keep the essence of a wiki which is: it's
the content stupid. If you want to format, use HTML, Illustrator, or
TeX.

I tried to avoid the introduction of syntax for names of things,
because an interpreter can easily discern between the many types of
external objects we need to name and ordinary natural language.

I do know my customer wants bulleted lists, and a few other things
like strikeout and underline. I also know that with a collaborative
mechanism, there would be a price to pay if the syntax was not easily
usable by experts in HTML, and at the same time, understood by
people who don't like matching up angle brackets and tags so here's
what I came up with:

@ul
@li The syntax uses html tags so I didn't invent the names.
@li Similar tags close each other like good ole HTML 1.0.
@li Tags must begin at the start of a line so @perlvar is not treated specially.
@li
Only formatting tags were included, not @form, and @script,
This wiki is about content, which can be inserted in places,
and can link to the main HelpWikiHelp.
@ul

The wiki interpretation code is in a single 280 line module:

http://www.bivio.biz/f/bOP/lib/Bivio/Type/WikiText.pm

And since this an XP lists, here's the unit test:

http://www.bivio.biz/f/bOP/tests/Bivio/Type/t/WikiText.bunit

I hope those of you have read this far have found this useful. It's
the type of stuff that doesn't appear in code, and shouldn't. It's
not the type of stuff I can spend my time on, because I'm a much
better coder, and I strongly believe programmers learn the most by
trying to figure out abstractions rather than reading about them.
However, I thought I'd try this for a change and see what feedback I
get. :-)

Rob






Sun Mar 19, 2006 1:16 am

robnagler
Offline Offline
Send Email Send Email

Forward
Message #478 of 500 |
Expand Messages Author Sort by Date

I'm half way through the War of Art by Steve Pressfield, and I'm a bit shocked at his approach. I'm in the section where he explains Resistance as the thing...
Rob Nagler
robnagler
Offline Send Email
Mar 13, 2006
5:01 pm

... What a great post, thanks Rob. You don't have a blog for stuff like this, do you? Chris...
Chris Winters
winterschris
Offline Send Email
Mar 13, 2006
6:38 pm

... Thanks. No, I don't blog. I find it much easier to write text in Emacs and type C-c C-c. :-) Rob...
Rob Nagler
robnagler
Offline Send Email
Mar 13, 2006
8:01 pm

... Well, now I'm worried about blogging. I thought it was a good idea but now I'm not certain. I'm also quite scared because I've been using vim since I was...
apv
jinxdidnt
Offline Send Email
Mar 13, 2006
8:10 pm

... Rob...
Rob Nagler
robnagler
Offline Send Email
Mar 13, 2006
8:37 pm

... What a coincidence! I write on my weblog by typing text in emacs and typing C-c C-c! (weblogger.el is my secret weapon.) /me ducks -- http://hexmode.com/ ...
Mark A. Hershberger
hexmode
Offline Send Email
Mar 14, 2006
3:26 am

... Since there's been an overwhelming demand for a blog, and since this list has been getting more noise than signal lately (those buggers registered a bunch...
Rob Nagler
robnagler
Offline Send Email
Mar 19, 2006
1:16 am

... Why would people want to publish a weblog using Blogger's services? Whatever the reason that is why blogger.el was written to use XML-RPC. weblogger.el...
mah@...
hexmode
Offline Send Email
Mar 19, 2006
8:33 pm

Hey Rob, you aughta blog. Another interesting read is Douglas Rushkoff's "Coercion" ...
Greg C
gmc444
Offline Send Email
Mar 15, 2006
9:58 pm

... In a way I do. It's not fancy like other blogs, and it is communal, instead of me, it's "we". The nice thing about this blog is that is short and to the...
Rob Nagler
robnagler
Offline Send Email
Mar 18, 2006
5:38 pm
Advanced

Copyright © 2009 Yahoo! Inc. All rights reserved.
Privacy Policy - Terms of Service - Guidelines - Help