Ayende @ Rahien

It's a girl

And now… Raccoon Blog

One of the things that people kept bugging me about is that I am not building applications any longer, another annoyance was with my current setup using this blog.

Basically, my own usage pattern is quite different than most people. I tend to post to the blog in batches, usually of five or ten blog posts in a short amount of time. That means that future posts are pretty important to me, and that scheduling posts is something that I care deeply about. I managed to hack Subtext to do my bidding in that regard, but it was never perfect, and re-scheduling posts was always a pain in the ass.

Then there is RavenDB, and my desire to run on it…

What this means, in short, is that we now have the Raccoon Blog, which is a blog application suited specifically for my own needs, running on MVC 3 and with a RavenDB backend.

By the time you read it, it will already be running our company blog and it is scheduled to run ayende.com/blog this week.

What is Raccoon Blog?

It is a blog application running on top of RavenDB store and tailored specifically for our needs.

  • Strong scheduling features
  • Strong re-scheduling features
  • Support multiple authors in a single blog
  • Single blog per site (no multi blog support)
  • Recaptcha support
  • Markdown support for comments (you’ll be able to post code!)
  • Easy section support (for custom sidebar content)
  • Smart tagging support

And just for fun:

  • Fully HTML 5 compliant
Tags:

Posted By: Ayende Rahien

Published at

Originally posted at

Comments

Frank
05/11/2011 11:19 AM by
Frank

And unfortunately including:

  • No styling

  • Javascript errors

At least on my IE7 at work. ;-)

Ayende Rahien
05/11/2011 11:24 AM by
Ayende Rahien

Frank,

Can you give me more precise feedback on what you are seeing?

Steven Burman
05/11/2011 11:48 AM by
Steven Burman

"which is a blog application suited specifically for my own needs"

Unfortunately, I'm not sure anyone else shares your blogging needs!

Ayende Rahien
05/11/2011 11:58 AM by
Ayende Rahien

Steven,

We haven't written that for anyone else.

Ayende Rahien
05/11/2011 12:46 PM by
Ayende Rahien

Jack,

Those would never work, they are missing the "/blog/" in the beginning

JackNova
05/11/2011 01:02 PM by
JackNova

Yes, I noticed it. I just thought you could write a simple url rewrite rule providing a permanent redirect to get advantage of those orphans

Jon Wingfield
05/11/2011 01:05 PM by
Jon Wingfield

Ayende,

I'm impressed with how quickly you turn stuff out. A great example of agile/lean imo.

Simon Bartlett
05/11/2011 01:09 PM by
Simon Bartlett

The Hibernating Rhinos blog is not displaying correctly in any version of IE for me. CSS doesn't seem to load.

Daniel Marbach
05/11/2011 01:09 PM by
Daniel Marbach

Wordpress has all this built in and even more...!

Ayende Rahien
05/11/2011 01:10 PM by
Ayende Rahien

Simon,

Can you send me a screen shot showing how it looks like?

We tested in IE, and it is fine.

Ayende Rahien
05/11/2011 01:14 PM by
Ayende Rahien

Daniel,

I am aware of word press, it doesn't fit how I do things.

Simon Bartlett
05/11/2011 01:15 PM by
Simon Bartlett

I can send you a screenshot, but from what I can see:

The browser requests a stylesheet from: /Skins/Semagogy/css.axd?name=Semagogy

Gets redirected to: /skins/semagogy/css.axd

Which returns a 404 error.

Ayende Rahien
05/11/2011 01:17 PM by
Ayende Rahien

What URL are you actually using? Because we don't have an /Skins/ directory in there.

Ayende Rahien
05/11/2011 01:18 PM by
Ayende Rahien

Okay, I found out what was happening, we had a redirect issue there.

Bogdan Marian
05/11/2011 01:44 PM by
Bogdan Marian

It was just fixed - Ayende, you sure read your blog FAST!

Jesse Williamson
05/11/2011 01:51 PM by
Jesse Williamson

Very cool. I've been on an off again with writing my own blog app, no because nothing supports what I want to do, but because I want to write an app. This has inspired me to get back on it again. Thanks.

Felipe
05/11/2011 01:59 PM by
Felipe

I cannot run the blog because in AbstractController.cs, it tries to read blog config from the database and it returns null

var blogConfig = Session.Load <blogconfig("Blog/Config");

Then when it tries to map with the following line I get an ArgumentException

protected override void OnActionExecuted(ActionExecutedContext filterContext)

    {

        var blogConfig = Session.Load

<blogconfig("Blog/Config");

                    ViewBag.BlogConfig = blogConfig.MapTo

<blogconfigviewmodel();

    }
Vinicius Andrade
05/11/2011 02:02 PM by
Vinicius Andrade

Can you explain why WordPress doesnt fit your needs?

I just started a blog and WordPress was the best option due to its incredible community, plugin and theme support.

Alexander Nyquist
05/11/2011 02:17 PM by
Alexander Nyquist

You've maybe thought of it earlier but i would strongly recommend that you redirect all of your old urls (running this blog) to your new urls.

I can imagine that you get quite a lot traffic from Google which you don't want to lose.

Ayende Rahien
05/11/2011 02:21 PM by
Ayende Rahien

Felipe,

The blog assumes some data is already in the DB. We will make sure that it will create that data if it doesn't exists.

Ayende Rahien
05/11/2011 02:22 PM by
Ayende Rahien

Vinicius,

Future posting, post reordering, things that I really care about aren't there.

I don't care to run a blog on a platform that I don't know very well.

Jonathan Oliver
05/11/2011 02:54 PM by
Jonathan Oliver

April Fools! Oh wait...It's May. I guess you really did write your own blogging engine.

Frank Quednau
05/11/2011 03:35 PM by
Frank Quednau

Victor: +1

It's funny you actually get flac when you write your own blog engine. It's a well understood problem domain which is of limited scope but not too trivial, can help you in understanding yet unknown technologies and in this case dogfooding your own products. Did the same thing myself 2 years ago, and I'm fairly sure there may be a version 2.

Sadly, Winhost stated it wouldn't host RavenDB, otherwise I'd probably go for a fubumvc or openrasta + ravenDB combination.

Ayende Rahien
05/11/2011 03:48 PM by
Ayende Rahien

Ryan,

Thanks for noticing, fixed now

Victor,

Ouch! That shouldn't be there, and it will be removed

tobi
05/11/2011 05:17 PM by
tobi

Make sure to keep the old URLs exactly the same for SEO reasons (see my comment on a previous post). Not even a difference in case allowed. You must 301 redirect case differences to the canonical URL so that all wrong external links still get you link juice.

Alvaro Oliveira
05/12/2011 12:45 AM by
Alvaro Oliveira

Are you going to port your posts from this one to the new one ?

Andrew
05/12/2011 03:18 AM by
Andrew

Alvaro, I saw in github a migration program, so yes I'd say so.

Would be crazy not to.

Dmytrii Nagirniak
05/12/2011 04:38 AM by
Dmytrii Nagirniak

Oren, God bless you haven't written Yet Another CMS.

Wheels are being reinvented so many times :)

Frank
05/12/2011 05:33 AM by
Frank

Didn't spend any time behind the PC after my initial post, but I see others had the same problem. But it has been fixed now. The page is now styled properly and no more javascript errors.

Rob Cannon
05/12/2011 11:12 AM by
Rob Cannon

The links in your RSS feed are not correct. They take me to an invalid page in FeedBurner.

Wyatt Barnett
05/12/2011 01:04 PM by
Wyatt Barnett

How does raven licensing work for this product- - as in let's say I wanted to run my personal blog on this platform. Would I need a ravendb license?

Ayende Rahien
05/12/2011 02:10 PM by
Ayende Rahien

Wyatt, You could do so, since this falls under the OSS license, the entire thing fall under the AGPL license, basically.

Harry Steinhilber
05/12/2011 11:33 PM by
Harry Steinhilber

I've been going back through a bunch of the previous posts and taking a look at them in the new blog. It's actually really nice. The new markdown comments actually work on a lot of old comments. The bullet points and a lot of code just work.

There are some catches, though. See some of the comments towards the end of Answer: Stopping the Leaks.

I doubt there is much that can be done about this, though.

Ayende Rahien
05/13/2011 06:42 AM by
Ayende Rahien

Harry, We put a LOT of time into making sure that comments ported over nicely. I am willing to accept that some of them won't convert nicely, as long as the vast majority of them does

Geoff Stockham
05/13/2011 07:40 AM by
Geoff Stockham

I'm getting the same articles appearing in Google Reader every day, in a flood of new posts. I'm presuming this happens every time you deploy a new version, which could get annoying considering your rate of development...

Ayende Rahien
05/13/2011 07:43 AM by
Ayende Rahien

Geoff, Yes, I fixed this now

Bradley Landis
05/13/2011 01:45 PM by
Bradley Landis

Is there a trick to get this to run in a partial trust environment?

Ram
05/13/2011 06:05 PM by
Ram

http://ayende.com/blog/4837/and-now-raccoon-blog

The webpage at http://ayende.com/blog/4837/and-nowhellip-raccoon-blog has resulted in too many redirects

Ayende Rahien
05/14/2011 07:02 AM by
Ayende Rahien

You need to host RavenDB somewhere, it can't run without RavenDB. And RavenDB will not work in partial trust env.

Ayende Rahien
05/14/2011 07:03 AM by
Ayende Rahien

Ram, I don't see it, but it is possible, we played a lot with the url re-write scenarios

Jake Ginnivan
05/15/2011 03:13 AM by
Jake Ginnivan

Ayende, just to let you know a few devs from Australia have been working on a blog engine solving the same things that Racoon does, except for the RavenDb backend of course, we already are working on being able to select a database provider.

Please have a look at http://www.funnelweblog.com/. Our stacks are pretty much the same, MVC3, Razor, nHibernate, Autofac, MEF (we have an awesome extensibility model) and markdown for both posts and comments. Seems silly to have two blog engines which are so close to each other in terms of goals :)

Ayende Rahien
05/15/2011 06:28 AM by
Ayende Rahien

Jake, Thanks for letting me know. But there were a few other reasons to want to write our own blog engine.

I'll put all of them in a future post, but the essence is that: a) using RavenDB properly means that you can't really hide it behind a data layer (more accurately, the RDBMS data model that the data model exposes wouldn't be a very good option for RavenDB).

b) we wanted a RavenDB sample app.

c) it is easier for us to make changes and modifications to our own stuff, which we know and built to support our own needs.

Tero Teelahti
05/16/2011 09:02 AM by
Tero Teelahti

The initial HTML page response is very fast, but opening e.g. category "blog" (http://ayende.com/blog/tags/blog) makes 277 requests and takes a total of 18 seconds on a fast network. Opening this page my chrome 12 totally halts for >10 seconds. IE9 handles the situation better, but the amount of requests and page load time stays the same. Most of the requests are to Facebook and Twitter. I tried on two different networks just to be sure that this is not an issue on my network.

Maybe some room for improvement here?

Muhammad Adeel Zahid
08/13/2011 11:17 AM by
Muhammad Adeel Zahid

Hello, i have downloaded the RaccoonBlog and tried to debug it using visual studio. but RavenDb profiler gives me 404 errors at /docs/Raven/Replication/Destinations and /docs/Blog/Config. what can i do to sort this one out. plus what's the default username/password to enter the admin section of Raccoon Blog regards Adeel

Ayende Rahien
08/15/2011 12:46 AM by
Ayende Rahien

Muhammad, It is best to ask on the mailing list for ravendb

Muhammad Adeel Zahid
08/15/2011 04:03 AM by
Muhammad Adeel Zahid

Ok, i will ask there. what about admin user/password for Raccoon Blog

Comments have been closed on this topic.