Wednesday, January 04, 2006

Am I Begin A Goat? A Toasty one?

I've been contacted by Jared and Michele who are working on Toasty goat project together with D.Stanek, with suggestion to see what others are doing in terms of TruboGears powered blog engines. So I went, and took a closer look. All-in-all it's a rather nice project. It is still in a VERY alpha stage, but who am I to judge? I didn't even publish the sources yet for my project :)

Now, about the suggestion of merging the efforts... It's a tough topic to tackle. My experience in Open Source community so far is rather limited one. I actively participated in only one project (PyQlogger) and I was the lead programmer of it, so I could call the shots, and it was rather nice. Being a despot has it's merits :)

So I was browsing the sources, and though I did saw a couple of things that were done better than in my project: variableProviders usage, I didn't even know it existed, validators for forms, which I hesitated to add, slugs (text ids) instead of numeric ids for posts, and nice 'theme-in-a-dir' concept.

On the other hand... The code is very far from the style that I prefer, the methods concerning comments are in the RootController instead of their own one, posts have only one date field and are sorted by it (meaning that If i edit a post I published a day ago, it will pop up in front of my newer posts), the current design is for single-blog, and written with the assumption that it will stay that way, and no Identity management is implemented (but i think this is one of the next steps, coz with Identity Framework of TG it's waaay too easy :) )

Anyhow, I don't want to sound like a wining weasel, and probably I suffer from syndrome that most coders have: "I Can Write Better One" syndrome. At any rate, I do not try to claim that what I am writing will be better, it's just modeled a bit differently. I cannot claim anything actually, until I publish my sources so people can judge for themselves...

So, time will tell, and for now - to Jared and the ToastyGoat team: keep up the good job!

Hope I don't get flamed too much for this post :)


SuperJared said...

Excellent points in your post. Having not been able to view your source I didn't know if I was off-base with my questions. Now I know ;)

Whatever your decision, I'm sure we'll have some code sharing down the road.

Have fun with your project! (And if you need help setting up a trac instance, offers them free.)

Sir Reflog said...

Glad to see you've taken my post the right way ;)
Anyhow, I'll try to get some code ready soon, and make the 'down the road' sooner.

And I really should apply for Trac account there... Thanks for the tip.

SuperJared said...

I decided I should respond to some of your points with my plan for Toasty Goat. That, and show you this.

1) Validators

Notice that I decided to use validators and not widgets. I don't like the current implementation of widgets, but I know that'll be ironed out soon.

The validators make it rather easy to... validate the forms. Not rather easy. TOO easy! You just throw what you need in a try clause and you're set.

2) Slugs

The Slugs act as an alternate ID, but I'm still debating the implementation. This means that if you create a post called "Hello World" you may never have another post with that title. I'm on the fence on keeping it that way, or adding the date (or even a random hash) to the slug. For example the post "Hello World" might have a slug like "01-05-2006-hello-world".

Plus, having slugs makes the posts/pages more SEO-friendly.

3) Published Date vs Edited Date

Yeah, we'll be implementing another date field. :)

4) Identity

The identity framework is also going through some major growing pains. I'm also on the fence about this one due to some major scalability issues. Then again, this may be fixed in the near future...

5) Multiple vs Single Blog Authors

Just a design choice. I've noticed that as large blogs become more and more popular, they "hire" other people to add to their content. I just want to have support for this.

These are all my reasons, and your reasons for your way are just as valid as mine. This is not an attack on what you're doing, just an explaination of Toasty Goat.


Sir Reflog said...

excellent points, jared.
1) i didn't say that validators are bad. what i meant to say - i was too lazy to add them. I will as soon as possible. for now, i avoid widgets as well.
2) slugs are nicer for url representation. i think I'll use them as well (but generate them on server side rather than js, with inclusion of date)
4) i didn't hear bout any scalability concerns there. care to give more info?

And I am totally not getting this as an attack, if anything, I am glad to hear criticism and new ideas.


SuperJared said...

2) Right now the slugs are only generated with js, but I plan to implement server-side as well.

3) Take a look here for more info. Though this might be fixed soon, too.