Tuesday January, 03 2006
One of the new things I'll be working into Roller as part of the next batch of performance improvements will be the ability to process referrer information in an asynchronous manner, i.e. outside the http request/response cycle. Not of much importance to smaller Roller installations, but enterprise users should get a pretty nice performance boost. The official proposal page is here ...
http://rollerweblogger.org/wiki/Wiki.jsp?page=AsynchronousReferrerProcessing
Wednesday December, 21 2005
Well, the Roller 2.1 release has happened rather quickly and we are now just wrapping things up and preparing for release.
You can see what Roller 2.1 has to offer on the Roller 2.1 proposal page.
The new caching code was my big contribution to this release and so far I'm pretty happy with it. blogs.sun.com has grown very rapidly over the past few months, so naturally performance quickly becomes a big concern. Probably the nicest thing about the new caching code is that it's easier to plug in new caching implementations and it's also a little easier to separate content into various caches now.
For Roller 2.1 I added a non-expiring cache implementation, which is ideal for things like xml feeds which don't change often. I've also separated some of the content into more caches, namely taking the old page cache and splitting it into a main page cache and a weblog page cache. This is helpful because under the old implementation the main page can get pushed out of the cache if your cache isn't big enough, and that sucks because the main page is probably the most time consuming page to render. We've also pushed all the planet content into it's own cache, which guarantees that the planet pages get some caching priority as well.
There is still some work left to be done with the weblog page cache, which caches all the page content for each individual weblog. Unfortunately, on a large site like blogs.sun.com with 1800 bloggers, the number of possible unique pages is very high. Considering 1800 bloggers with 100 entries each, our possible page count would be well over 180,000 pages, which is way more than a simple webapp can cache itself. So it's time to start looking into how we could make that happen.
Thursday July, 28 2005
Finally! I no longer have to add all those damn <p> and <br> tags in my posts!
I wrote a plugin for Roller that will allow users to write their blog posts in plain text and simply apply the convert line breaks plugin to have the text wrapped in html "p" and "br" tags. Oh the convenience ;)
Wednesday July, 06 2005
I almost hadn't noticed, but Dave put the final touches on the Roller 1.2 release last week and now it's available for download. The big new features being a redesigned config system to make installations easier, the new ping tools, and lots of little bug fixes.
I am happy to say that work on Roller seems to be in pretty high gear right now and things are moving along very smoothly. Just around the corner we have some pretty cool new features like sharable themes and group blogging which are sure to make users happy.
Tuesday June, 21 2005
Okay, now that I don't have to spend quite as much time on Opensolaris I can get back to working on improvements for blogging here at Sun.
For those that are interested there is a new technical proposal on the table for making some improvements to the current state of theme management in Roller. This is mainly written for other Roller developers, so it's probably a bit technical for non-java programmers, but feel free to take a peak and leave comments if you like.
We are hoping this can be completed for the next BSC release which is scheduled for late July.
Thursday June, 02 2005
Want to have a discussion with another blogger but keep your contributions to the discussion on your own blog? Well you can using trackbacks! Here's how it works ...
First you publish your new blog entry as usual and save it. Once your entry has been saved and you are still looking at the edit entry form then you scroll down a little to find a long textbox titled Trackback. Here is where you enter in the trackback url for the blog entry you want to notify. For Roller blogs the trackback url is typically found on the comments page right above where the comments are listed. Now copy that trackback url into the textbox on your edit entry page and click the "send trackback" button. Done! What you have now done is posted a comment on the other blog which contains a summary of your blog post as well as a link back to your blog. Schweet!
Here's a quick scenerio to hopefully describe how this can be fun. Let's say a friend of yours has just posted a new blog entry about a cool new feature of the Java programming language. You read the post and decide that you want to follow up with a post about your own set of cool discoveries, but of course you want it to be a continuation of your friends original post. Following the instructions above you can write your blog post as usual, then send a trackback to your friends blog so that his readers can see your comment and follow the link to your blog and read what you have to say. And of course the process can go on and on, back and forth, and include as many blogs as you like.
So give it a shot. Feel free to use this entry for testing if you like. The trackback url is ...
Also, thanks to Lance for correcting me on my previous remarks about Roller not being able to do trackbacks. I would say the functionality is a little hidden, but it is certainly there!
Wednesday June, 01 2005
This is a nice simple feature that anyone can add into their blog pretty easily.
Start by logging in and navigating to Website > Page Templates. You want to edit your _day template and insert this code just below the line #foreach( $entry in $entries ). That's it.
<!--
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<rdf:Description
rdf:about="$absBaseURL/page/$userName?anchor=$entry.anchor"
trackback:ping="$absBaseURL/trackback/$userName/$page.link/$entry.anchor"
dc:title="$entry.title"
dc:identifier="$absBaseURL/page/$userName?anchor=$entry.anchor"
dc:subject="$entry.category.name"
dc:description="$entry.title"
dc:creator="$userName"
dc:date="$entry.pubTime" />
</rdf:RDF>
-->
If you don't really know what trackback is then you can read up here. Basically this will allow other bloggers to come to your blog and be able to automatically grab the right information for them to use for leaving trackback entries on your blog. It's pretty cool stuff.
Right now Roller allows external bloggers to send trackbacks to Roller, but it doesn't allow Roller bloggers to send trackbacks themselves. The biggest item holding up Roller users from sending their own trackbacks is that we can't currently send pings, but that is coming soon.
Wednesday May, 25 2005
Yay! As of last week I am an official committer for Roller :)
I am pretty excited actually. I have contributed code to open source project before, but never actually been a full member before.
We've got mountains of features and fixes scheduled, so we'll be working full speed ahead. Well, time to get crackin' ;)
Thursday May, 12 2005
This tip builds upon my last post about ditching the default decorator and shows you how to use your Roller templates to create a custom css file for your blog. If you haven't replaced your decorator template as I mentioned, then this probably will not work for you.
Now that we are no longer using a decorator template we are free to create new templates of any type we like (css, html, etc). To create your css file all you need to do is login to Roller and navigate to Website > Page Templates. From there you want to create a new template named "site.css".
Once your new template is created then you may edit it as normal and treat it just like you would treat any other css file. When you are done editing just make sure to save. You may check out my css file as an example if you like.
You can verify that your template was properly created by pointing your browser directly at the file. The url should be http://blogs.sun.com/roller/page/"username"/site.css
Finally, you'll probably want to make use of your new css template by adding it to your blog. You can do that by editing your "Weblog" template and adding this line after the <head> tag.
<link rel="stylesheet" href="$ctxPath/page/$userName/site.css" type="text/css" />
Voila! You are now using Roller templates to serve up your custom css file. This example also serves as a base for creating all different kinds of templates (txt, html, xml, etc). Enjoy.
Wednesday May, 11 2005
One of the very first things I did after creating my blog was to ditch my decorator template so that I could have more options with creating templates. My main goal was to create a css file for my blog, but you could of course create all kinds of different files using templates ... txt, html, xml, etc. Here's how I did it ...
To start you simply login to roller and go to the page Weblog > Page Templates.
First, edit the template named "_decorator" and copy all of its contents and paste it somewhere safe like a text editor. Now, go to the template named "Weblog" and copy all of its contents and paste it over the line with "decorator_body" in the text editor where you copied your decorators contents.
Here is a screenshot of what I mean so we don't get confused.
This means you should now have a combined copy of the "_decorator" template and "Weblog" template in your text editor. Next, copy the whole combined template from your text editor and paste it back into the "Weblog" template replacing whatever was there before, then save it. The last step is to simply rename the "_decorator" template to something else, like "_decorator_old" and save it. done.
To verify, go visit your weblog page and make sure it looks the same as it was before. If nothing looks different then you've done it right and you are now capable of adding new templates which don't use the decorator.
I'll post a follow up to this where I create a custom css template and show how I included it in my blog page. Until then ...
