MojoMojo - the Elegant wiki, Catalyst-powered
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

MojoMojo - the Elegant wiki, Catalyst-powered

on

  • 10,379 views

MojoMojo is the most complex open source Catalyst application developed to date. ...

MojoMojo is the most complex open source Catalyst application developed to date.

It is a Web2.0 wiki with AJAX live preview, hierarchical structure, tags, diffs, pluggable syntax, permissions/ACL, attachments, RSS feeds, a photo gallery, edit conflict resolution via 3-way merge, themes/skinning, localization, built-in full-text search, and a reverse index. Since it's built on top of the Perl Catalyst Web framework, MojoMojo supports any Web server, and includes its own standalone one. It also support any database backend supported by the DBIx::Class ORM, and has been successfully tested with PostgreSQL, SQLite, and MySQL.

Statistics

Views

Total Views
10,379
Views on SlideShare
10,338
Embed Views
41

Actions

Likes
5
Downloads
10
Comments
0

5 Embeds 41

http://www.slideshare.net 36
http://www.mefeedia.com 2
http://www.m.techgig.com 1
http://www.linkedin.com 1
https://www.linkedin.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • Speech opening How many people here EDITED Wikipedia?
  • There are so many wikis out there that there’s a wiki comparison engine – Wikimatrix Perl wiki comparison: http://www.wikimatrix.org/compare/Foswiki+ikiwiki+MojoMojo+Oddmuse+PodWiki+Socialtext+TWiki+UseMod
  • Wikimatrix lists no less than 120 wikis. I tried to give you a visual Representation of this But I couldn’t fit it all in one slide But anyway, who cares about Ruby or PHP wikis? We’re at YAPC right? So let’s see the Perl wikis
  • Turns out there are quite a few Perl wikis as well: commercial or free, old and new, obscure or wildly popular But we still have to choose among these. Now everyone’s criteria are different, but here are some that may be important
  • Socialtext is hosted
  • Wikipedia has 2.9M page as of today
  • “Good” means pages with real content, excluding redirect pages, user pages, talk pages, stubs, help, image description pages, portals
  • Page structure At how anal Wikipedia editors are, they WOULD have used a directory type of path if it were available
  • So you want to wiki about how people were saying “Aww what a cute dog”, “He is soooo zen”, “Oh look a coffee table that looks like a dog” But in what path?
  • Usability is the more important the less technically-inclined your audience is In March 2009, bolt|peters user experience conducted a Wikipedia editing study… … on NON-technical users
  • Perl types sometimes just want the damn code. I know I do.
  • Markup language: are we stuck with someone’s invention, or can we plug in Markdown, Textile, CREOLE etc?
  • Peter Thoeny had changed the access rights to the TWiki.org wiki, locking everyone out from the site unless they agreed to sign up to new terms and conditions. The trademarks to the TWiki name were held by Peter Thoeny who was not willing to license them (on a perpetual basis) to the community. On October 27, 2008, the company TWiki.net eliminated the elected board of directors of TWiki, assumed direct control over the TWiki project, and requested that all contributors agree to a new code of conduct before being allowed to continue working on the project. The bulk of TWiki's active contributors subsequently created a fork of the project named Foswiki . [20] [4]
  • Scalability issues with RCS @ Yahoo!
  • The preview is better than Foswiki’s in that you see the code under the output on the same page, although you can’t have them side by side, which will start to annoy you ASAP when you edit long pages.
  • It looks kinda barebones, and it’s CGI
  • I’ll get back to you with details about Storage, Page structure, tags Markup language and preview features as soon as Perl 6 is released.
  • The preview is better than Foswiki’s in that you see the code under the output on the same page, although you can’t have them side by side, which will start to annoy you ASAP when you edit long pages. It’s just like MediaWiki’s in this regard.
  • PostgreSQL & DBI usage: http://github.com/socialtext/socialtext/blob/09ed67d4b7a711b1dc105ce77f885c3530192deb/nlw/lib/Socialtext/TheSchwartz.pm … but I’m not sure I got the right channel
  • This is all of Socialtext’s user base that cared to add themselves there. Notice it’s CGI, and the entire URL isn’t that cool either.
  • The preview is better than Foswiki’s in that you see the code under the output on the same page, although you can’t have them side by side, which will start to annoy you ASAP when you edit long pages. It’s just like MediaWiki’s in this regard.
  • The preview is better than Foswiki’s in that you see the code under the output on the same page, although you can’t have them side by side, which will start to annoy you ASAP when you edit long pages. It’s just like MediaWiki’s in this regard.
  • WebGUI reinvented its own modules to deal with databases, forms, authentication, caching, handling HTTP requests etc.
  • Access control is decent Markup languages are OK, even configurable
  • Now that the people from the MovableType talk have joined us, we can begin to actually talk about MojoMojo … and plugins for DocBook, syntax highlight, youtube, CAPTCHA
  • From classic, to slightly different, to more different, to quite very different

MojoMojo - the Elegant wiki, Catalyst-powered Presentation Transcript

  • 1. MojoMojo The Elegant wiki, Catalyst-powered Dan Dascalescu (dandv) YAPC::NA 2009-Jun-23 Twitter: mojomojowiki
  • 2. Yet Another Perl Wiki? Not really.
  • 3. Wikimatrix
  • 4. … and more
  • 5. Perl wikis
    • TWiki
      • Foswiki fork
    • Socialtext
    • UseMod
      • Oddmuse
    • PodWiki
    • ikiwiki
    • November
    • WebGUI
  • 6. Differentiating wiki features
    • Hosted vs. install your own
    • Storage: text files vs. database
    • Page structure: flat vs. hierarchical
    • Editing usability – preview?
    • Folksonomy: tags?
    • Access control
  • 7. Storage
    • Flat text
      • Scales “reasonably well”, ~10k pages
      • CERN: “users of larger webs will experience slower search and index response times”
      • Yahoo!: >300k pages, but slow
    • Database
      • Mediawiki
      • Pages in the millions
  • 8.  
  • 9.  
  • 10. Page structure Paris (genus) /botany/paris Paris (mythology) /mythology/greek/paris Paris, Texas /geography/usa/texas/paris Paris /geography/europe/france/paris Flat structure Tree hierarchy
  • 11. When hierarchy doesn’t cut it
    • You encounter this dog in a park in Paris, France
  • 12. SuperFantastic - “Buddha Dog”, http://www.flickr.com/photos/35423169@N00/50088733 Under what path do you wiki about this?
  • 13. Q: Which hierarchical path?
    • travel/france/fun
    • travel/fun/france
    • fun/animals
    • fun/travel
    • animals/fun
  • 14. A: it doesn’t really matter
    • Add tags:
      • travel
      • France
      • Paris
      • animals
      • dog
      • fun
      • Prozac
  • 15. Editing usability
    • Wikipedia editing study
    Bolt|peters user experience - http://boltpeters.com/wikipedia/
  • 16. Study finding
    • The vast majority of users pulled up another instance of the Wikipedia page they were editing in order to see what it "really" looked like.
  • 17. Usability recommendation
    • Provide users a live preview of what the page looks like as the user edits it.
  • 18. WYSIWYG not a panacea yet
    • Show me the code
    • Crippled - dive demo at Foswiki
  • 19. Access control
  • 20. Wiki theory
    • “ Everyone should be able edit any page”
  • 21. Theory vs. practice
    • In theory, there is no difference between theory and practice. In practice, there is. - Yogi Berra
  • 22. Wiki practice
    • The Movable Type wiki (the old, unofficial one) was closed down due to vandalism they couldn’t stop. - Deane Barker, Gadgetopia, http://gadgetopia.com/post/6595
  • 23. Other features
    • Extensibility
    • Markup language
  • 24. Perl wiki candidates
  • 25. TWiki
    • Evil
    • Use Foswiki
  • 26. Foswiki
    • Forked off TWiki
    • Storage: text files in RCS
    • Page structure: 2-level, web/page
    • Tags: no
    • Markup language: TWiki only (+HTML)
    • Preview: static, sequential; or WYSIWYG
    • Tons of plugins
  • 27. Foswiki: - flat structure + breadcrumbs
  • 28. ikiwiki
    • Storage: text files in RCS
    • Markup language: flexible
    • Preview: static - code then output
    • Tags: no
    • Barebones
    • Last release: 2008-Oct
  • 29.  
  • 30. November
    • Storage: ?
    • Page structure: ?
    • Tags: ?
    • Markup language: ?
    • Preview: ?
  • 31. PodWiki
    • Storage: text files
    • Markup language: multiple
    • Abandoned since 2007
  • 32. Socialtext
    • Hosted
    • Target: mostly enterprise
    • Socialtext Open source code on GitHub
    • Storage: PostgreSQL via DBI
    • Markup language: multiple
    • Socialtext Unplugged works offline via TiddlyWiki + synching
    • 3 people on #socialtext
      • Topic: #socialtext - your place for git help
  • 33.  
  • 34. UseModWiki
    • Derived from the original arcane WikiWikiWeb
    • Links are always like “ GlueTheWordsTogether ”
    • Abandoned since 2007
    • OddMuse forked off it
  • 35. Oddmuse
    • Storage: text files (no RCS)
    • Page structure: abandoned children
    • Preview: static - output then code
    • Markup language: plugins
    • “ Oddmuse is one Perl script ” (CGI)
    • 7 folks on #oddmuse
  • 36. Who’s the parent of this page?
  • 37. WebGUI
    • Popular as a CMS
    • A massive case of Not Invented Here Syndrome:
      • Auth.pm
      • Cache.pm
      • Session.pm
      • SQL.pm: “Package for interfacing with SQL databases. This package implements Perl DBI functionality in a less code-intensive manner and adds some extra functionality.”
  • 38. The problems so far
    • Storage in text files
    • Preview sucks
    • No hierarchical page structure
    • No tags
  • 39. MojoMojo
    • A Web2.0 wiki, web-server and database-backend agnostic, with live side-by-side AJAX preview, hierarchical page structure, pluggable syntax (HTML + Markdown/Textile, POD), tags, page permissions, RSS feeds, conflict resolution via 3-way merge, attachments with photo gallery, skinning, built-in search, localized in 9 languages, and plugins for DocBook,
  • 40. Authors
    • Marcus Ramberg
    • On GitHub:
      • http://github.com/marcusramberg/mojomojo
  • 41. Technology
    • Catalyst
    • DBIx::Class, SQL nested set trees
    • Template::Toolkit
    • HTML::FormFu
    • KinoSearch
    • Algorithm::Diff
    • HTML::Defang
    • … and the rest of CPAN
  • 42. Live preview, try it @ mojomojo.org
  • 43. Hierarchical page structure and breadcrumbs
  • 44. Pluggable syntax
    • Formatter chain runs in order:
      • HTML::Defang
      • [[Wikilinks]]
      • POD
      • Markdown/Textile
  • 45. Skinnable
  • 46.  
  • 47.  
  • 48.  
  • 49.  
  • 50.  
  • 51. RSS feeds
  • 52. Extending MojoMojo (live demos)
  • 53. Creating a simple formatter
    • A CPAN hyperlink
    • {{cpan My::Module}} -> http://search.cpan.org/perldoc?My::Module
  • 54. diff wiki blog
    • wiki
      • Timeless
      • One topic = all info
      • Prefers collaboration to comments
    • blog
      • Time-sensitive
      • Series of posts on one topic
      • Prefers comments to collaboration
    A blog formatter - demo
  • 55. MojoMojo’s Future
    • Major efforts:
      • Moosify
      • KiokuDB?
      • Migrate MediaWiki databases
    • 40+ suggestions at http://mojomojo.ideascale.com
  • 56. Resources
    • http://mojomojo.org
    • #mojomojo on irc.perl.org
    • Twitter: mojomojowiki
    • mojomojo.ideascale.com - suggestions
    • Source code on GitHub
  • 57. <clap/>