The personal ramblings of Jon Carlos mobile & web developer and technology enthusiast.

Monday, 16 November 2009

SocialFront the problem and SocialFront for Umbraco Dev Day 1

While looking at the market for social networking applications there are some big issues with them. The main ones were display, portability and plugability. When working with any SaaS/white label product you are at the development companies mercy as to when, how and what extensions are released and when.

For anyone who has a client that wants a product that does not exist on the market or wants more functionality than is currently available this is a bit of a problem. Now API's are all good and well, and for many products they make mashing so much easier but even if a social network has an API they are generally really complex to consume.

This is especially difficult if you want a little from here and a little from there. You have to learn each API and it's intricacies and apply them to one system. Once this is built you have one system that is good for what the client that wanted it setup in that way, but what about the next client that wants to use a different video provider or blogging system? These are the issues that we are currently trying to brain storm and work out.

In the meant time we've decided that Umbraco is the way forward for us at the moment. We're working on a prototype that developers can use to create social networks based on the Umbraco Content Management System.

So far David and I have done a days development chronicled at SocialFront for Umbraco and SocialFront for Umbraco - Development Day One.

Later this month we intend to do another days dev to get a little more code cut but in addition and due to the feedback we've had from developers interested in the idea, we'll be concentrating on functionality and how we can get others involved in the project and how to manage it.

If you're interested please give me a or David a shout and later in the month we should have a better idea of how this is going to be extensible as a project and as an idea.

Please leave comments or email me jon at socialfront dot org

Working with KickApps Social Network and Umbraco

So over the last few weeks I've been working with the KickApps platform for a couple of projects. I figured I would share some of the problems I've come up against and some of the simple things that are possible with Umbraco and KickApps.

Firstly KickApps is really easy to setup all you do is go to KickApps.com and sign up for an Affiliate account and you get a 30 day free trial.

Once you've got you Social network setup you should head on over to KickDeveloper.com this is a community of developers that are working with various languages and systems and integrating them with KickApps.

Now I should point out that KickApps offer a few different APIs and depending on the size of the system you're building and number of hits you'll be recieveng different APIs are available to you.

With a standard account you recieve an API key for the SSO(Sing Sign On) system and you can also utalise the RSS Rest interface to call any of the data on your social network. KickApps also provide some nice utility classes for C# and other lauguages to use the SSO system. In addition to this there is JavaScript API for community pages hosted by KickApps.

If you are wanting to use the KickApps platform but not use their pages you can communicate directly with the KickApps system using the REST API. You have to enter into an enterprize contract with them for this.

RSS Feeds

So working with RSS in Umbraco is a piece of cake. In the umbraco.library namespace there is a Method called GetXmlDocumentByUrl all you do is send in a url string to an XML feed and it will leave you with an object you can work with using Xpath. Depending on what calls you make to the RSS will depend data you recieve but in general you will recieve a fully populated RSS document with some additional namespaces added. Ths most important of these are mrss and karss.

In addition to using GetXmlDocumentByUrl you can Cache the feeds using the Feed Cache package for Umbraco.

MRSS

MRSS is a modification to RSS that allows additional media to be added to the feed. More info can be found at Wikipedia and Yahoo.

KARSS

KARSS is also a modification to RSS and adds some really important nodes to the documents. Some of the most useful are the addition of:
ka:totalitems - This is the total number of items that are in the request
ka:uploadedByUrl - The URL to the Members profile page

So thats a very basic overview of how you can use Umbraco to get data from KickApps.

KickApps SSO and Umbraco

Umbraco has a built in Membership system that's been integrated with the ASP.net Membership Provider. There are some control thats have been written for Umbraco that helped me work with the membership system and we're also very simple to integrate. You can find them in the umbraco extensions repository on codeplex. Note these may be a little out of date for Umbraco v4 but keep and eye out for SociaFront for Umbraco ;-)

KickApps give you a a great ASP.Net Helper Class for communicating with their SSO API but don't give much in the way of documentation on how to use it. The KickApps Soap SSO page also contains helper classes for php and other languages.

One of the first things I found when using the SSO helper was that it was trying to write some xml files to the root c: directory. This location on my computer was locked from IIS so first I had to change lines 155 and 162 to use HostingEnvironment.ApplicationPhysicalPath in stead of the hard coded c:\

Next I needed to work out exactly how to use this class. Fortunatley a member of the EPiServer community had already been through the problems I was approaching and I found some good examples of how to use the KickApps SSO Helper here.

Once I'd finished getting sign up, sign in and sign out working I needed to add some information to the KickApps Member profile. I was needing to add tags to a member but I ran in to some difficulty here. In KickApps tags are dealt with by the content part of the system not the member part. This meant that to add a tag to the system I had to use the REST API not the SSO API.

This is something that could definatley be improved as I really don't think you should have to use 2 APIs when trying to add content to one object even if in your systems they are seperate. Another thing that is a little unclear in the documentation for SSO is what fields are required for Sign Up although reciently and I guess after some customer feedback the documentation has been updated check out Edit/Update profile.

So these are some of my experiences of KickApps and Umbraco so far on this development. If you fancy a look check out www.thisiscentralstation.com I hope you like it. The design is by ISO Design and development, technology is by screenmedia.

I also launched www.pocket-place.com this week for our friends over at Tern Digital
If you're a mobile developer in Scotland you should check these guys out. They are well affiliated with the Innovation Centre in Glasgow and well worth getting in touch with. This site is also Umbraco based with a KickApps community.

Thursday, 17 September 2009

ThisIsCentralStation.com Launch

ISO and Screenmedia have just launched thisiscentralstation.com a new community for artists in the UK.

Come have a look it's quite a site. Make sure you check out the Community as well as the Artist Collections and Members Showcase.

Personally I'd like to say thanks to Simon at KickApps for all his help over the last few weeks.

I've started writing a blog explaining a little about how the site and community are built. I'll try and get it up over the weekend.

Saturday, 15 August 2009

SocialFront planning

13:22 Posted by Jon Carlos , , No comments
So while I've been quite quiet on the blog front for a week or so I've joined the disposable memory project as an administrator not just a camera dropper but in addition to that I've been doing some more planning and some additional learning.

I wrote my first ever tests in .net. That was interesting as I've only got visual studio standard and it does not come with built in testing support so I read about and found testdriven.net that works great in vs. In addition to that I was reading about mocking objects so I checked rhino mock. This seemed quite simple to build testable objects so I don't need to hook the db and everything together to test.

So in addition to planning testing I've also been looking at what the namespace requirements are going to be for the system. I have some additional Reading I ned to do on the new microsoft mef framework. It's only in ctp at the moment but visual studio 2010 includes it as the plugin framework behind the text editor so it sounds like it's quite a good plugin framework.

Also this month I've been to the www.techmeetup.co.UK in Glasgow. Swan McIntosh was talking about 4ip and some of the projects that are working on. In addition to that I went to the scot alt.net meet. It was very interesting the guys were talking about dsl somthing far more technical than I'm in to that the moment but still very interesting. Afterwards I went for a drink with joejag and craig nicol and chatted about frameworks and other tech bits and bobs.

Next month I'll be at techmeetup again in Glasgow for the talks on ms surface and there is also a coding dojo being setup through tech meetup and scot alt.net.

I'll try and get some more work done on socialfront this month and get some code online.

This post was written on my iPhone while in a traffic jam (not driving!) appologies for the typos!

Friday, 24 July 2009

SocialFront Wordle

21:41 Posted by Jon Carlos , No comments
I had a little bit of spare time on my hands this evening and I'd written this document a couple of weeks ago to try and explain what SocialFront was to a couple of people so I made it in to a wordle.

If you've not seen wordle it's a fun way of generating word clouds.

Saturday, 11 July 2009

SocialFront our reading list

00:35 Posted by Jon Carlos , , , No comments
In the process of working on SocialFront the project team have been doing quite a bit of reading. Now as I suggested before I'm not the greatest programmer in the world and want to learn in the process of building this application. I've also been chatting with a very good friend of mine and SocialFront team member David Conlisk, we've been trading links back and forth via email about stuff we're reading and what the best practice rules we will use when developing this system.

So far the outcome of our research looks kind of like this it's a some what disorganized list or resources and blogs.


On the recommendation of Brian and Ben from Google we've started to create a prototype system working with kickapps as a datasource/host. We really want to get the idea out so we can get some feed back from the community and find out if there are others that are able to help but also how useful people find the system.

At the moment I'm working on a project that involves the kickapps platform so I'm trying make that easier for me and my team but also allow others to use and learn from our code.

Towards the end of the week month I'm going to try an get some very early prototype code up on our google code site. As with most projects in it's early stages there will be very little documentation but please feel free to leave a comment on the blog or email me and I'll do what i can to help you out.

Update: Sorry i've not had as much time as I thought I would have this month. I still intend to get some code online but I'll not be able to do it before the end of the month. Also i'm going to Scot Alt.Net Meeting on Thursday 6th. I'm hoping to have another chat with Craig Nicol to chat about making the development easier by using TDD and some code testing platform like TeamCity.

I'll write a blog post about my intentions once I've chosen what to do.

Tuesday, 30 June 2009

Open Source and SocialFront

As I said in my last post I'm starting to work on an open source Social Networking system I wanted to give you some background in to why I've started my project and some other people and site you may want to checkout.

I've been using open source software for many years some of my favorite projects are:
  • WinMerge - I use this program all the time. It a diffing and merging tool for text files and any time I can't work out why some code it not working it's WinMerge to the rescue.
  • Umbraco - We've started to use Umbraco at Screenmedia as our main CMS system. I have to say this is the best thought out CMS system I've ever used. The template management is great, the flexability of the document definitions is easy to understand and develop with. You can find a very in-depth review of Umbraco from CMS Wire
  • FileZilla - This is an FTP program with some neat features including folder and file exclusions and folder diffing.
  • jQuery - If your a developer you'll probably have hear of this already fantastic javascript libraries for DHTML and Ajax.
More reciently though I've been following some social networking projects. They are all interesting but no single one really scratched that itch that we have as Screenmedia or I have as a developer.
  • Sueetie I've been watching this project since February and have tried to install it a couple of times but it's very complicated due to the level of integration the system requires with the other Open Source projects it consumes. This project is going in the right direction to create a fantastic system though once it matures.
  • elgg This is another project that I've checked out. It looks like it's a good system but the community seems to be missing and the documentation is heavily lacking.

Why Start an Open Source project

I'm mad! I've got too much time on my hands? The answer to these questions is no well to the second one anyway.

To be absolutley honest I've been motivated to start this by a few things that have happened over the last 6 months. Firstly as I've explained above I've not not found a system that did exactly what I wanted it to.

At Screenmedia we've used Ning and KickApps as well as considered building our own system but the two white label system not really design customizable in the way we wanted them to be. On Ning you can't really put much design in to the system at all. KickApps is much better in that respect, but we were still left with 2-3 levels of navigation at the top of the page and a hell of a lot of CSS hacking and jQuery.

Secondly I heard a talk at Tech Meet Up Glasgow by 2 guys that brought home to me what I wanted from Open Source.
  1. Learn new skills
  2. Not code in a bubble
  3. Meet like minded people
  4. Make something cool and create something that there is a need for.
Kevin and Joe explained that they saw a need for the Dear Green Place system and wanted to learn new skills so they found a hack space and set to work. I really like the enthusiasm they have for their project and that they can see it's making a difference they found other people that we're able to help and built a great system.

While at DDD Scot I went to a talk by SerialSeb. Seb's talk was ASP.NET MVC Best Practice and having produced a system using asp.net mvc my self I was very interested to hear how others felt about it and what their suggestions were on how to write better systems using it. This motivated me in to doing a lot or research into finding best practice practices for MVC apps. I now want to use this knowledge.

SocialFront

So introducing SocialFront. As the name suggests SocialFront is a Social networking system but like Sueetie it uses the best of what is already available on the Internet and consumes rather than hosts content.

The front end of the system uses asp.net MVC as it base but will utilise providers for consuming and publishing. This means that when you install the system you will be able to select what systems you want to use for video hosting, image hosting and discussions hosting.

The beauty of this way of working is you're able to pick and choose the right system for you and present them in any way you like.

The early release of the system will be using KickApps as it's data model but this will be extended over time.

If you're interested in learning more please leave a comment and I'll get in touch alternatively tweet me @billywizz

Hello

21:40 Posted by Jon Carlos , , , No comments
I guess as this is my first post I should introduce my self.

My name is Jon Carlos I work in Scotland for a new media agency called Screenmedia during my career I've had the fantastic opportunity to work on some amazing projects like BBC iPlayer, Slabovia.tv and Scottish BAFTA winning mySustHouse.

Over the last couple of years I've worked on a few social media projects and some that are currently in development are Central Station and Pocket Place.

I'm also currently developing an open source Social Network idea that I'll hopefully be able to speak more about here.

At Screenmedia we've also just started using Umbraco The Friendly CMS so from time to time you'll probably see posts about things we've done on that too.