views:

3666

answers:

7

I'm an accomplished web and database developer, and I'm interested in redesigning my own website.

I have the following content goals:

  • Support a book I'm writing
  • Move my blog to my own site (from blogger.com)
  • Publish my articles (more persistent content than a blog)
  • Host a forum with light use
  • Embed slide sharing and screencasts

I have the following technology goals for implementing my site:

  • Learn more Python and Django
  • Leverage a CMS solution such as Pinax or Django-CMS
  • Utilize a CSS framework, such as Blueprint or YUI
  • I develop on a Mac OS X platform
  • I'm comfortable developing in a CLI, but I'd like to practice Eclipse or NetBeans
  • I'd like to employ testing during development
  • Please, no Microsoft languages or tools

Any suggestions for technology choices that support these goals?

Edit: Apologies if the question above was too unclear or general. What I'm asking for is if folks have had experience doing a similar modest website, what would be recommendations for tools, frameworks, or techniques outside of those I listed?

  • Is there another Python CMS that I should consider besides the two I listed? E.g. there may be a great Python solution, but it isn't built on top of Django.
  • Perhaps all current Python CMS packages are too "alpha," and I'd be better off writing my own from scratch? Although I am up to it, I'd rather leverage an existing package.
  • Given this kind of project, would you deploy a CMS with built-in (or plug-in) support for blogs, forums, etc. or would you rather design a simpler website and embed the more complex content management using other services, relying on your own website only as a dumb proxy or portal. E.g. one can re-publish Blogger.com content using the Google Gdata API. One can embed re-branded Nabble.com archives into any website, which may provide forum/mailinglist functionality more easily than running the forum itself.
  • Sometimes a CMS package has its own CSS integrated, and using another CSS framework would be redundant or otherwise make no sense. Yes? No?
  • Are there plugins for Django in Eclipse or Netbeans? I understand there's a pretty nice environment for Rails development in NetBeans, and I've read some people wish longingly for something similar for Django, but I don't know if these wishes have since been realized.
  • What are some current preferred tools for unit and functional testing a Django application? Are these integrated with Eclipse or Netbeans?
+6  A: 
  1. Is there another Python CMS? Yes, there is. Are they better than Django? From some perspective, yes. Should you change? No. Learn Django, it's as good as or better than most.

  2. Perhaps all current Python CMS packages are too "alpha." A shocking statement, IMO. However, if you think you can do better, by all means, jump in. However, it's a huge amount of work, and your goal does not say "do a huge amount of work to invent Yet Another CMS Framework."

  3. Would you deploy a CMS with built-in (or plug-in) support for blogs, forums, etc. I don't completely get this. There's content (i.e., blog postings, forum postings) and there's a web application (i.e., a blog site with forum comments). They're different beasts, web applications depend on CMS. A CMS can (generally) handle any kind of content; therefore, blogs aren't usually described as "plug-ins", they're just content. Maybe you want a pre-built content model for blogs or something? Not sure what your question really is.

    • relying on your own website [to] re-publish Blogger.com content. Hard to know what to say here. It matches your goals to simply proxy or rebrand nabble. But it doesn't match your other goals because You won't learn very much Django, CMS, or any other technology. Since your first goal and your technology list don't match up well, I have no idea what you're planning to do: learn Django or work on your book and move your blog. Not sure what your question really is.
  4. Sometimes a CMS package has its own CSS integrated, and using another CSS framework would be redundant or otherwise make no sense. Correct. Not sure what your question really is.

  5. Are there plugins for Django in Eclipse or Netbeans? Is this a "let me google that for you" question? http://pydev.sourceforge.net/ is the Eclipse plug-in for Python. http://wiki.netbeans.org/Python is information on the Python plug-in for Net Beans. Django is just Python, so a Django-specific plug-in doesn't really mean much. Komodo Edit knows Django template syntax and can do some syntax highlighting. That's cool.

  6. What are some current preferred tools for unit and functional testing a Django application? Python has unittest tools. They're part of Python. Not part of an IDE. Django has unit testing tools. They're part of Django -- which is just Python -- not part of an IDE. You simply run them and they produce a text log of what happened.

S.Lott
There are still technologies that he may use or find interesting outside of those. I'll grant you that his question is a tad vague, but I think this is a bit out of line.
Jason Baker
@Jason Baker: There are many ways of asking for clarification. I'm frankly tired of asking for clarification and getting nothing. I'm trying another strategy to get clarification.
S.Lott
@S.Lott: I respect the need for clarification, having also asked for it fruitlessly many times! I will amend my question above.
Bill Karwin
Thank you for your time and feedback.
Bill Karwin
+1  A: 

It depends what kind of tools you're looking for.

As for an editor, if you like CLI stuff, then emacs or vim is the way to go (I prefer emacs). If you choose emacs, then you may also want to use pymacs for customizing it (since you'll already be familiar with python). If you want some intellisense-like features, then eclipse is a good way to go, but I should warn you: python can be a tricky language to do that kind of stuff for. Thus, it may not be what you're used to with some other languages. All the same, you may give pydev a shot.

I'd also recommend going with trac for tickets, source viewing, and for using your buildbot continuous integration server.

And tools like pylint and bicycle repair man are always helpful as well.

Jason Baker
Thanks for the tips about other tools to support Python development.
Bill Karwin
pydev is now at http://pydev.org/
Todd
+1  A: 

You're all set, just do it :)
Read the django tutorial to get started (if you haven't already).
I don't know everything about django or python, I just keep the references by my side.

hasen j
+5  A: 

No one here seems to mention older CMS frameworks, like Plone.

Quoting Wikipedia:

Plone is a free and open source content management system built on top of the Zope application server. It is suited for an internal website or may be used as a server on the Internet, playing such roles as a document publishing system and groupware collaboration tool.

Started at 1999, the latest release is Plone 3.1.7, dated November 2008. Plone is doing fine - the site is currently listing 1420 sites powered by Plone.

Status update December 2009: Version 3.3.2 (November 2009) is current. 1904 sites are listed as powered by Plone.

gimel
Thanks for reminding me to check out Plone. It's older, but probably still quite useful (and presumably mature and stable).
Bill Karwin
+2  A: 

If you want to stick with Python than I'd say Django is your best bet. The out-of-the-box admin UI will save you a lot of time. I'd avoid Plone unless you plan on using it as is, which does not seem to be the case. If we're to make serious modifications you're probably better off building something in Zope2. From your description it sounds like really the best platform would be Wordpress. It's open source but PHP based.Even though its not build in Python You may want to give it a look though since it's an excellent publishing platform, blogging tool. You can always mix the 2 anyway. I have a blog that runs on Wordpress and custom poker site build in Zope2. I have the Zope stuff on a subdomain and run a cron job that grabs the header and footer files from Wordpress every few minutes.

tomvon
Good advice and suggestions, thanks!
Bill Karwin
+1  A: 

Checkout django-blocks. Has multi-language Menu, Flatpages and even has a simple Shopping Cart!!

kimus
Thanks for the suggestion, but isn't that really bleeding edge?
Bill Karwin
+1  A: 

Web2Py looks good, but I don't have any experience with it.

Niels Bom