More about Fauxcoly

Fauxcoly is a new Roller theme that I designed over the winter break and the one that you see here on this blog. I wanted a new theme that's simple, easy to maintain, exposes my non-blog activities like Twitter, explains itself and takes full advantage of Roller theme system. This post explains the design and how to try the theme out. [Read More]

Eclectic Roller hacks

Sun's CTO for UK and Ireland, Wayne Horkan, is a bit of a Roller hacker, and I mean that in the nicest way possible ;-) His blog has always been a showcase for what you can do with Roller template programming, although recently he has adopted a more simple and clean design. Wayne just posted a set of three interesting and useful Roller hacks on his blog Eclectic:
  • New next-previous macro: this one is useful for showing a reader where they are in a blog, which post they are reading and the names of the next and previous posts; sorta like the "current location" sidebar in Greg Reimer's theme.
  • Related entries: this is designed for use on an individual entry page and shows entries that are related to the entry being viewed based on tag and category relationships. This is an especially good hack because the code is a little scary; it iterates through the most recent 1000 posts in the entry's category, then the most recent 1000 entries in any category and then it does some analysis. I suspect this gives blogs.sun.com a bit of a workout, but it's serving four million hits/day at 97% idle so that should be no problem, no?
  • Archive macro: this one shows a blogger.com-like list of links to recent month's entries. Would be a little nicer if it displayed a count of entries for each month, but I don't think that's possible with Roller's current template system and models.

Nice stuff. Have you got any Roller hacks to share?

ROME 1.0 RC2 on the way

Nick's Twitter icon

Good news for ROME fans. Nick Lothian picked up the puck and is galloping towards the finish line (sorry, I'm terrible at sports analogies).

Nick Lothian on ROME dev:

I've gone and built some preview jars for the upcoming ROME 1.0RC2, ROME Fetcher 1.0RC2 and Modules 0.3 release.

Those jars can be found here: https://rome.dev.java.net/servlets/ProjectDoc...

I've created source and javadoc jars as well as the normal jars - the idea being that I'll get them uploaded to some maven repository.

If you have some spare time, please take a look at these and test them and let me know of any problems. Assuming there are no big issues found I'd like to do a proper release in a couple of days.

Guess that means I should test Propono with RC2.


Fauxcoly and XHTML

Believe it or not, I've never created an XHTML theme for Roller and I didn't even notice the XHTML declaration when I put my new theme (which I'm calling Fauxcoly) together. I did notice when I got over 400 validation errors from the HTML validator. So, I worked for a couple of hours last night to fix the errors both in my new theme and in my most recent weblog entries. I also had to fix a couple of Roller bugs, which need to be reported.

Now the main pages of my blog validate and I'm brave enough to put this in the theme's footer.

Valid XHTML 1.0 Transitional

Having a theme that supports XHTML isn't enough, of course. You also have to ensure that each blog entry is well formed and comments too. Unfortunately, we don't have great infrastructure for that in Roller (yet).

I still plan to release the theme in packaged-theme form, but only after I XHTML-ize it too.


New Year and new theme

Happy New Year 2009 to one and all! I took a nice long break from work, complete with a Florida vacation, hot tubbing, theme parks and a mini-vacation to rest-up from the main vacation and now I'm back. I think I'm rested and ready to restart some things including work, of course, and this blog.

Restarting a blog is not easy, or so I've heard. Here's what I did. I drew a big diagram on the white board with multiple colors, circles and arrows. I did some calculations and eventually figured out that what I need is a new theme. A little bit of eye candy for the couple of folks who end up here after a search gone wrong or accidentally clicking through as they skim over my blog in Google Reader; that's just what will re-ignite my blogging activities. My problems all have technological solutions. Funny how that works.

So, if you've clicked through to my blog then you're looking at my new theme and newly restarted blog. Thrilling, huh? It's a simple faux-column deal like my old theme, but this time I'm taking advantage of Roller's new 'action' pages, I'm using YUI Grids CSS to define the layout and I'm including content from my other sites (Twitter, Flickr, Delicious, etc.) via aggregation. I'll provide some more details about the theme and it's features (and a download) in a subsequent post, after I've gotten some real work done.


Milestone 3 and what folks like about SocialSite

Duke

We just announced a new Milestone 3 build of SocialSite over at the project blog. Just in time for the holiday break, we are feature complete and ready to spend the first couple of months of 2009 whipping SocialSite into a production-ready state.

We're excited about SocialSite and think we've created something with pretty unique value. We've had some big-name customers taking an early look at SocialSite and I though I can't mention any names, I can tell you a little about why they're interested. So far, the folks who have expressed interest are most excited about these aspects of SocialSite:

  • Social-enables any site. We've made it really easy to add social features and OpenSocial Gadgets to any site with minimal server-side changes to the target site. It can be as easy as Google Friend Connect, but the features are backed by a Social Graph that you control.
  • Extends OpenSocial. We provide extensions to OpenSocial APIs for friending, group and gadget management and nice gadgets that use those APIs, like our Social Network dashboard. If you're not happy with our out-of-the-box Gadgets you can easily write your own.
  • Includes Social Graph. We've got a RDBMS-backed social graph implementation with flexibility in profile properties and in relationship types supported. So you can decide what profile properties to show and how relationships work (one-way, two-way, both, etc.).

That all sounds good, but I know how hard it can be to see the potential of a product like SocialSite without seeing it in action. We're working on some demo sites and hope to have something concrete to show in the very near future. So stay tuned here and on the SocialSite blog.


BarCamp Charlotte, Jan. 24, 2009

Barcamp logo

There's no venue yet, but Barcamp Charlotte is coming up soon. I think it's gonna be well worth the three hour drive from Raleigh to Charlotte so I just signed up.

Registration is free. All you have to do is to sign up for an account at BarCampCharlotte.com and you'll be registered as an attendee. The site is running Buddypress, the Wordpress-based social networking suite, so you can setup a profile and socialize with the other attendees. See also:

I wonder, which one is the definitive source of information and announcements?

Enterprise Social Messaging Experiment

I must be asleep at the wheel. How did I miss this one?

From the Apache ESME (incubating) project's status page: Enterprise Social Messaging Experiment (ESME) is a secure and highly scalable microsharing and micromessaging platform that allows people to discover and meet one another and get controlled access to other sources of information, all in a business process context.

Wow, that sounds cool and it just landed in the Apache incubator. I need to learn more. There's no code in SVN yet, but there is a blog and a Google Group that I've yet to explore.


re: What Sun should do

FYI: I'm tracking blogs and other reactions to Tim Bray's What Sun should do blog post on delicious.com at the link below. Judging from the reaction so far, I think Tim should have opened up comments on this one. He would have gotten more, and possibly better feedback.

http://delicious.com/snoopdave/sunshould

New era for JSPWiki

JSPWiki logo
Janne Jalkanen: We are now beginning a whole new era with becoming an Apache project and JSPWiki v3, which will signal the first major overhaul of the entire software since v2.0 in 2002. We've got a bunch of good committers (with a new one added this weekend - welcome, Florian!) and a bunch of pretty exciting things we want to do.

I'm so happy to see JSPWiki thrive at Apache, even in the incubator. You may remember that I wrote to Janne back in Summer 2007 and suggested the move, and I've crowed about it before, but Craig Russell is the one who stepped up to mentor the project and, from what I've seen, he's doing a great job.


Sun should give up on the desktop?

Tim Bray: What Sun should do: Sun is going through a lousy spell right now. Well, so is the world’s economy in general and the IT business in particular, but this is about Sun. This is my opinion about what my employer should do about it.

It takes a lot of guts to write a piece like that and I'm really glad Tim did it. I'm going to walk out on the same limb and agree with pretty much everything Tim wrote. Tim wants Sun to focus like a laser on providing the best web platform around with Solaris, storage offerings, Java/Hotspot, Glassfish, MySQL and Netbeans for Java, Ruby, PHP, Groovy, etc. tooling. He writes:

It’s easy to understand how our servers, CMT and x86, and the Solaris OS, fit into the Web Suite. All the software, including the HotSpot, GlassFish, and MySQL runtimes, needs to be obsessively tuned and optimized to run best in the context of the Suite. Obviously, the Suite will also include Ruby and Python and PHP runtimes, similarly tuned.

All of Sun’s software tooling should have a laser focus on usability, performance, and ease of adoption for the Web Suite.

I agree, but as a web geek I guess I'm pretty biased.

Tim doesn't shy away from the critical question of what Sun should stop doing. Tim says Sun should give up on the client-side, dropping JavaFX and JavaME (and OpenOffice too, I presume). Here's Tim on JavaFX:

For actual business apps, the kind that our servers spend most of their time running, the war for the desktop is over and the Web Browser won. I just totally don’t believe that any combination of Flash and Silverlight and JavaFX is going to win it back.

I can't say I disagree with that either. Cutting JavaFX and JavaME would be extremely tough and painful decisions, but somebody's going to make to make some of those. Looking at things from Tim's web-platform-only point of view, they make sense. Sun needs only enough client-side software to keep Solaris attractive to developers and to support great development tools on all the platforms that web developers love.


ICBMs of friendship

No, that's not the start of a nuclear war. It's something much more friendly: a visualization of Facebook friend requests zooming around the globe. It's part of a three minute video produced by Palantir, a Java-powered Facebook Hackathon project that "visualizes all the data Facebook receives."

visualization

At the start of the video, the narrator mentions that they're using the JME framework. That's the open source jMonkey Framework, a "high performance scene graph based graphics API."

Via TechCrunch.

Technologies of Friendship

I'm honored, excited and now I'm prepared.

I just finished writing up some notes for tonight when I'll be one of four guest speakers talking to Fred Stutzman's Technologies of Friendship class at UNC. Here's Fred's reminder post:

Reminder: Guest Lectures on Work, Organization and Action.


Atom news: Apache Abdera graduates

Atom logo

Congratulations to the Apache Abdera team, who've just graduated to full Apache top level project status. The don't have the new site at abdera.apache.org up yet and they're still not quite at 1.0 yet, but this is a major milestone. They've got the best Atom format and protocol toolkit around, in my opinion.

via Garett and James.


SocialSite's Flexible Relationship model

oneway We want Project SocialSite to have a Flexible Relationship model that a site operator can tweak to suit the unique requirements of the site's community. We've settled on a model based on relationship types and named levels. In this post, I'll review this new model that we have designed. [Read More]

CommunityOne call for papers is open X 2

Next year there will be two CommunityOne events in the US of A; one in New York City on March 18 and the other, coinciding with JavaOne week in June 1 in San Francisco. Here's the call for papers link. The call closes on December 11.

c1

Details of Roller setup at blogs.sun.com

Meena Vyas, Murthy Chintalapati and Allen Gilliland just published an article on BigAdmin that describes the architecture of blogs.sun.com, a Roller, Sun Web Server, Memcached and MySQL based site that averages 4 million hits a day with its two SunFire T2000 servers at 97% idle. You can get the article for free (registration required) here: Sun Blogs: A Sun Java System Web Server 7.0 Reference Deployment

diagram

Worth checking out: reglib vs jQuery

I've been doing a lot of JavaScript work lately for Project SocialSite and, to my surprise, enjoying it greatly. I've also been making use of JQuery, so Greg Reimer's post on reglib vs. JQuery really caught my eye.

Here's the opening blurb from the reglib project site:

CSS is nice because it lets you declare styles without worrying about DOM load, traversal or having to reattach styles as the DOM gets updated over the lifetime of the page. Which raises the question, why isn't the behavior layer similarly declarative?

/* the style sheet */
div.menu li > a { color: blue; }

/* why not a behavior sheet? */
div.menu li > a { click: function(e) { ... }; }

reglib's goal is to get as close to that as possible:

reg.click("div.menu li > a", function(e) { ... });

reglib is so named because it lets you "register" an event handler against a CSS selector. Like CSS, once the above code is "declared", the event handling behavior takes effect globally. This is true regardless of whether the onload event has fired, or whether the DOM has finished loading off the network, or whether arbitrary sections of DOM have been overwritten.

Cool stuff, huh? Check out the DEMO page Greg has put together "rigged like a science experiment" to demonstrate the differences between JQuery and reglib.


Carolina blue

My country and even my state have made me damn proud this week. Congratulations to President-elect Obama and thanks to all the folks who worked so hard for change over the past couple of years.

Map of USA with NC in blue

The X-rated SocialSite API

Roy Fielding: I am getting frustrated by the number of people calling any HTTP-based interface a REST API. Today's example is the SocialSite REST API. That is RPC. It screams RPC. There is so much coupling on display that it should be given an X rating.

Ouch! As the author of the torrid (and pretty rough) Project SocialSite Proposal: Finalize Web Services APIs proposal that Roy calls out to sharply, I'd like to point of that, as I explained in a recent post, Project SocialSite is simply implementing and extending the OpenSocial API. OpenSocial includes both a JSON-RPC API and a REST API. SocialSite implements and extends them both. I never meant to imply that the JSON-RPC API is RESTful (and neither did the authors of the OpenSocial specifications). In fact, I renamed the proposal from "Finalize REST APIs" to "Finalize Web Services APIs" after I realized that OpenSocial would come in both flavors.

The proposal that I wrote outlined a way for Project SocialSite to hook into Apache Shindig (incubating), the Reference Implementation of OpenSocial,implement a couple of Shindig interfaces and thus gain support for both the OpenSocial REST API and the OpenSocial JSON-RPC API. The OpenSocial REST API does claim to be RESTful and I believe it is; it's based on AtomPub but includes some extensions for providing generic XML and JSON representations in addition to Atom format. The Project SocialSite REST API will extend that and will also be RESTful.

« Previous page | Main | Next page »