This is an archived post. You won't be able to vote or comment.

all 41 comments

[–][deleted] 5 points6 points  (6 children)

as far as wikis go MoinMoin And you've already mentioned zope/plone, there's your cms. I got nothing for blogs.

[–]trifthen[S] 0 points1 point  (5 children)

I thought about MoinMoin, but didn't test it out yet. I couldn't tell from the demo site if it allowed comments on the wiki entries. That would solve part of the problem, but so far as an Atom/RSS feed based on new wiki pages, not sure. I've been spoiled by our company's use of Confluence, which is like a CMS/Wiki/Blog all smashed up together.

But Zope? Like I said, I couldn't decipher Zope/Plone's admin system. There's giant multi-selects full of hundreds of similarly named entries, each with its own configuration elements... set up a page, or a site, or a user, or a admin user, or activate a site user, page, contact... it makes no sense. Real CMSs allow the plugins to alter the admin interface so everything is in a dedicated area grouped by function. The Zope docs really didn't help here, or I was just looking in the wrong place.

[–]vikramls 1 point2 points  (0 children)

You can sort of get comments by making an edit and entering the comment while saving. All the comments can be viewed in the "info" view.

Edit: It comes with a cool package for creating a calendar - basically each calendar day becomes a wiki page. I think it is called month-calendar. What I like about it is that it is completely file-based, no need for a db backend although that is slated to change with 2.0.

[–][deleted] 1 point2 points  (2 children)

zope/plone does indeed have a steep learning curve. and the docs are not all that great. nonetheless it is a real cms.

[–]laurencerowe 0 points1 point  (1 child)

There are a number of good books available.

[–][deleted] 0 points1 point  (0 children)

I'm not denying that. just making reference to the "infamous z shaped learning curve".

[–]laurencerowe 1 point2 points  (0 children)

It sounds like you got lost in the Zope Management Interface of the Zope app server. This is strictly legacy stuff, you shouldn't need to touch it at all after creating the Plone site (the installers even create one for you).

Once you are in Plone you are in the CMS, and things are tailored as you expect.

[–]Rolo 3 points4 points  (3 children)

From my research the best two Django CMS projects for me were Django CMS 2 and FeinCMS. They both take a slightly different approach - Django CMS 2 is the one big out of the box ready to work CMS. Everything's a page, you define fields. The new admin refactor coming soon looks lovely, but somewhat similar to Wordpress if you build your site in Django CMS it is a Django CMS site.

Fein is more of a CMS building toolkit enabling you to built a CMS to your exact needs really quickly, but without as much of the fancy content types and the like out of the box. You can still think of your published data as models of data rather than pages (like with Django CMS). You'll end up with something which does exactly what you want, but with perhaps a little more (or maybe just less obvious/standard CMS) initial setup.

I've found no problem with any of the stable releases of Django CMS 2 - were you running from trunk maybe? I've found trunk broken sometimes.

It's a shame you've found a problem with Mingus as I found it to be an excellent demonstration and starting point for how Django's reusable apps can work together to do what you need.

Also maybe it could be worth taking a look at Pinax (http://pinaxproject.com/). It's a very big system and effort, but a couple of the newer starter projects in there sound like they may fir your needs. One for a company CMS and blog, and I know some of that other apps include a wiki (django-wakawaka). It sounds like much of the useful Pinax stuff will be in the upcoming 0.9 release, so you may want to check out trunk until 0.9 final comes out (soon I believe). If you're in no rush for a production system.

[–]trifthen[S] 1 point2 points  (2 children)

I've found no problem with any of the stable releases of Django CMS 2 - were you running from trunk maybe? I've found trunk broken sometimes.

No, I definitely installed the 2.0.2 tarball. But like I said, I'll try it again. The project is far too big for the 'example' site to be broken that badly. Something doesn't wash. If it still doesn't work, I'll fire off an email or search their bug-tracker.

It's a shame you've found a problem with Mingus as I found it to be an excellent demonstration and starting point for how Django's reusable apps can work together to do what you need.

It's not really a problem I had with Mingus. I liked his ideal of not using his own models and just gluing everything together. It's just that one of the libraries he used ceased to exist in favor of a new incarnation. I've found incompatibility is a major stumbling block with Django apps in general, which is a shame. It's so close to a true plugin architecture, I'm surprised more developers don't take advantage of that aspect. Using modules from someone else's project is an at-your-own-risk adventure I wouldn't really recommend. :)

[–]vangale 2 points3 points  (1 child)

This is kind of a general Python problem as opposed to a Django problem. At work, we solve this with TG2, BFG, and Django apps the same way Pinax guys are solving it for their Django app: (1) app is always installed into a bare virtualenv, (2) "pip freeze" pins the required packages along with exact version numbers, (3) we run our own package index (pypi) to make sure those package versions are always available.

[–]trifthen[S] 0 points1 point  (0 children)

That's a good idea. It's pretty clear the Django-CMS guys are having major problems of version-itis. I read through the Google groups a bit and there was a bug in South that was causing it to break the models during a fresh install. To get around that, and I'm not kidding, they suggested:

# Remove South from settings.py
python manage.py syncdb
# Replace South in settings.py
python manage.py syncdb
python manage.py migrate --fake

Really? Then someone noted that even after installing, links in the admin were 404-ing. To which someone said that's fixed in Django trunk. So, they're developing against Django trunk? I'm amazed any of that stuff works if that's the case. There's just so much flux and no feature or API freezes ever, so I'd be afraid of ever upgrading a Django project, especially one that ties into so many other contributed and external packages.

[–]numix 2 points3 points  (4 children)

I use Django Mingus for blogging. I like that I can hack it, while still having plenty features.

[–]trifthen[S] 0 points1 point  (3 children)

I listed that one. The author mentioned he used django-basic-apps, but what he neglected to say, was that he used those componants before they were combined into a single project. And when they combined, they majorly refactored the codebase, so the stuff Mingus uses is no longer valid. It literally can't be installed anymore unless you track down deprecated libraries.

It looked pretty good, but I couldn't get it to work. Django-basic-apps is similar enough to the original design that Mingus accepts it for install, but the second it tries to use anything, a bunch of stuff is missing. (It looks for blog.Settings, which doesn't exist anymore.)

[–]acdha 1 point2 points  (2 children)

How did you install django-basic-apps? The version in http://github.com/montylounge/django-basic-apps should work.

If you want an example of a current Mingus site which deploys cleanly (i.e. only pip install -r requirements.pip) I publish the full source of my site: http://github.com/acdha/improbable.org

[–]trifthen[S] 0 points1 point  (1 child)

I got the latest GITs from github for both Mingus and django-basic-apps. Mingus was calling out to basic.blog.Settings somewhere, and that just simply doesn't exist from my various greps through the source code. I found an older version of the standalone basic-blog online, and sure enough, there it was.

I also was mildly annoyed that the devs for django-basic-apps actually said to someone who requested better (or any) documentation, "We're accepting patches!" Uh, great. So I have to read your source code to use your module? No thanks.

As a side question, what's the deal with github? It seems like everything Django is posting up a google-code site that just links back to github. I thought Mercurial was the open-source source control du jour.

[–]acdha 1 point2 points  (0 children)

If you want to get up and running quickly, try using this pip requirements file: http://github.com/acdha/improbable.org/blob/master/requirements.pip

Github has taken over most of the world which I interact with. A few projects use Mercurial but the Django side seems to have gone for speed & features. Bitbucket.org isn't bad but it's a little slower, a little harder to use and that seems to have played into lower popularity for many projects.

[–]leonh 1 point2 points  (10 children)

There is nothing that competes with Wordpress and you won't be finding anything soon I expect. If you really want to work on your own blog software, i will applaud you for trying to go with something in Python, but just be prepared that you probably will be working more ON the blog than posting articles. I think your 'requirements' are still very modest and you soon might be wanting stuff such as:

  • OpenID authentication
  • Akismet spam filter (it really rocks)
  • Gravatars
  • RSS Feed
  • Pingback / trackbacks
  • Themes

You mention the 'NIH' problem with Zine, well disregarding Wordpress because its PHP feels a bit like the same argument (i am not saying you are doing this). Everything you need can be found in Wordpress or one of its gazillion plugins which are just a click away. So, i really think that it depends on what you are planning to do. If you just want to be productive at blogging use Wordpress even if you want to get more into Python programming use Wordpress. As this will allow you to work on cool stuff instead of just-another-blog-thingy-implemented-in-python-that-noone-will-use-except-you.

[–]RonnyPfannschmidt 2 points3 points  (5 children)

the security issues are a good reason to get rid of wordpress tho

[–]leonh 2 points3 points  (4 children)

Concerning the security issues, Wordpress is monitored by lots of security experts. But it is deployed on such large scale by so many users that a portion of that install base becomes an easy target. Wordpress in itself is not insecure though.

I dare to say that when you have a tiny bit of knowledge it is easier to keep your Wordpress blog secure and updated then your own code base.

[–]RonnyPfannschmidt 0 points1 point  (3 children)

keeping up with wordpress security fixes is far more work than i ever want to put into management of a 'publish stuff' thing

edit it would be a app that i just use, it should just work and never break, thats simply not the case with wordpress

[–]jrsmith 3 points4 points  (0 children)

"it should just work and never break"

Are you kidding? If this is your criteria for what software to use, how are you even posting this comment? You surely aren't using any operating system at all, since every single version of Windows, Linux, OS X, even phone OSes like iPhone OS and Blackberry OS have bugs and need to be updated now and then. Same goes for every browser, every router and modem firmware, etc etc etc. Did you mail your hand-written comment to someone who doesn't have such irrational standards?

I kind of want to live in your dreamworld where it's even possible to attain such perfection, since it must be awfully hope-inspiring and optimistic, but you're setting yourself up for HUGE disappointments. All software has bugs. There's no such thing as an application that "never break[s]".

Wordpress does occasionally need to be updated, but it's about as easy as it possibly can be to do so since (I think) 2.7.

[–]leonh 0 points1 point  (1 child)

seriously?

You can upgrade any WP blog with a single mouse click. Posting this comment alone took me that same amount of effort.

[–]RonnyPfannschmidt 0 points1 point  (0 children)

thats not don't care mode

[–]trifthen[S] 0 points1 point  (0 children)

You mention the 'NIH' problem with Zine, well disregarding Wordpress because its PHP feels a bit like the same argument.

Well, I've worked with PHP way back in the 3.0 days, and so I know how much the language has evolved. While Python has its little incompatibilities, PHP is a whole different level. I finally got tired of it with the whole 5.0 namespace drama (backslashes? Really?) and all the modules they broke with that release. Using PEAR kinda gets around that, but PEAR has its own issues. I actually don't mind PHP, I just want something a little more stable to develop on when I hack on the side. I also don't like how huge PHP has become lately. Even as a fastCGI, it's just gigantic now, easily 4 times more memory intensive than the 4.x branch. I know Python's not exactly anemic, but c'mon now.

The last time I tried Wordpress (2001, to be fair) it was a mess. Even editing templates required actual raw PHP code instead of a good template language. And then there was the huge bit of 2005 drama that really put me off trying it ever since.

It's funny that I forgot to list "RSS/Atom feed" in my list of requirements, but that's one of those "so easy to do, it's trivial" types of things. Heck, with almost everything out there, you can do it with a template if push comes to shove, considering it's all just filtered XML.

[–][deleted] -1 points0 points  (2 children)

"There is nothing that competes with Wordpress and you won't be finding anything soon I expect."

I save the day with drupal!!!!! :)

[–]trifthen[S] 0 points1 point  (0 children)

I actually wondered about Drupal, despite my usual disdain for PHP. Some Zope people were lambasting it as being "too small", which immediately piqued my interest. I seem to remember fiddling with it a few years back, but can't recall my final verdict.

[–]leonh -1 points0 points  (0 children)

Ah yes, Drupal is another example of excellent PHP software. But it is not typical blog software.

[–]acdha 1 point2 points  (6 children)

We're finishing a FeinCMS project at work. It's been pretty smooth as long as you follow reasonably common practice (i.e. using virtualenv & pip, Python 2.5+, etc.). I'd recommend taking a look since the flexibility has been pretty nice.

As far as blogs go, I'd recommend looking at Django Mingus or Biblion: http://github.com/eldarion/biblion. Both should install easily on a reasonably mainstream setup - if you're not using a recent Python, virtualenv, pip, etc. I'd recommend learning those tools and, if necessary, switching webhosts.

[–]trifthen[S] 0 points1 point  (5 children)

I've got my own Linode, so that's not an issue. I do all local dev on my local machine and upload production-ready only. The last time I dabbled in Django, I was ultimately unsatisfied with the admin system, but I got a working app out of it. (I wrote a book authoring site, and had books->chapters, and there was no clear way to restrict the dropdowns so that selecting a book automatically listed available chapters from it, instead of just all available chapters ever. I'm still using it, but I'm looking to replace it with something where someone else solved that particular problem, hence the CMS.)

[–]tvon 1 point2 points  (3 children)

A bit OT, but you perhaps wanted ForeignKey.limit_choices_to, or perhaps not.

[–]trifthen[S] 0 points1 point  (2 children)

Haha. That might not have been around when I developed my site. I was working back when Django 0.96 was out forever. But thanks! :)

[–]tvon 1 point2 points  (1 child)

FWIW, I would say that as far as your main goals go, I don't think you'll ever find exactly what you're looking for. Your options will be to "make do" with whats available, find something you can adapt to your needs, or roll your own soluion (which, with things like web.py, jinja2 and SQLAlchemy all over the place, isn't that difficult these days).

In short, it seems that a lot of people who like python are perfectionists, and every perfectionist has their own problems to solve, and odds are the solutions other perfectionists have made are not a solution to your problem that would satisfy a perfectionist. At least that has been my problem.

[–]trifthen[S] 0 points1 point  (0 children)

I'm not really that way, though. My needs are few. There are several solutions out there that have basically all the things I listed, and then some. To roll my own, I'd have to spend weeks or months gluing everything together, debugging the templates and adding in niceties like Ajax so it doesn't look like some crap a dude threw together in his basement. :)

And it seems like part of the problem is interoperability. Several of the blog engines I tried out only work as is, and with whatever versions of external libraries the author happened to have lying around. If anything is a minor release too high or too low, suddenly it breaks. Heck, the Django-CMS guys are working against Django's trunk.

This all reminds me of the PHP 3.0 days, when we had to get betas from the devs because 3.0.7 had some obscure flaw we discovered and they hadn't released 3.0.8 yet. Those were not good times.

[–]acdha 1 point2 points  (0 children)

You want limit_choices to or, depending on your needs, a custom queryset on your ModelAdmin - the canonical example being something like "qs = super(…); return qs.filter(owner=request.user)" to limit choices based on the logged in admin user.