| zk-Simon
| Sparks: We're very interested in giving you a hand if we can
| 11:55
|
| Sparks
| zk-Simon: So I'd definitely like to document Zikula as much as possible so we can see if this is a good solution.
| 11:55
|
| zk-Simon
| Sparks: I've always been a fan of Fedora too, so I would like to give something back.
| 11:55
|
| * Sparks brings up his CMS Template
| 11:56
|
| -!- stickster_afk is now known as stickster
| 11:57
|
| * stickster puts Rahul's content in F11 Alpha release notes one-sheet page
| 11:57
|
| zk-Simon
| Sparks: would you like me to go through each point in turn?
| 11:58
|
| Sparks
| zk-Simon: Let me ask you a few questions, first, and if you have anything else that I miss to add please let me know.
| 11:58
|
| zk-Simon
| Sparks: ok, shoot :)
| 11:59
|
| Sparks
| stickster: I'm going to finish wiping those pages today.
| 11:59
|
| stickster
| Sparks: That would be super, thanks for helping out with that!
| 11:59
|
| Sparks
| stickster: Good golly... I renamed 48 pages last night.
| 12:00
|
| Sparks
| stickster: That was insane!
| 12:00
|
| stickster
| Awesome
| 12:00
|
| * stickster wonders if ianweller ever get round to running the wikibot for renaming the stuff in wikirename.git
| 12:00
|
| Sparks
| zk-Simon: Okay, can you give me a brief summary of your CMS, what it is designed to do and why it would be a good choice for Fedora?
| 12:00
|
| zk-Simon
| Sparks: sure, give me a sec
| 12:01
|
| Sparks
| zk-Simon: No problem.
| 12:01
|
| Sparks
| stickster: We need to get ianweller a ticketing system.
| 12:01
|
| Sparks
| :)
| 12:01
|
| zk-Simon
| Sparks: I don't know how much you know about CMS history, but the Zikula project has been around in one form or another since 2001,
| 12:04
|
| previously as PostNuke. Since the PostNuke days we've completely rewritten the core from the ground up, trying to keep a nice balance
|
| between practicality, performance and good architecture design. There's a strong API, we've had templating for years so output is easily
|
| modified by anyone who k
|
| zk-Simon
| Sparks: Many of the things we initially had as a differentiating factor, i.e APIs (most PHP CMSs didn't even have this when PostNuke
| 12:06
|
| started out), templating and so on are now in every CMS on the market. One thing we have maintained is the security focus, and I think we
|
| have that still over competitors.
|
| Sparks
| zk-Simon: Great. I think the first paragraph got cut off. ...modified by anyone who...?
| 12:07
|
| zk-Simon
| Sparks: Now, the obvious competitors that come to mind like Joomla and Drupal will have more modules, we can't claim to have such a large
| 12:07
|
| backing (though the community is big), but I can honestly say that I have never wanted for a module to build one of my sites - and I must
|
| have built hundreds. We are lucky in that a few super-powerful modules are flexible enough to cover 90% of situations.
|
| zk-Simon
| ... modified by anyone who knows a bit of HTML and CSS, and our biggest thing is enterprise level security
| 12:08
|
| Sparks
| zk-Simon: Excellent!
| 12:09
|
| stickster
| Sparks: Actually, having a fedora-wiki ticket system might not be a bad idea if there are going to be things only paritcular people can do
| 12:10
|
| with the wiki.
|
| Sparks
| stickster: Yeah.
| 12:11
|
| Sparks
| zk-Simon: What is the project website for Zikula?
| 12:11
|
| zk-Simon
| Sparks: For Fedora, I think the highlights are the security, our caching system (based on smarty), the fine grained permissions system,
| 12:12
|
| custom authentication and of course we are modular. The long, 8 year history tells you we're not going to disappear on you, Zikula will be
|
| around for a long time yet.
|
| zk-Simon
| Sparks: www.zikula.org - please excuse the slightly disorganised content, we recently refreshed our site and we're still in the process of
| 12:13
|
| updating the content and navigation to our liking.
|
| Sparks
| zk-Simon: No problem. Websites are fluid.
| 12:13
|
| Sparks
| zk-Simon: What are the hardware requirements for Zikula?
| 12:14
|
| zk-Simon
| Sparks: Apache/IIS (recommend Apache to get the best friendly URLs), PHP 5+ (though our 1.x series will work on PHP 4 I can't in good
| 12:15
|
| conscience recommend using it) and MySQL 4 or 5 (preferably 5)
|
| zk-Simon
| Sparks: That's it. Gettext for the upcoming 1.2 version as an extension to PHP
| 12:15
|
| Sparks
| zk-Simon: Excellent.
| 12:16
|
| Sparks
| zk-Simon: Now the fun part. These are feature questions that we had outlined as items that we need or want.
| 12:17
|
| Sparks
| zk-Simon: Does Zikula have a good security record?
| 12:17
|
| zk-Simon
| Sparks: Well, I can't point you to vulnerability stats for Zikula, we've never had a security flaw reported. PostNuke may have some
| 12:19
|
| relevance, and we've had very few vulnerabilities there as well
|
| Sparks
| zk-Simon: Yeah, I think someone brought that to my attention yesterday.
| 12:19
|
| Sparks
| zk-Simon: How proactive is your developer community to fixing issues?
| 12:20
|
| zk-Simon
| Sparks: The code has been reviewed by an automated scanning tool, output compares very favourably with e.g a comparable Joomla release. We
| 12:20
|
| have an arrangement with a third party who reviews our code, and he's said it's clean though it is constantly under review
|
| Sparks
| zk-Simon: Excellent
| 12:21
|
| zk-Simon
| Sparks: Security issues are usually fixed and patched within 48 hours, often 24. If they come to us first through our contact forms then
| 12:21
|
| we usually fix them before they get near the advisory sites.
|
| Sparks
| zk-Simon: Our authentication system (FAS) utilizes a application called json as the interface. Can Zikula use this to authenticate?
| 12:22
|
| zk-Simon
| Sparks: We have what we call Auth Modules, which allow us to authenticate against external sources. This can either take the details
| 12:24
|
| entered on the site, and send them elsewhere for checking, or alternatively I have previously redirected people to an external page to
|
| authenticate and the result of that is passed back to Zikula.
|
| zk-Simon
| Sparks: I've personally implemented a system to authenticate against 'Raven' which is the authentication system used at the University of
| 12:25
|
| Cambridge here in the UK, and we have an OpenID module too
|
| Sparks
| zk-Simon: Okay, I'll put those notes down and I'll let the Infrastructure Team see if they can do that.
| 12:25
|
| Sparks
| zk-Simon: OpenID might work as well.
| 12:25
|
| Sparks
| zk-Simon: How about RSS feeds?
| 12:26
|
| zk-Simon
| Sparks: Providing, or using?
| 12:26
|
| Sparks
| providing, I think
| 12:27
|
| zk-Simon
| Sparks: We have a special theme which outputs RSS headers, and then any module can provide RSS templates for their list output. If a
| 12:27
|
| module doesn't have it, 20 minutes work adding templates gives you a feed.
|
| Sparks
| zk-Simon: Okay, that works.
| 12:28
|
| Sparks
| zk-Simon: We have a translator workforce. How would Zikula handle translations?
| 12:28
|
| zk-Simon
| Sparks: This is the one I wanted to talk about. With 1.2 (in development), our core at least is translated through gettext. That would be
| 12:31
|
| any strings inside the core, e.g status messages and the like
|
| zk-Simon
| Sparks: Content is a bit different. We have on our roadmap a plan to provide a generic way of translating content, however it's not there
| 12:33
|
| yet. So, translations are dependent on the module you use at the moment. I realise that might not be ideal, but presumably you would be
|
| using one main module for most content, so we could code up a better translations interface for one or two modules if it turns out to be a
|
| problem.
|
| zk-Simon
| Sparks: how does your workflow for translations go at the moment?
| 12:34
|
| Sparks
| zk-Simon: Well... There is a mixed answer because it really isn't standardized.
| 12:35
|
| Sparks
| zk-Simon: Currently they are listed along with the other languages.
| 12:35
|
| Sparks
| zk-Simon: I think what we would like is to be able to select the language the person wants to read and those would be the ones they are
| 12:36
|
| presented to. stickster probably has a better idea, however.
|
| Sparks
| zk-Simon: We can probably address this as a group to get ideas, though.
| 12:37
|
| zk-Simon
| Sparks: That is the way the system works at the moment from a user perspective
| 12:37
|
| Sparks
| zk-Simon: Cool. What about output for Transifex?
| 12:37
|
| zk-Simon
| The language is selectable on registration and for unregistered users is stored for the duration of the session
| 12:37
|
| zk-Simon
| Sparks: THis is a system I don't know much about - could you enlighten me a bit?
| 12:38
|
| Sparks
| zk-Simon: Sorry, I can't. I'm not familiar with it, either.
| 12:39
|
| Sparks
| zk-Simon: I'll just leave that one blank for now and we can come back to that later once I get a better explanation.
| 12:39
|
| Sparks
| zk-Simon: Probably a big one is the ability to manage content workflow.
| 12:40
|
| zk-Simon
| Sparks: Ok, well with some more info I'll be able to comment on our ability to support it
| 12:40
|
| Sparks
| zk-Simon: What we would like to do is have writers write, then pass the document for an editor to look over, and then have the editor be able
| 12:40
|
| to publish.
|
| zk-Simon
| Sparks: Our main content modules are workflowed as you describe
| 12:40
|
| Sparks
| zk-Simon: Excellent. Do you ahve an interal version control with rollback capability?
| 12:41
|
| Sparks
| s/interal/internal
| 12:42
|
| zk-Simon
| Sparks: Absolutely, in our most complex module a full revisions hisotry is kept
| 12:42
|
| Sparks
| zk-Simon: How about content expiration. Can you set a date and time for a certain file to expire and be removed from pubic view?
| 12:43
|
| zk-Simon
| Sparks: Yes, pages can have a 'go offline date', certainly
| 12:44
|
| Sparks
| zk-Simon: How about the other way around? Can you have a go live date and time?
| 12:44
|
| zk-Simon
| Sparks: I believe so, though that's a feature I've not used. If not, can be added in a few minutes
| 12:45
|
| Sparks
| zk-Simon: Okay, it wasn't on my list but it just hit me as something that might be useful.
| 12:45
|
| Sparks
| zk-Simon: Going back to the content workflow, can you set multiple roles (writer, editor, etc) to a single user?
| 12:46
|
| zk-Simon
| Sparks: We have a group/permissions system, and any user can be a member of multiple groups. The default would be comment access, allowing
| 12:47
|
| someone to submit pages for approval, rising to edit/moderate access for editors, and delete access for those who are permitted to delete
|
| things. Full admin access would be restricted to those with a real need to access everything.
|
| Sparks
| zk-Simon: Excellent.
| 12:48
|
| Sparks
| zk-Simon: Can you categorize or tag content for organization?
| 12:48
|
| zk-Simon
| Sparks: We have two systems, a site wide cateogries system (not yet supported by all modules, but by quite a few), where any content from
| 12:49
|
| any module can be categorised in a category tree, or alternatively a tagging system with your standard tag cloud etc.
|
| Sparks
| zk-Simon: Excellent. I only have five more quick questions for you.
| 12:50
|
| Sparks
| zk-Simon: How well does your search work?
| 12:50
|
| zk-Simon
| Sparks: Two systems, the old system is database-based and IMO does not work that well. We have a new system from the GSOC to replace it
| 12:52
|
| based on Zend Search Lucene which is a proper indexer and very nice. Needs some further development but is in a basically working state.
|
| Sparks
| zk-Simon: I'm guessing that Zikula was a CMS from the beginning?
| 12:53
|
| -!- stickster is now known as stickster_food
| 12:55
|
| * quaid pops his head in
| 12:55
|
| quaid
| woah,that's some buffer to read ...
| 12:55
|
| quaid
| Sparks, zk-Simon : I
| 12:55
|
| quaid
| 'll read the buffer, but let me know if there are any standing questions ...
| 12:55
|
| Sparks
| quaid: Maybe you could comment on the tranlation portion of how we want the CMS to work.
| 12:56
|
| Sparks
| quaid: (All of this is going into the wiki.
| 12:56
|
| zk-Simon
| Sparks: Yes, we were orignally a CMS/portal, now we're an application framework and do lots of different things, but we still have very
| 12:57
|
| strong content management in the background
|
| zk-Simon
| quaid: Sorry, I can be a bit verbose at times
| 12:57
|
| -!- abadger1999 [n=abadger1@65.78.187.8] has quit [Read error: 60 (Operation timed out)]
| 12:57
|
| Sparks
| zk-Simon: Okay. How is the data stored? Is the data protable to another CMS?
| 12:57
|
| -!- biertie [n=bert@19.159-136-217.adsl-dyn.isp.belgacom.be] has joined #fedora-docs
| 12:58
|
| zk-Simon
| Sparks: It's just in MySQL tables. We'll have, in 2.0 a generic import/export XML framework, but there's no 'export this to x'
| 12:59
|
| functionality (I don't know of any system with this sort of thing). Data structures are as you'd expect, so with some effort you could
|
| port it all.
|
| Sparks
| zk-Simon: That's true. As long as it isn't encrypted in some manner... :)
| 12:59
|
| zk-Simon
| Sparks: As it's just a MySQL database you wouldn't have trouble extracting the data, it's a long way from a proprietary flat file or
| 13:00
|
| something weird like that. Something I could have mentioned earlier is that we support mutliple databases (e.g. Postgres), however I would
|
| recommend MySQL as that gets the most extensive testing by some distance.
|
| Sparks
| zk-Simon: Can Zikula make certain pages or content areas static/non-database driven?
| 13:01
|
| * quaid almost caught up, 1 more min.
| 13:01
|
| quaid
| ok!
| 13:03
|
| quaid
| working backwards quickly ...
| 13:03
|
| zk-Simon
| Sparks: Not completely, no. The caching system either allows full page or page-element caching. Full page caching will reduce SQL queries
| 13:03
|
| to 3 or 4, element caching depends on the module. If you were using a particular Short-URL system we could make the pages completely
|
| static without breaking anything
|
| quaid
| I think the plan from Fedora Infrastructure is to let the CMS team have a slightly stand-alone area
| 13:03
|
| quaid
| so having e.g. MySQL is fine; it doesn't to be in the main Infra dbase.
| 13:03
|
| Sparks
| quaid: I was told by Infra that MySQL or PostgreSQL was fine.
| 13:04
|
| quaid
| Sparks: I forget if the static stuff is MUST or SHOULD, but we've largely eliminated the need for MUST with proxy caching.
| 13:04
|
| quaid
| Sparks: cool
| 13:04
|
| Sparks
| quaid: It is in the "must" list.
| 13:04
|
| quaid
| zk-Simon: so let me explain the l10n a bit more ...
| 13:04
|
| quaid
| zk-Simon: the deal is, we author in DocBook XML with the source in an SCM (git mainly, some svn)
| 13:04
|
| quaid
| translators grab the POT file via translate.fedoraproject.org (Transifex runs there)
| 13:05
|
| zk-Simon
| Sparks: Depending on your infrastructure, with full page caching on Zikula could handle a lot.
| 13:05
|
| quaid
| and they submit back through the same interface to the SCM.
| 13:05
|
| quaid
| when we build docs, our toolchain uses xml2po to interleave the translated strings from the PO files with the XML
| 13:05
|
| quaid
| and we get translated HTML and PDF
| 13:05
|
| quaid
| so the basic idea with a CMS is to treat those as language-specific blobs
| 13:06
|
| quaid
| we just pull them in and publish them so that Apache can serve the proper one by browser lang setting.
| 13:06
|
| zk-Simon
| quaid: Right, how does this work along with the revisions control etc that you wanted?
| 13:07
|
| quaid
| a Ultimate Grail solution would be a CMS that could use the XML and PO/POT files to build itself, so it could present DocBook built PDFs but
| 13:07
|
| not have to deal with the same HTML (or something).
|
| Sparks
| quaid: Thanks... I didn't remember that.
| 13:07
|
| quaid
| zk-Simon: well, we've always just had it manually
| 13:07
|
| quaid
| http://docs.fedoraproject.org/release-notes/f10/
| 13:07
|
| quaid
| when we do an update, we'll push all that down and mark it as original content (10.0.0) and put the latest at the top (10.0.1 for example.)
| 13:08
|
| quaid
| we don't update this content _that_ often ... maybe once or twice a release.
| 13:08
|
| quaid
| but we could do it more if it were easier; in that case, we'd want it obvious which version was what.
| 13:08
|
| zk-Simon
| quaid: We'd be talking a custom built interface for something like that then, I can't think of any generic frameworks for such a process.
| 13:09
|
| quaid
| zk-Simon: fwiw, we are totally flexible in the what and how; maybe we're not looking at the problem the right way due to having done it the
| 13:09
|
| hard way for so long :)
|
| quaid
| maybe we don't want to expose older versions, for example -- why install buggy software? why use buggy documents?
| 13:10
|
| quaid
| zk-Simon: how does Zikula handle document blogs? I.e., I've got an OO.org document I want to publish in this CMS, etc.
| 13:11
|
| zk-Simon
| It's a difficult one actually, I'd have to have a think.
| 13:11
|
| quaid
| ok
| 13:11
|
| quaid
| it may be that we want to just use the native gettext, if we can figure out what to do with the XML
| 13:11
|
| zk-Simon
| quaid: Depends how you want it to work, we have a standard WYSIWYG editor with the usual copy and paste functions, but there's also a
| 13:12
|
| module called 'MediaAttach' which allows uploading of e.g. PDFs and provides inline reading/previewing.
|
| quaid
| still, we've been looking forward to having downloadable PDFs for a while; people also like tar/zip archives of the HTML.
| 13:12
|
| quaid
| does MediaAttach have a way to associate it with a workflow?
| 13:13
|
| quaid
| that is, can a MediaAttach(ed) item be put in a workflow like a regular chunk of content?
| 13:13
|
| -!- abadger1999 [n=abadger1@nat/redhat/x-8f64f9c0a0b4d61c] has joined #fedora-docs
| 13:13
|
| zk-Simon
| quaid: Yes, absolutely. Through the WYSIWYG you can click a button, browse through available media and insert a tag - this then pulls in
| 13:13
|
| the media attach item when displaying the page
|
| zk-Simon
| Bad example, but the only one that springs to mind would be: http://www.wolfsonhillel.enfield.sch.uk/index.php - the video and pcitures are
| 13:15
|
| inserted into the cotent from mediaattach using a visual editor. That was authored by some school teachers after a couple of hours
|
| training.
|
| -!- LinuxCode [n=Titan@fedora/LinuxCode] has joined #fedora-docs
| 13:16
|
| quaid
| so we might be looking at customizing or making a new module to deal with HTML as blobs.
| 13:18
|
| zk-Simon
| quaid: I wouldn't necessarily start completely from scratch, because we already have a module that does >90% of what you need with
| 13:18
|
| revisions and so on. How we'd integrate the translations system to that would be the key.
|
| quaid
| zk-Simon: the main site under fedoraproject.org is going to need a CMS; we're doing a sort-of proving grounds with docs.fedoraproject.org; so
| 13:19
|
| far it seems clear Zikula could do all that fedoraproject.org needs, it's a much more classic example of a website built with a CMS.
|
| * quaid was just thinking outloud :)
| 13:19
|
| zk-Simon
| I've built websites with complex translation flows before - but sadly it seems there is no holy grail, everyone needs a solution that works
| 13:20
|
| slightly differently
|
| quaid
| aye
| 13:20
|
| quaid
| still, one thing about our need ...
| 13:20
|
| quaid
| Transifex is gaining wider usage and acceptance
| 13:20
|
| quaid
| and our workflow is built from how we translate packages
| 13:20
|
| quaid
| so it's possible that work here will actually be useful to other e.g. open source projects :)
| 13:20
|
| zk-Simon
| quaid: We have been looking at our translations system for a while, so a bit of experience on best-practice will be helpful for sorting it
| 13:21
|
| out.
|
| quaid
| Transifex is mainly an interface in front of N version control systems, which can be hosted anywhere; the SCM admin just adds a 'transif' user
| 13:21
|
| that has permissions to add/edit PO files and the LINGUAS file.
|
| quaid
| so for example, Zikula could extract strings to a POT file and put it in git, then Transifex would handle all the translations, and you'd use
| 13:22
|
| gettext to build the translated pages with the PO files from git.
|
| quaid
| (we could use an SCM at fedorahosted.org so that could be external and specific to the project, to make it a more reusable hack)
| 13:23
|
| zk-Simon
| Your best case workflow? Write in English docbook, commit to SVN, export to HTML/PDF, upload to website? Translators use transiflex to
| 13:23
|
| translate English, export and this is automatically associated with the English content on the website?
|
| zk-Simon
| I'd need to be clear on exactly how it should work before I could think about the solution to the problem :)
| 13:24
|
| zk-Simon
| I'll be back in 5 minutes, apparently I'm wanted
| 13:25
|
| quaid
| zk-Simon: I think you have that best case correct, although I think there is some flexibility in the end points -- the association with a
| 13:26
|
| source version.
|
| quaid
| that is, English isn't always going to be the original language.
| 13:26
|
| quaid
| the automatic association is more with a specific content area (RElease Notes, installation guide, user guide, etc.)
| 13:26
|
| quaid
| i.e., docs.fp.org/release-notes is the container for release notes
| 13:27
|
| quaid
| release-notes/f11 is the container for Fedora 11 released notes
| 13:27
|
| quaid
| within that final container is N language-specific versions of the release notes
| 13:27
|
| quaid
| ... and they could get updated with fresh content individually, so we could have an updated english and spanish, with the others having the
| 13:28
|
| previous version of content.
|
| * quaid has to do some stuff, will check back in a few too
| 13:28
|
| -!- stickster_food is now known as stickster
| 13:28
|
| Sparks
| quaid: Do you have any other questions?
| 13:28
|
| Sparks
| quaid: I think I'm out.
| 13:28
|
| zk-Simon
| Back. Ok, I'll consider on that and see if I can figure a solution
| 13:30
|
| Sparks
| zk-Simon: Is there a good way we can contact you (email?) that I can put on the wiki?
| 13:31
|
| zk-Simon
| simon@zikula.org is best for Zikula-related stuff. I can drop into IRC whenever if you'd like me to answer questions in real time again.
| 13:32
|
| Sparks
| zk-Simon: That would be great. We have our Docs Project meeting on Wednesdays at 1900 UTC.
| 13:32
|
| Sparks
| zk-Simon: Those meeting are held in #fedora-meeting.
| 13:32
|
| Sparks
| You'll see the post I'm going to make on the listserv.
| 13:33
|
| zk-Simon
| Ok, I'm happy to drop in if you feel it's helpful
| 13:33
|
| Sparks
| zk-Simon: I appreciate you taking time to talk with quaid and I today.
| 13:33
|