Can NoseRub replace FriendFeed?
Aug8
After Facebook buying FriendFeed, some questions arose wether NoseRub could be an open and free alternative to FriendFeed.
While NoseRub never was designed to imitate FriendFeed (in fact I got aware of FriendFeed a while after I started coding on NoseRub), you can do a lot of those things in NoseRub, that you do in FriendFeed.
What’s similar
The basic idea of NoseRub is: you create a profile with information about yourself and of course various web accounts you have around. Under this profile URL, other people can see a stream of all those activities you added to your profile.
Other people can also comment on those entries and mark them as favorites.
You can also add other NoseRub profile URLs as contact to get a stream of activities from your network.
So, this all is basically what FriendFeed does, too.
What’s better
NoseRub is free and OpenSource, what might not be an advantage point for all you out there, but it is important to know that NoseRub cannot vanish, because someone else buys it and decides to bury it.
But NoseRub is also decentralised. That means that comments and favorites are distributed between various servers on which NoseRub was installed. So, if you have a NoseRub server running on yourownserver.com and add me as a contact, you will see all my activities in the stream of your contacts. Once I add a new web account (eg flickr) to my profile, you will get that, too.
If you then make a comment on one of my photos which you see on your contact’s activity stream on yourownserver.com, this comment will also appear on identoo.com!
But you don’t need to have a NoseRub account somewhere to comment my photos. Just go to identoo.com, log in with any OpenID and go to the photo of mine on identoo.com you would like to comment on. It’s just like using OpenID on blogs to identify yourself.
NoseRub is also a full server/client for laconi.ca and of course an OpenID provider.
What is missing
Realtime of course, but that’s just a question of server power. NoseRub was designed in order to be installed on any server that also can hold a wordpress installation. So, no fancy Memcache, XMPP servers, etc..
For now! We’re just a small team of currently four people working on NoseRub - and we’re doing this only part time. So we concentrate on making this thing work. Better to have decentralisation working than have a perfect scalable AMI image for hundreds of thousands of users.
I rather would like to see hundreds of thousands of single NoseRub installations rather than a couple of huge installations.
We’re currently working on groups, too. And once I figure out what “Hiding” exactly does in FriendFeed, I will put this on our ToDo-List.
Conclusion
I understand that we lack of documentation on NoseRub and I will try to solve this issue by answering questions in more upcoming blog posts. Many things are currently in the state of “it works” to show the functionality, but need a lot of polish to make it “bulletproof”. Therefore the lack of documentation, as most of the things are currently meant to be very simple and not really publishable.
But I will overcome this shyness and share our ideas in more detail
NoseRub IRC Channel
Aug2
We now have our own official IRC room: irc.freenode.net/noserub. Thanks to Tane for handing it over to me.
AdManagement built in
Jul0
The upcoming version of NoseRub will contain its own AdManagement. Why is there a need for that?
When you set up a social network, you probably want to put ads on some pages. We just added support for that to our widget system for the new themes. In a template it looks like this:
$noserub->widgetAd('sidebar');
sidebar is the name of the AdSpot and the theme designer needs to add a file called ads.php to his/her theme, which contains all the AdSpots for this theme:
/**
* Definition file for the ad spots of this theme.
*
* make sure not to start this file with <?php !!!!
* The pattern is like this:
* $theme_ad_spots = array(
*
* ‘name’ => ‘
* ’size’ => ‘
* ‘info’ => ‘
* )
* );
*
* The ad spot names are then used in the network admin interafce
* to place ads on them.
*/
$theme_ad_spots = array(
1 => array(
‘name’ => ’sidebar’,
’size’ => ‘200×200′,
‘info’ => ‘Used in the right sidebar’
)
);
This is the ads.php from our default theme that we’re currently working on. As you can see, there is only one AdSpot defined right now.
The AdManagement interface in the Admin area looks currently like this:

On the top you will see all AdSpots for the current theme and a select box under each where you can assign an Ad.
Below the AdSpots, there is the list of all Ads that you created. Width and height are only used for information and the flag allow php code is not yet used.
The basic idea is, that you create a couple of Ads, like eg. AdSense and then assign them to the appropriate AdSpots. If you design your own theme, you could even create AdSpots that are verify specific rather than so general like the sidebar example for our default theme.
This way you could have different ads for AdSpots like sidebar_location or sidebar_network. It’s up to you…
Add new Services without changing the database
Jul0
Up to today, if you wanted to create a new Service for NoseRub (like Flickr, delicious, Reddit, Twitpic, etc.), you would have to write a nasty SQL statement to make this Service available to the NoseRub installation.
This was not only source for many potential fatal mistakes, but also a mess when more than one person wrote a Service at the same time. Due to some incrementing IDs, you could end up adding the same ID for different services.
Today I made some changes to the way Services are handled. They are no longer identified by an ID, but their Name, which makes much more sense. You also don’t need to manipulate the database anymore. Just drop the Service icon and the Service class to the right places (/app/webroot/images/icons/services and /app/models/services) and call the /system/update URL afterwards.
An example of how such a Service can look like can be found here.

Details may change in the next couple of days/weeks, as I don’t like the anonymous ID for the service_type. Their values are currently defined in the bootstrap.php.
9 as the service_type for Brightkite here means that this is a service which items represent locations. This way NoseRub allows you to filter the activity stream. You’ll find the filter on the right side. Try it out!
CakePHP specific blog
Jul0
For the ones who are not only interested in NoseRub itself, but also how it uses the web framework CakePHP, there is now a blog available, where I want to share the things I learn/discover during my development of NoseRub: The Cake Bakery - Recipes for Development with CakePHP
Webcam Upload
Jul1
A big Thank you goes to Björn Acker, who provided the Flash module for enabling NoseRub to directly upload photos taken with your Webcam.
This works for your own Lifestream, but also for the new Group-Feature. It still will take some time until we can release NoseRub 0.9, but with the upcoming next NoseRub DevNights, we hopefully will get some work done.
NoseRub DevNights
Jun2
We’re way behind any schedule we set ourselves for NoseRub 0.9
This is mainly because we underestimated the amount of work that needs to be done for introducing the new theme. And of course, because NoseRub is driven by people who do this in their spare time.
All this resulted in even less work, as everyone is frustated, that nothing is really going on.
So, I decided to introduce the NoseRub DevNights from today on: every Wednesday and Thursday, between 8:00 pm and 0:00 am (CEST), the NoseRub team wants to get together virtually to spend some time on the project.
We will be available on Chat (that somehow does not work on Safari, try Firefox instead) to communicate within the team, but also with everyone externally who wants to add new services, polish the documentation, etc.
We probably will not be there all the time and probably not everyone will attend all the time. The main goal for us is to have a steady development, even if it happens in small increments.
So, please bear with us - we still think that NoseRub is a very important project and we’re looking forward evolving it into an even better project.
NoseRub Blog - Reinstalled
May2
Due to an unwanted deletion of the complete database of NoseRub’s Blog, I went for reinstalling and moving from S9Y to Wordpress.
I hope to find some of the old articles somewhere in the deepest corners of the internet and will add them once I found them…
NoseRub 0.8.2 released
Mar0
NoseRub 0.8.2 is now available for download. The major change is, that you now am able to log in to any NoseRub installation with your OpenID and comment on social stream entries or even mark them as favorite.
As your NoseRub profile URL (eg. http://identoo.com/dirk.olbertz is an OpenID, you now can log in with that OpenID on every NoseRub installation. One step more towards a distributed social network…
The other bigger change, although this is more of an internal thing, is the new admin area. Make sure to read the INSTALL.txt in order to know how to access this admin area.
Right now, you can only change some of the settings that previously have been in /app/config/noserub.php. As they become obsolete now, make sure to call /system/update/ twice in order to get a list of all the obsolete settings.
This admin area will be enhanced in future releases and then include user management and even more settings.
NoseRub 0.8.2 will be the last update for the 0.8 release and also includes various new services (thx Lance!). Works on the upcoming NoseRub 0.9 have already begun and we now will be able to remove all the code that we needed to maintain for the current 0.8.x release.
NoseRub 0.9 will be a huge update and we’re all looking forward to it!
NoseRub Re-Design: Preview
Mar4
Poolie just published a nice preview of the upcoming design changes for NoseRub. Beside the beautiful design, the underlying theme system will be the biggest change.
There is no detailed roadmap for that release, but it pretty much will be the 0.9 version and it is very likely we will have at least one 0.8.x version with bugfixes and minor enhancements online.
Let us know, what you think about the new design!
(Click on the screenshot for a bigger version to see more details.)

