Softpanorama
(slightly skeptical) Open Source Software Educational Society

May the source be with you, but remember the KISS principle ;-)

Softpanorama Search

Perl Open Content Management Systems

News Recommended Books Recommended Links Blosxom  
Scoop Slash TWiki    

A blog is a web page made up of usually short, frequently updated posts that are arranged chronologically—like a what's new page or a journal.

Quickly conjugated to "Weblog," the shift of a space makes "we blog," and the shortened version is "blog." It has become the "in" technology of the moment on the Net. While at first glance, a blog may appear to be little more than an online diary of oft-uninteresting personal opinion and seemingly random links, there is much more to the blogging world of which the information professional should be aware.

The software for creating blogs is basic content management software, and it can fulfill purposes well beyond the keeping of an online diary.

WHAT'S A BLOG?

Blogs are as varied and diverse as their creators. Typically, it is a Web site with frequent, dated entries listed in reverse chronological order. The entries have links and commentary and often an opportunity for others to comment.

For typical layout check the Open Directory listings [www.dmoz.org/Computers/Internet/On_the_Web/Weblogs/] and try a few of interest.

CONTENT MANAGEMENT

Despite the hype from bloggers and journalists about Weblogs becoming the new media, it is nowhere near that level yet, and many information professionals can safely ignore the whole phenomena. But do not turn your back on the world of Weblogs completely until you also consider the content management angle.

The software automatically formats and posts the entry. It also automatically archives older ones on separate pages. If categories are used in the creation of entries, the software can also create subject-specific archives based on the keywords used. The site design can be edited within the blog software using pre-defined settings or more sophisticated redesigns.

And while the intent of the blogging software is to create a Weblog, it can be used for many other content management needs. Especially for those without a full content management system, the blog software can be an opportunity to get more people involved in posting content on a Web site. Use it for maintaining a news page, a What's New section, librarian's favorite books, incoming titles, or any other periodically updated page. It can even be used for more static sections on a site.

Weblogs are a fascinating Net development. They have been around for years. If, like me, you have avoided or dismissed them in the past, take another look. With the search capability of Daypop and the content management capabilities of the blogging software, new possibilities for both make them something to consider in a new light.

There are many block implementations. Among them

  1. Blogger Blogger is one of the easiest Weblog tools available. It takes about 5 minutes to sign up for a Blogger account, you get a tool for writing your blog, space on the Blogger server if you need it, and built-in templates so your pages have style right out of the box. With a subscription to Blogger Pro, you get additional options like spell-checking, image posting, and title fields. Vendor's Site
     
  2. Moveable Type Moveable Type is the blog I have chosen for my own use. It is a publishing system that you run on your own Web server. It can be difficult to install, but once you have it up and running, you'll find it fabulous. It is a free (for non-commercial use) tool, with all the features you expect from blogging software: templates, uploading images, publicity features, pre- and post-date entries, and more.
    Vendor's Site
     
  3. Greymatter Greymatter is another blog that you host yourself. I favor these types of tools because they are more secure with your passwords, and often offer more flexibility. Greymatter lives up to this as "the original opensource weblogging software". If you're looking for a no nonsense Weblog tool with lots of features, this is where to start. I had it installed on my Web server in about 30 minutes. Vendor's Site
     
  4. Radio Userland Radio has one thing that no other blog tool I reviewed had - an actual desktop tool for creating your blog. Radio offers all the features of your typical online Weblog, including promotion and linking, but the software runs on your desktop. And if you need to post and you're away from your computer, you can even use email to post a message to your blog. The cost is reasonable for the feature set.
    Vendor's Site

 

Using templates, you can post to the blog quickly and with minimal costs without knowing HTML, CSS, or design. Blogs are one of the simplest examples of content management, as they take basic content and do things like add HTML tags and hyperlink URLs so you don't have to.

Blogs do have a downside. Blogging does not provide the functionality of web pages, has limits for e-commerce solutions and can be time-consuming with regular posts.

  • Examples of Business Blogs
  • Gizmodo is a weblog about everything about gadgets and gizmos for those who want to remain on the cutting edge of consumer electronics. As a web magazine, Gizmodo is quickly building a specialized audience in consumer electronics with an advertising business model.
  • I was talking with a friend and for some reason we got on the subject of blogs. We both sometimes write things in our weblogs so we can store the info. Instead of post-its on the monitor, bookmarks in browsers, or to-do items in PDAs, we have blogs.

    I already "blog for Google", which is the same thing as the old usenet practice of posting a post about some problem I encountered and how I solved it. These entries are not really for discussion, but more for the archives so that the next poor soul can find it. Randal Schwartz tells me this is how it was back in the day when he could read all of usenet in a half-hour.

    Someday, when we get our heads wrapped around unstructured data stores, there may be Perl modules called DBI::bloxsom and DBI::PerlMonks to bring together this stuff. Until then we have blogs and Google, and blogging about blogs.

  • freshmeat.net Project details for My Blog

    My Blog aims to be simple to use while taking care of many advanced features for the user. This includes automatically resizing pictures when uploaded, pagination of blog entries as specified, and truncating and formatting of text as specified. The admin chooses from posting via the secure online script or via email, making blogging via camera phone possible. The admin is emailed when visitors post comments. Plugins for the My Photo Gallery and My Calendar scripts are available, and the admin can write his own plugins. The templating scheme is simple and compatible with all of the other scripts. Visitors can also subscribe to email notification of new posts.

    freshmeat.net Project details for 4est's Weblog

    4est's Weblog has pseudo code, emoticons, a censored word list, and time zone offset support with an option for a multi-user interface. Security is provided through a password protected post screen. You can enable or disable commenting.

    freshmeat.net Project details for MaBliki

    Mabliki is a bliki (a cross between a blog and a wiki) implementation that uses HTML::Mason. It allows multiple blikis with a single installation and implements several wiki formating options, including numbered and unnumbered lists, bold, italic, and monospace fonts, code blocks, headlines, and mathematic formulas. It is internationalized and themable, and includes three themes.

    freshmeat.net Project details for WebGUI

    WebGUI is a content management framework built to allow average business users to build and maintain complex Web sites. It is modular, pluggable, and platform independent. It was designed to allow the people who create the content to manage it online, rather than content management taking up the time of busy IT staff. WebGUI comes with a full discussion forum with the functionality of phpBB or FUD Forum, plus events calendaring, a photo gallery, a Web log (blog), FAQ and Link List management, and a very configurable user privilege and profiling system.

     

    Recommended Links

    Also review my Blog Software essay for links to other background resources and how to articles on blogging, which I may later split off into a separate page.

    I have added a few links here to dynamite articles that explain "What is Weblogging", or what is some aspect of it.  I tentatively plan a later article that has just that stuff, but I not yet decided if I shall call it "Blog Articles" or what.  in all probability I shall want several separate stories focusing on different aspects of the subject.

    [Radio Free Blogistan] QUOTE 

    Adding to my 'to review' list. I got my copy of We Blog from Amazon today, and I received Jesse James Garrett's The Elements of User Experience, a beautifully designed explication of his seminal model of the same name. For reviewing purposes, though, I'm afraid these go behind my reviews in progress (The Weblog Handbook, We've Got Blog, and Essential Blogging

    UNQUOTE [Radio Free Blogistan]

     

    Recommended Articles

    O'Reilly Network: Understanding Weblogs [Dec. 30, 2002]
    You read 'em all the time, but what makes a weblog a weblog? And how can you quickly jump in and start publishing your own? Wei Meng Lee shows you the blogging ropes.
      Context: ...weblogs tend to be technology-focused. But other weblog sites, such as Boing Boing, or Brian Jepson's Radio Weblog, cover a wide array of topics. On...
    [December 30, 2002]

    O'Reilly Network: Help me add link type values to O'Reilly Developer weblog links [Jul. 02, 2003]
    To links in your own weblog entries and to links in others' weblog entries!
      Context: ...Developer weblog links Bob DuCharme Jul. 02, 2003 07:05 AM Permalink Print Email weblog link Discuss Blog this In an earlier...
    [July 02, 2003]

    ONJava.com: Building an Open Source J2EE Weblogger [Apr. 17, 2002]
    Learn how David Johnson built a weblog application using XDoclet, the Castor framework, Struts, and the Velocity code-generation engine.
      Context: ...called webloggers: applications that make it easy for you to maintain a weblog, also known as a blog -- a public diary where you link to recent reading...
    [April 17, 2002]

    webservices.xml.com: A Weblog API For the Grassroots [Aug. 05, 2003]
    In his latest column Rich Salz discusses the grassroots weblog API, variously known as Atom and Echo , and makes substantive suggestions for how it should be changed to use SOAP.
      Context: ...A Weblog API For the Grassroots by Rich Salz August 05, 2003 Last month I looked at the Necho message format. I compared it to RSS, its...
    [August 05, 2003]

    O'Reilly Network: What We're Doing When We Blog [Jun. 13, 2002]
    Many journalists who write about the blogging phenomenon miss some of the key elements of this medium. Meg Hourihan, a respected blogger herself, discusses both the structure and the intent of weblogging ... just to set the record straight.
      Context: ...we can observe the common ground all bloggers share -- the format. The weblog format provides a framework for our universal blog experiences, enabling...
    [June 13, 2002]

    O'Reilly Network: bIPlog: Berkeley Intellectual Property Weblog [Mar. 07, 2003]
    Students from UC Berkeley's Computer Science, Law, School of Information Management and Systems, and Journalism Schools have launched bIPlog -- a weblog covering modern intellectual property issues. The weblog is the product of two months' prepration...
      Context: ...bIPlog: Berkeley Intellectual Property Weblog Scot Hacker Nov. 15, 2002 02:58 PM Permalink Print Email weblog link Blog this...
    [March 07, 2003]

    O'Reilly Network: Weblog Journalism is Hard, and it Smells Funny [May. 28, 2002]
    Sure, weblogs are great (I have one or two), but are they really going to bring down the sinister ivory towers of big media? Maybe I was the only person left to think so. Why'd I change my mind?
      Context: ...Weblog Journalism is Hard, and it Smells Funny chromatic May. 28, 2002 10:44 PM Permalink URL: http://www.microcontentnews.com/interviews/p2pj.htm...
    [May 28, 2002]

    O'Reilly Network: Blogging for Dollars: Giving Rise to the Professional Blogger [Aug. 12, 2002]
    What about the notion of paying people to blog for commercial sites covering genre-specific content? By providing financial incentive for great bloggers to publish, we remove economic constraints and enable them to devote their energies full-time to ...
      Context: ...Selecting and Using Weblog Tools By Cory Doctorow, Rael Dornfest, J. Scott Johnson, Shelley Powers, Benjamin Trott, Mena G. Trott Table of Contents...
    [August 12, 2002]

    O'Reilly Network: Berkeley Hosts Weblog Panel [Mar. 07, 2003]
    I'm currently participating in (doing tech support for and advising) a class at Berkeley on intellectual property, using the weblog as a vehicle. As part of the class, we're hosting a panel discussion titled Weblogs: Challenging Mass Media and Society...
      Context: ...Hosts Weblog Panel Scot Hacker Sep. 09, 2002 11:29 AM Permalink URL: http://journalism.berkeley.edu/events/weblogs.html Print Email weblog link...
    [March 07, 2003]

    O'Reilly Network: Clickz Weblog Business Strategies Conference: Day 1 [Jun. 10, 2003]
    I'm taking rolling notes from the Clickz Weblog Business Strategies Conference and posting them. Interesting stuff.
      Context: ...Clickz Weblog Business Strategies Conference: Day 1 Timothy Appnel Jun. 09, 2003 06:57 AM Permalink Print Email weblog link Blog this...
    [June 10, 2003]

     

     

    perl.com Blosxoms, Bryars and Blikis

    by Simon Cozens
    December 18, 2003

    Recently we heard from Kake Pugh about the OpenGuides project, a wiki-based collaborative city guide system; previously, we heard from Brian Ingerson about his Kwiki wiki implementation. Guides, wikis, blogs ... the new fashion in software engineering at the moment is the use of software to help organize, document, and facilitate collaboration -- the social software movement is gaining momentum, and Perl is one of the best languages for it.

    In this article we'll look not just at some of the existing social software tools in Perl (focusing, naturally, on my own Bryar blog toolkit), but we'll look at some ways to break, bend, and embed them in other tasks.

    Basic Blogging with Blosxom

    When I finally decided that the world would benefit from hearing my internal monologue, I naturally looked around for nice, simple blogging programs. Blogs are, essentially, simple things, and so I didn't want all-singing, all-dancing web-based database-backed content management systems. I knew that if I were going to blog, it would have to be easy for me to do so, and there's nothing easier than firing up a text editor in the next available terminal window and doodling my thoughts into it.

    Thankfully, Rael Dornfest has the same sort of laziness as I, and created Blosxom, a very simple blogging tool, which simply reads a bunch of files from the file system, finds the most recent and relevant, packages them up together, and sends them at a browser. That was how I saw blogging.

    Getting Blosxom up and running is, in keeping with the whole theme of Blosxom, quite simple. You need to download the blosxom zip file, unpack it, drop the blosxom.cgi file in your web server's cgi-bin directory, and then edit the first few lines of it to tell it the name of your blog and where the entries will live, and you're done.

    Posting into the blog is just a matter of creating a file called something.txt in the blog directory. It doesn't even matter what the something is. All that matters is the first line of the file, which becomes the title, and the rest, which becomes the story in raw HTML:

    
    First post!
    
    <p> Today I set up a blosxom blog. It was really easy! </p>
    
    

    You can then, if you like, style your blog with custom header and footer files, CSS, custom HTML for each blog post, and so on.

    Enter Bryar

    Of course, back when I started using Blosxom, things were not quite so easy, and templating required hacking the Blosxom CGI file itself, and things just didn't seem as neat as I wanted them to be. I liked Blosxom's simplicity, but didn't want to pay the price for it in terms of flexibility.

    At the same time, I was learning the wonders of the Template Toolkit, and thought that a well-designed blog should merely collect Post objects and send them to a user-defined template to do what it wants with them.

    So I started writing Bryar, which is designed to be a modular, extensible replacement for Blosxom. To make this happen, I needed to provide a default set of components that simply Does The Right Thing. Let's take a look at that default set before we go any further.

    When we install Bryar from CPAN, we're encouraged to run a command to set up a new blog:

    You probably want to run bryar-newblog in a likely home for
    your blog once we've finished installing.
        

    The bryar-newblog command simply sets up a decent default set of templates, creates a first blog post, and drops in a bryar.cgi driver, similar to blosxom. At this point, we're ready to go.

    Bryar's default collection of modules consists of a Bryar::DataSource::FlatFile, which emulates Blosxom's use of text files in the file system as a database of blog posts; there are Bryar::Frontend::CGI and Bryar::Frontend::mod_perl, which describe how URL parameters are retrieved from the server translated into a request for documents, Bryar::Document which represents each post, and Bryar::Collector which ties it all together. With the benefit of hindsight, that should have been called a Bryar::Controller, since the whole thing can be described as a Model-View-Controller application. But more on that later!

    Since all of these things can be overridden, we need something to keep track of which classes we're using, and the Bryar::Config class does that, reading an optional configuration file but otherwise providing mostly sensible defaults.

    In the rest of this article we're going to look at some interesting ways to override those classes, and build some more funky tools out of this social software framework.

    Blogging the Past

    Now it may surprise some people to find that I'm not really a programmer, although it may not come as a surprise to some of my colleagues.

    I was trained in modern and classical Japanese language and literature, with a side order of linguistics. Programming was a hobby that turned out to make a bit more cash than conjugating 10th century verbs.

    But as I began thinking a bit about blogging, I found an old Japanese diary of a lady-in-waiting to the Emperor, called the "Pillow Book", by Sei Shonagon. It was something I'd read before and found quite interesting, but picking it up again in a blog context put it in a completely new light. It read just like a 10th century LiveJournal.

    Here's a sample entry:

    Small children and babies should be fat. Provincial governors should be fat too, and other people who have done well for themselves. If they're too thin, it makes you think they're miserable.

    As well as thoughts, observations, tales of life at the court, the book contains a large number of random lists, which really made me think of LiveJournal polls and surveys. Here's another example:

    Things I think are elegant

    I decided that it would be quite fun to translate the blog -- uh, book -- in a fairly modern, relaxed style, use fictitious but plausible dates for the entries, and run it as a real blog.

    Naturally, I wanted to do this with Bryar, but there was going to be a slight problem; Bryar takes its entry dates from the Unix timestamp of the file, and try as I might, I could not persuade Unix to recognize epoch times a thousand years before the epoch. I had to find another way of getting the times.

    But since Bryar is extensible, this is really easy -- I just write a new data source class that gets the entry timestamp from somewhere else. I simply created a subclass of Bryar::DataSource::FlatFile called ...FlatFile::Dated, which takes its date from the first line, and title from the next line.

    Telling the Bryar blog to use the new data source was simply a matter of writing a little config file called bryar.conf:

    
    source: Bryar::DataSource::FlatFile::Dated
    name: Notes on a Pillow - Sei Shonagon's blog
    baseurl: http://blog.simon-cozens.org/shonagon/bryar.cgi
    

    And the rest, of course, is just a simple matter of classical Japanese translation.

    Blogging the House

    But as well as a linguist, I'm also a geek, and I use Perl to control various things around the house -- the house network, the division of the phone bill, and so on. This is all driven by Template Toolkit and Class::DBI.

    It seemed useful, at the time, to add a blog into this great mass of centralized control, so we could pass phone messages around. Of course, in the end, it was easier to just put a big whiteboard in the lounge. XP's "the simplest thing that could possibly work" wins again.

    But it was fun, and it allowed me to use Bryar in a new way. This time, we're using the original data source, collector, and other modules, but we're plugging them into an existing templating system. We already have code to deal with the web server, handle the URL processing, and the output; we already have code to transform objects into HTML; all we need is to collect the recent documents and hand them on to the templates.

    I did this by adding a Bryar object to our template variables, and calling the collect_current method on the Bryar collector, using Richard Clamp's Template::Plugin::Class module. This gave a bunch of Bryar::Documents, which the template system could manipulate however it desired:

    [% INCLUDE header %]
    [% PROCESS blogmacros %]
    
    <h2> Recent blog postings</h2>
    
    [%
    USE c = Class("Bryar::Collector");
    FOR post = c.collect_current(blog);
        display_post(post);
    END;
    %]

     

    Network Computing

    Perl-ing your Blogs
    Dr Seamus Phan, 1-Feb-2003

    Weblogs, or blogs, have become the underground movement for online journalism. With blogs, it is very easy for users who have no experience in writing HTML code, or using visual HTML editing tools such as Macromedia DreamWeaver MX, to upload Web content.


    It is done by using nothing more than glorified text editors with FTP (file transfer protocol), or even through the new breed of GUI-based blog writing and upload tools with a Web browser.

    If you examine some of the blog editing tools closely, you will see that they are nothing more than repackaged text editors with a simple FTP client included. If you are familiar with C++, Java or Cocoa programming, you are likely to be able to write such a tool in under one day flat. The code may not be pretty and there may be specific GUI quirks depending on your operating environment, but I suspect that the tool will work.

    Rael Dornfest, a researcher at O’Reilly & Associates, has a simple and elegant Perl blog script, which I have used in this example. It remains one of the simplest blog scripts I have seen, although in the future we may even have simpler PHP versions. If you need to integrate the blog uploads to a calendar, you may have to patch the script to accept Javascript or Perl calendar scripts.


    Parameters for editing

    Dornfest’s Perl blog script provides a few simple parameters to edit and you are ready to go. Bear in mind that if you intend to have a Website look-and-feel that resembles your own content, you have to tweak the head.html and foot.html files accordingly. Since this blog script, as with many server-based CGI scripts these days, rely on discrete HTML files to be joined during runtime execution, some server-based testing is necessary—quite a departure from static HTML editing.

    First off, check that the line #!/usr/bin/perl –w is pointing to the right Perl directory on your server. Next, change those variables under “configurable variables”, especially the $datadir directory.

    Dornfest’s script works by having you deposit simple text files into the right directory, and the script will automatically merge the textual content into the format determined by the style templates of the HTML code.

    I have given an example of how the text file can look like. You can label the text file in any way you choose, although I would recommend that you name them in ways you can reference later, such as full date with single word description of the content (e.g. 20030115_higheredu.txt). Remember that as with any server systems, you should NOT have spaces in file names, and should respect Unix file naming conventions to avoid problems during deployment.

    You can determine how many articles will display in a single Web page, under the $num_entries parameter. If you tend to upload short news clips, with embedded links to full text, you can have a higher number (e.g. 30). But if you tend to feature the entire article in full, you may want to limit the $num_entries to five or under.



    Style’s a lot of work

    As with many blog scripts out there, Dornfest’s Perl script allows the use of “flavours”, or templates. You name the templates xxx.html, and it can be addressed through the use of the URL convention. For example, you may want to call an alternative “flavour” other than the default, and your URL should be: http://www.ABC.com/pathto/blosxom.cgi/?flav=yourflavour.

    If you think your job is done, think again. You need to prepare flavour template HTML files for each of the components, including the likes of head.yourflavour, foot.yourflavour, story.yourflavour, and content_type.yourflavour.

    The content_type.yourflavour file is to state that the default content for all these discrete HTML components are indeed HTML, and not any other type of encoding.

    HTML is a subset of XML, as is RSS, which is something that is used for news aggregation. Because RSS is recognised innately as well, it is therefore possible to tweak the script to recognise XML formatting, assuming that you have edited a new set of HTML or XML templates, including the head, foot and story files.

    The script uses the join command to join the discrete HTML or XML components together to form the entire Web page, before using the print command to print to screen for representation in Web browsers.

    Further, if you intend to stray away from the standard and understandably boring stylesheet, you have to know a bit about Cascading Style Sheets (CSS). With CSS, you can easily modify the entire look-and-feel of all Web pages and still be able to tweak individual textual elements on specific pages.

    Dornfest’s script works mostly as advertised. However, showing full URL links exhibited some errors in certain freeBSD installations, although they can be tweaked to work. Most other Unix or similar operating systems should work without much hassle.

    Worth the effort?

    If you need a platform that can be an efficient and affordable news generation and collaborative tool, that is accessible to just about anyone who can use a Web browser, blogging is the way.

    But if you need something more powerful, find a full-fledged content management system (CMS).

    Seamus Phan is a research director at KnowledgeLabs News Center (www.knowledgelabs.net), an independent technology news bureau. He can be reached at seamus@knowledgelabs.net.
     


     


     

    Weblog Madness Roll Your Own

    Steven's Weblog

    knowledge management

    Easy Content Management

    Weblogs.Com Top-100 Links from Weblogs

    Joel on Software

    What is Scripting News

     

    Nothing ever really dies (Score:1)
    by $$$exy Gwen Stefani (654447) on Sunday March 02, @02:19PM (#5419654)
    (http://slashdot.org/...n%20Stefani/journal/ | Last Journal: Sunday March 02, @06:53PM)
    There are companies that are still using very old, antiquated operating systems and software. The reason is justifiable though -- they still work for what they need them for.

    I'm sure Dell's CIO was just stating that for Dell UNIX is dead, and sure, he's probably right that Oracle+HP UX is more expensive than PostgreSQL+Linux even though they can both do the same thing. No one would argue against this.

    I mean, just look at Slashdot. There are several other codebases for dynamic websites that are now incredibly more complex than Slashdot's own Slash code project. But they still use Slash code because it fits their needs mostly, and porting it over to PostNuke or Scoop would be a lot of unnecessary work.

    So yeah, UNIX is dead in terms of new solutions. But somewhere, somehow, there'll always be a VAX computer, or a COBOL program, or some other very old legacy code that still works wonders, even today

    TWiki

    is a Wiki. TWiki enables simple form-based web applications, without programming, and granular access control (though it can also operate in the classic 'no authentication' mode). Other enhancements include configuration variables, embedded searches, server side includes, file attachments and a plugin API that has spawned over 150 plugins to link into databases, create charts, sort tables, write spreadsheets, make drawings, track Extreme Programming projects and so on. The main scripts are written in Perl.

    TWiki now has a modern look and feel with its default 'skin'. It is fully skinnable and can be used to create modern-looking Wiki sites. It includes reasonably good support for Internationalization ('I18N'), with support for UTF-8 URLs and planned support for UTF-8.

    The ease of its revision control and the availability of Access control lists makes TWiki especially suited for corporate wiki sites.

     

    Major features

    Releases

    External link

    Scoop

    Scoop is a weblog script written in Perl with a MySQL backend. It is different then other weblogs, in that it allows the users to decide what stories get posted.

    Scoop is an open source (GNU GPL) content management system and Weblog engine written in Perl, run via mod_perl and Apache, with a MySQL backend. It was originally written by Rusty Foster for Kuro5hin but is now developed mostly for DailyKos. Scoop content is centered around stories, which may have comments, polls, files, and other things associated with them.

    Scoop provides a framework for adding features in a seamless manner, by allowing the site owner to store Perl code in the database. There is a library of features available at the Scoop Box Exchange. Once installed, "boxes" are seamless extensions to Scoop.

    There are now several hosting companies operating which handle the hosting, installation, and maintenance of the Scoop program, leaving site owners free to focus on the content.

    SourceForge.net Project Info - Scoop


    slash-faq2

    Get HELP! with a how-to (Score: 0)
    by on Thursday, February 27, 2003
    What you need to do before installing slash is get help. The best help available usually comes in the form of a how-to. And here is one, How-To Install Slash for Dummies
    this is an excellent how-to that got me through the install process. One thing that probably got in your way is not installing apache from the source. The how-to is right on the money on that:

    NOTE!! If you already have apache and/or mod_perl installed via RPM or .DEB packages, its very very unlikely slash is going to work for you. You can try to use them, but 9.99 times out of 10 it will fail miserably in some form or other and you'll be frustrated as to why this or that didn't work correctly. For this documentation, I'm assuming you've either just installed your distro without apache, or correctly removed all apache traces via your package manager.

    I even managed to set it up on OS X!
    Furthermore, once it's installed, it's no maintenance and works perfectly.
    Pierre-Etienne Chartier --patience et longueur de temps font plus que force ni que rage

    Installing Slash for a Private Project

    HOWTO: Installing Slash for a Private Project
    Posted on Wednesday, February 26, 2003 by Paul Barry
    Printer Friendly Page  Send this Article to a Friend


    Other Software If you've thought about using Slash for a personal project, read this first, and learn from Paul's frustrations and do-overs.

    Every academic department at the Institute of Technology, Carlow, Ireland, is required to perform an externally validated Programmatic Review every five years. In a nutshell, the review is designed to examine the workings of the department and their effectiveness, plus provide answers to questions such as:

    • Are our courses industry relevant?
    • Are our courses up-to-date?
    • What do we do well?
    • What could we do better?

    The Department of Computing, Physics and Mathematics, of which I'm a member, currently is working on such a review. The biggest problem to date has been organizing meetings that involve over 30 staff members. Due to timetabling constraints, not everyone can attend every meeting without canceling classes. Short meetings often turn into long debating sessions. And, of course, there's the problem of having everyone sit in on a meeting that may cover topics of no particular interest to them. What starts out as a meeting to discuss assessment methods turns into a debate about preferred programming languages or operating systems. Holding large, department-wide gatherings has tended to be counterproductive, and reaching consensus on important issues is difficult, if not impossible. Of course, smaller "everyone interested in this topic" meetings are common, and e-mail is used to solicit opinion and ideas. However, no common mechanism exists to collect and collate the various opinions being expressed or decisions being made. On top of everything, we are struggling to work under a strict deadline.

    The crux of the problem was the synchronous nature of the traditional department meeting was working against us. What our particular environment needed was an asynchronous medium that would allow staff to interact with one other when it suited them, to have their opinions heard and--critically--recorded, and to provide a focus for moving the Programmatic Review forward. This realization lead me to Slash.

    Most of you probably are already familiar with Slash. It is the GPLed system that runs Slashdot, the global geek news site. I rarely visit Slashdot, preferring to check Use Perl every day for gossip about Perl. Both sites, as well as many others, use the Slash system. My idea was to take Slash, install it locally and then use it in support of the department's Programmatic Review activities.

    For the remainder of this article, I describe the process I went through to get Slash working. As you'll see, it was not all plain-sailing, and I made some mistakes along the way. In documenting what I did, it is my hope that, should you find yourself needing to install Slash, you can learn from my experience.

    There are seven steps to installing Slash.

    Step 1: Install a Database Backend

    Slash requires a database backend. At the present time, MySQL is the best supported database technology (with support for PostgreSQL under development). My target platform was an aging Apple Macintosh G3 Server, running release 2.3 of YellowDogLinux, a PowerPC distribution based on Red Hat. Prior to this, I'd never run a database on this server, so my first order of business was to get MySQL installed and configured. Luckily, the various MySQL RPMs were already in place, so all I had to do was switch on the MySQL dæmon with a few chkconfig commands (issued as root). These commands installed and configured the appropriate MySQL startup scripts into my boot sequence:

        chkconfig --add mysqld
        chkconfig mysqld on
    

    The Slash documentation suggests adding two lines to the script that executes MySQL, which is /usr/bin/safe_mysql on my system. As root, I used vi to add these two lines to the start of the file:

        TZ=GMT
        export TZ
    

    A quick reboot confirmed that MySQL was installed and executing on the server. As this was the first time I'd executed the MySQL server, I issued the following command at the Linux prompt, setting the MySQL root password to one of my choosing:

        mysqladmin -u root password 'passwordhere'
    

    It is now possible to securely access the MySQL Monitor command-line utility with the following command, providing the correct password when prompted:

        mysql -u root -p
    

    With MySQL ready, I used the Linux adduser command to create a user, called slash, that would own the MySQL database used by Slash. This may not have been necessary, but I did it in case I was asked to identify an "owner" during the installation of the Slash system.

    From MySQL Monitor, I created a database for my Slash system, as well as a MySQL user called slash, granting all privileges on the newly created database to this user:

        mysql -u root -p
    
        mysql>  create database PROGREVIEW;
        mysql>  use mysql;
        mysql>  grant all on PROGREVIEW.* to slash identified by 'passwordhere';
        mysql>  quit
    

    Note that user slash is created within MySQL as a side-effect of granting these privileges. By the way, the Slash documentation recommends granting all privileges on the database. This may not suit you (or your database administrator), so be sure to check the Slash README/INSTALL documentation for the minimum set of database privileges.

    In working with and testing MySQL, I received some strange authentication errors. I used MySQL Monitor to investigate and noticed that the user table in the database had a number of rows with empty user-ids. I deleted these rows from the table, and the authentication errors went away. Here are the commands I used:

        mysql -u root -p
        mysql>  use mysql;
        mysql>  select * from user;
        mysql>  delete from user where User = '';
        mysql>  quit
    

    MySQL now was ready to go.

    Step 2: Install Apache/mod_perl

    Next up was the installation of Apache with support for mod_perl. Again, my YellowDogLinux was not running either of these services and, unlike MySQL, neither of them were in place. Rather than download their source tarballs, I opted to download and install the prebuilt and preconfigured binaries from the YellowDogLinux FTP server. This process is automated by the apt-get system, which should be familiar to Debian and SuSE users. Red Hat users have a similar tool, called up2date.

    The following commands (issued as root) downloaded, installed and configured these services:

        apt-get install apache
        apt-get install mod_perl
        chkconfig --add httpd
        chkconfig httpd on
    

    I then edited the Apache configuration file located at /etc/httpd/conf/httpd.conf and uncommented the following lines to enable mod_perl:

        <IfModule mod_perl.c>
            Alias /perl /var/www/perl
            <Directory /var/www/perl>
                SetHandler perl-script
                PerlHandler Apache::Registry
                Options +ExecCGI
            </Directory>
        </IfModule>
    

    Another quick reboot confirmed that Apache was running on the system. I used a small Perl program from Chapter 4 of my book (see Resources) to display the headers Apache returned:

        ./wwwb HEAD localhost /index.html
    

    This step produced the following output:

        HTTP/1.1 200 OK
        Date: Thu, 30 Jan 2003 10:29:53 GMT
        Server: Apache/1.3.27 (Unix)  (Yellow-Dog/Linux) mod_perl/1.24_01
        Last-Modified: Tue, 24 Dec 2002 07:46:41 GMT
        ETag: "11b5-933-3e0810e1"
        Accept-Ranges: bytes
        Content-Length: 2355
        Connection: close
        Content-Type: text/html
    

    The Server: line of this output confirms that Apache is running with version 1.24 of mod_perl enabled. I was not looking forward to building Apache/mod_perl from source, and now it looked it wouldn't be necessary. The Slash documentation did advise that certain Apache/mod_perl setups don't work well with Slash, but I decided to try, resigning myself to the fact that building Apache/mod_perl from source would be necessary if I ran into trouble.

    Step 3: Install Perl

    Slash, which is written entirely in Perl, recommends version 5.6.1 of the language. YellowDogLinux comes configured with the 5.6.0 release. To upgrade, I decided to let the CPAN module update Perl for me, something it can do automatically. As root, I fired-up the CPAN shell and asked the system to install the CPAN bundle. This not only installed the latest CPAN module, but also downloaded, compiled and installed release 5.8.0. of Perl:

        perl -MCPAN -e "shell"
        cpan>  install Bundle::CPAN
        cpan>  quit
    

    If this is the first time you've used the CPAN shell, you will be asked to provide some initialization settings. Provide answers to the questions as posed. If something goes wrong or if you make a mistake, press Ctrl-C to abort the initialization, then issue this command to restart it:

        cpan>  o conf init
    

    With the latest Perl in place, I reset the machine again (just to be safe).

    Step 4: Install Bundle::Slash

    Slash requires the installation of 32 third-party Perl modules. The Slash documentation warns that zlib and expat need to be installed prior to the installation of some of the required modules. I queried the RPM database to confirm this was indeed the case:

        rpm -q zlib
        rpm -q expat
    

    Refer to Resources at the end of this article for the zlib and expat web sites, should these technologies not be installed on your system.

    Now, if you're a masochist with not much else to do, you can install each of the required Perl modules by hand, downloading them from your nearest CPAN. Alternatively, use the CPAN shell to install the Bundle::Slash distribution, which does it all in one go. This is what I did:

        perl -MCPAN -e "shell"
        cpan>  install Bundle::Slash
        cpan>  quit
    

    I ended up babysitting this entire process, as the bundle required me to respond to a number of prompts from various modules. So you know, the download and installation process for all of these modules takes quite a while. The most important piece of information to remember while installing this bundle is the value assigned to the virtual user name, because the DBIx::Password module prompts for it. This value is required while installing the Slash source code. Any alphanumeric string will do, and I choose "Programmatic". The DBIx::Password module installation also prompted for details of my database and MySQL user name, and I provided answers to the prompts based on the values I'd chosen during Step 1. I was careful to check any messages displayed at the end of the bundle installation. A small number of modules had problems installing, so I had to install them by hand to resolve the difficulties.

    With the installation of this bundle complete, I was ready to start installing the Slash source code.

    Step 5: Install Slash

    From www.slashcode.com I downloaded the latest source code by accessing the Current Slash quick link, which redirects to SourceForge. From this location, I downloaded slash-2.2.6.tar.gz, then started the install with the familiar set of commands:

        tar zxvf slash-2.2.6.tar.gz
        cd slash-2.2.6
        make
    

    This produced an error: the Apache/ExtUtils.pm module could not be found, and the make aborted. This was not one of the 32 required Perl modules, so I fired-up CPAN to fetch and install it, as follows:

        perl -MCPAN -e "shell"
        cpan>install Apache::ExtUtils
        cpan>quit
    

    To my complete surprise, this resulted in version 1.27 of mod_perl being installed (in support of Apache::ExtUtils). I was even more surprised when the installation asked me for the location of my Apache source. The problem was I didn't have one, as I'd installed Apache from its binary RPM file. In order to try and continue, I opened up another console terminal, used lynx to surf to the Apache web site and downloaded the 1.3.27 release. I unpacked the tarball in a temporary directory, and then fed this directory location to the mod_perl install. I crossed my fingers.

    I then was asked if I wanted to use this source to build mod_perl. The default response was y, so I choose yes. I then was asked if I wanted to build httpd from the same sources. The default response was again y. I went ahead and choose yes, although, to be honest, I was a little worried at this stage about what actually was going happening.

    After a relatively quick compile, the installation of the module (and, I'm assuming, mod_perl and Apache) was complete. I quit the CPAN shell and retried the make from the Slash source code directory.

    This time things went somewhat smoother, until the installer tried to copy some files into a protected location, realized it was not running as root and bombed out again. Of course, the Slash README and INSTALL documents had told me to do everything as root. So it was my own fault that this occurred, because I was logged in under my regular user-id. I tried make again as root.

    I got even further into the make but bombed out again, this time because certain header files were missing. To my horror, upon inspecting the generated error messages, it appeared that the system was referencing Perl 5.6.0 and not the upgraded 5.8.0 release. Indeed, perl -v confirmed that release 5.6.0 was running. I issued the whereis perl command and was told that Perl existed in both /usr/bin/perl and /usr/local/bin/perl. The former was the 5.6.0 executable, and the latter was the executable for the 5.8.0 release. I could fix this by turning /usr/bin/perl into a link to /usr/local/bin/perl. Having just installed a large collection of Perl modules, though, I was unsure whether they had been installed into release 5.6.0 or 5.8.0 of Perl, so I was concerned. I executed the appropriate ln command, then ran make again.

    To my relief, this time make appeared to work fine. I held my breath and typed:

        make install
    

    After a long series of messages, the "Thanks for installing Slash" line appeared on screen. One final task was to add an Include of the generated slash.conf file to the bottom of Apache's httpd.conf file. I was almost done.

    Step 6: Installing the Slash Site

    The initialization of the Slash site is straightforward. I entered these commands (note the use of the "Programmatic" virtual user name from Step 4):

        cd /usr/local/slash
        bin/install-slashsite -u Programmatic
    

    Unfortunately, this command failed, complaining that DBIx::Password was not installed in the Perl 5.8.0 module paths. It appeared the modules from Step 4 had been installed for Perl 5.6.0 and not 5.8.0, so I reran the commands from Step 4. As the CPAN module had already downloaded all of the required modules for Perl 5.6.0 and stored them in its cache, they were all locally available to 5.8.0 as a result. This sped things up considerably.

    Unfortunately, after installing the modules into Perl 5.8.0, my troubles still were not over. When I restarted Apache, the httpd startup failed, displaying errors relating to missing Perl modules in the 5.6.0 paths.

    Then it struck me: the RPM binary for mod_perl was compiled for use on YellowDogLinux, and YellowDogLinux assumes Perl 5.6.0 is installed, as does the mod_perl RPM. Although I'd upgraded to Perl 5.8.0, mod_perl was still Perl 5.6.0. The true extent of the folly of relying on RPM binaries was becoming clear to me.

    I removed the Slash Include line from the httpd.conf file, started Apache and checked which version of mod_perl was running. It was still 1.24, even though as part of Step 5 it appeared that version 1.27 of mod_perl has been built and installed. It had been, of course, but not in the same directory structure as the older Apache/mod_perl installation supported by YellowDogLinux.

    I removed all trace of YellowDogLinux's Perl 5.6.0 from the system with this command:

        rpm -e --nodeps perl
    

    then removed mod_perl as follows:

        rpm -e mod_perl
    

    This also removed the Apache executable from the system. There was nothing for it: I'd have to backtrack to Step 2 and install Apache/mod_perl from source. I went to the Apache web site and downloaded the source for release 1.3.27, then popped over to the mod_perl web site and downloaded the 1.27 release. I put these files into my "things to install" directory, then issued the following commands to install Apache/mod_perl:

    cd /home/barryp/toinstall
        tar zxvf apache_1.3.27.tar.gz 
        tar zxvf mod_perl_1.27.tar.gz
        cd mod_perl_1.27
        perl Makefile.PL APACHE_SRC=../apache_1.3.27/             \
            DO_HTTPD=1 USE_APACI=1 PERL_MARK_WHERE=1              \
                EVERYTHING=1 APACHE_PREFIX=/usr/local/apache/
        make
        make test
        su
        make install
        Ctrl-D
    

    To be safe, I re-ran the commands from Step 5, and everything appeared to go well.

    I was prompted for a number of values during the now successful execution of the install-slashsite program. I identified the hostname of the Slash server as well as the user and group under which Slash would run (I opted to stick with the suggested "nobody"). A list of plugins was displayed, and I was given the chance to add/remove them from the list. I choose to keep the default set of plugins. When asked if I wanted to install these files as symlinks, I again went with the default response and choose yes. For the site administrator username I entered slash and then provided an appropriate password and valid e-mail address. The final message from the install-slashsite program again suggested changes to be made to the Apache httpd.conf file.

    It was now time for the moment of truth.

    Step 7: Give It a Whirl!

    I stopped and started the httpd dæmon (restarting is not enough) and then started the /etc/init.d/slash dæmon. From another machine, I typed in the URL of my just-installed Slash system. After a short pause, up popped my Slash site. From the opening page I logged in as the slash user, clicking on the backSlash hyperlink to access the administrator options. I was up and running.

    Although it is possible to start working with Slash right away, I'd recommend reading the included Slashguide, which is found in the Docs directory or by clicking Help from the main Slash menu. There's enough in this document to get you started on the road to changing the way your Slash site looks and operates. After that, it's a case of advertising your site's existence and letting your users at it.

     

    Red Hat 8 Footnote

    I tested these instructions on Red Hat 8 and initially had problems with the pre-installed Apache 2. When I downgraded to the 1.3.27 version of Apache/mod_perl, things worked perfectly. The only downside was the resulting system was as slow as molasses. This slowness had more to do with the fact that Red Hat 8 was running on my two-year-old laptop, configured with 64MB of RAM (well below the recommended minimum for Slash) than anything else. On top of this, I tested the system from localhost using the Mozilla browser, which did not help matters.

     

    Resources

    I could not have made it through the install and configuration of MySQL without a copy of my trusty reference, MySQL, written by Paul DuBois and published by New Riders, 2000.

    The source code for wwwb is part of the bundle.

    The SLASH web site

    The Perl web site

    The CPAN Repository

    The zlib web site

    The expat web site

    The Apache web site

    The mod_perl web site

    Slashdot

    Use Perl

    Paul Barry lectures at The Institute of Technology, Carlow in Ireland. His first book, Programming the Network with Perl, was published in February 2002, by Wiley. His next book, Bioinformatics, Biocomputing and Perl, is a collaboration with Michael Moorhouse. It is due to be published in late 2003, again by Wiley.

     

    Etc

    Serendipity Weblog System

    Serendipity is a weblog/blog system, implemented with PHP. It is standards compliant, feature rich and open source (BSD License).

    Serendipity is constantly under active development, with a team of talented developers trying to make the best PHP powered blog on the net.

    Serendipity has so far also proven 100% PHP5 compatible.

    PostNuke

  • PostNuke is an open-source content management system written in PHP and uses the MySQL database. PostNuke can be hosted on Linux, Unix, Windows, and Macintosh OS X servers - as long as it runs PHP and MySQL, it can run PostNuke! PostNuke provides developers and novices with an advanced set of tools to create a customized user experience. PostNuke goes beyond managing content, it provides you with the tools to manage a community!

  • PostNuke.com -- Make It Your Choice!

    PostNuke Navigation

     


    Copyright © 1996-2009 by Dr. Nikolai Bezroukov. www.softpanorama.org was created as a service to the UN Sustainable Development Networking Programme (SDNP) in the author free time. Submit comments This document is an industrial compilation designed and created exclusively for educational use and is placed under the copyright of the Open Content License(OPL). Site uses AdSense so you need to be aware of Google privacy policy. Original materials copyright belong to respective owners. Quotes are made for educational purposes only in compliance with the fair use doctrine.

    Disclaimer:

    Last modified: July 06, 2007