This is completely unscientific (i may look into it more in the coming weeks) but after trawling through YouTube for some songs and events to listen to whilst in the fountain of fun that is my work, i decided to check out how useful the ratings actually are. I have found them close to useless and really have to know what i'm looking for (or waste time previewing the first 10 seconds).
The issue seems to be that so few people actually rate or make a comment and the percentage that vote seems to be fairly constant no matter how many people view a video. What is interesting is that for videos involving an individual doing something visibly difficult (such as in sports) more people seem to vote and comment (again more analysis would need to be done but i looked at quite a few beyond that below and it was fairly consistent).
Now, you can argue that the point of user generated content is that the Wisdom of Crowds effect means that small numbers of the crowd voting builds an emergent validity to the data. So in Wikipedia few contribute relative to those who read. However, it's much easier to click to rate or make a throwaway comment on a youtube post (i'd say 1/3rd of these comments are arguments!) - therefore i'm not so convinced that what works for Wikipedia (where you typically need to have some level of knowledge about the subject) will work for other user collaborative systems.
I don't know who is rating, but may of the comments are argument between members who disagree with what has been said. Not sure if you can rate multiple times.... but if 1 in 500 random people made a comment on my music tastes i'm not sure it would really mean anything to me. The problem is that you really need to have some knowledge of the background of that person before you can guage the value of the comment (if that 1 person was Brian Eno it may make a difference to me!). In a single click to rate, the meaning is almost pointless to a flaw - i'm not sure rating should really even be in there. Perhaps when something has been very highly rated by a high % of people who view it there may be something in it, but otherwise it really skews what you look and - and probably what others look at too. If only 1 in every 250 people with "bad taste" (relative to me - imagine the other 249 have "good taste") vote for a pointless video, it will be one of the top videos on YouTube.
Anyway, here are a few measurements i made on viewings in YourTube. Notice that sports videos that capture individuals doing cool things are as popular as Larry Page and Steve Jobs videos... and us tech folk are well versed in rating systems and form a fairly niche market.
Larry Page speaks at the AAAS
http://www.youtube.com/watch?v=8_3OCq_vTWM
24,036 Views
95 Ratings
43 Comments
0.004% (1 in 250)
Steve Jobs Stanford Commencement Speech 2005
http://www.youtube.com/watch?v=D1R-jKKp3NA
604,988 Views
2493 Ratings
410 Comments
0.004% (1 in 250)
Coldplay - Yellow
http://www.youtube.com/watch?v=qI8I6qcxWyU
1,491,143 Views
4238 ratings
1756 Comments
0.003% (1 in 333)
U2 - One
http://www.youtube.com/watch?v=JFWPeVfWB9o
712,553 Views
1429 ratings
422 Comments
0.002% (1 in 500)
Perfect Day
http://www.youtube.com/watch?v=GrGT-CSmBZg
686 Views
2 Comments
2 Ratings
0.003% (1 in 333)
Carlos Santana & Mana
http://www.youtube.com/watch?v=GrGT-CSmBZg
118,134 Views
188 Ratings
65 Comments
0.0016% (1 in 625)
Featured items...
Obama Girl vs...McCain Mama? (#6 most subscribed)
http://www.youtube.com/watch?v=86HEv_Wtyj8
25,104 Ratings
65 Ratings
69 Comments
0.0026% (1 in 386)
Speed Stacking - Nearly World Record (first in sports category)
http://www.youtube.com/watch?v=U951R_r-3fM
73,805 Views
549 Ratings
1323 Comments
0.007 (1 in 134)
NBA Finals Lebron Etch A Sketch (sports cat)
http://www.youtube.com/watch?v=nYM__s3R5q0
1,464,610 Views
7442 Ratings
7543 Comments
0.005% (1 in 197)
Friday, July 6, 2007
Wednesday, July 4, 2007
WCF interop with complex data types
Sometimes you may want to allow services you have written in WCF to be callable from non-WCF aware clients. Ideally, you should allow anyone writing in JavaScript, PHP, Java and so on to be able to make requests to your services. This idea is fairly simple and well known when using simple value types such as Integers and Strings. You can build a request (in JavaScript) to make to your WCF service as follows:
However when using complex types, things are not necessarily more difficult, but there are some things to watch out for. Specifically, you need to ensure that the SOAP request you build correctly sets the namespace of the complex type you are sending to the WCF service. So if you have defined a DataContract as follows in the service:
Then you must ensure to set this namespace in the request. In fact, if you do not, a default namespace ("http://schemas.datacontract.org/2004/07/") is applied to the complex type and simply passing the serialized data will not work (well, it does not fail, but the values of your type are not set!). So, to correctly make the request for the above data type, you can use the following JavaScript:
<a:LastName>livingstone</a:LastName></dataContractValue>';
data += ' </MyOperation2>';
data += ' </s:Body>';
data += '</s:Envelope>';
xmlhttp.onreadystatechange = function ( ) {
if(xmlhttp.readyState == 4) {
document.form1.result.value = xmlhttp.responseText;
}
};
xmlhttp.send(data);
}
function SimpleRequest()
{
var xmlhttp = new XMLHttpRequest( );
xmlhttp.open ('POST', 'http://localhost:2407/TestInterop/Service.svc/', true);
xmlhttp.setRequestHeader('SOAPAction', 'http://tempuri.org/IMyService/MyOperation1');
xmlhttp.setRequestHeader('Content-Type', 'text/xml');
var data = '';
data += '<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">';
data += ' <s:Body>';
data += ' <MyOperation1 xmlns="http://tempuri.org/">';
data += ' <myValue1>Steven</myValue1>';
data += ' </MyOperation1>';
data += ' </s:Body>';
data += '</s:Envelope>';
xmlhttp.onreadystatechange = function ( ) {
if(xmlhttp.readyState == 4) {
alert("status = " + xmlhttp.status);
alert("status text = " + xmlhttp.statusText);
alert(xmlhttp.responseText);
document.form1.result.value = xmlhttp.responseText;
}
};
However when using complex types, things are not necessarily more difficult, but there are some things to watch out for. Specifically, you need to ensure that the SOAP request you build correctly sets the namespace of the complex type you are sending to the WCF service. So if you have defined a DataContract as follows in the service:
[DataContract(Name = "DataContract", Namespace = "http://livz.org/wcf/name")]
public class DataContract
{
string firstName;
string lastName;
[DataMember]
public string FirstName
{
get { return firstName;}
set { firstName = value;}
}
[DataMember]
public string LastName
{
get { return lastName;}
set { lastName = value;}
}
}
Then you must ensure to set this namespace in the request. In fact, if you do not, a default namespace ("http://schemas.datacontract.org/2004/07/") is applied to the complex type and simply passing the serialized data will not work (well, it does not fail, but the values of your type are not set!). So, to correctly make the request for the above data type, you can use the following JavaScript:
function ComplexRequest()
{
var xmlhttp = new XMLHttpRequest( );
xmlhttp.open ('POST', 'http://localhost:2407/TestInterop/Service.svc/', true);
xmlhttp.setRequestHeader('SOAPAction', 'http://tempuri.org/IMyService/MyOperation2');
xmlhttp.setRequestHeader('Content-Type', 'text/xml');
var data = '';
data += '<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">';
data += ' <s:Body>';
data += ' <MyOperation2 xmlns="http://tempuri.org/">';
data += ' <dataContractValue xmlns:a="http://livz.org/wcf/name"><a:FirstName>Francisca</a:FirstName>
<a:LastName>livingstone</a:LastName></dataContractValue>';
data += ' </MyOperation2>';
data += ' </s:Body>';
data += '</s:Envelope>';
xmlhttp.onreadystatechange = function ( ) {
if(xmlhttp.readyState == 4) {
document.form1.result.value = xmlhttp.responseText;
}
};
xmlhttp.send(data);
}
Tuesday, July 3, 2007
Partnering on Vidyo
One of the tricky parts of Vidyo, like most sites, is up to date content. In order to produce a live up to date site it needs up to date content.
Now either people do this or it is done programatically. The latter could be done by assigning everyone and OpenID and parsing the RSS feeds from the various media broadcasting sites and updating the site. I may do that.
The other option, is to get the various sites to "ping" the site with updates. I am trying to speak to some of the video broadcasters to see whether this is possible via the new API. This would be neat as i could get instantaneous updates of broadcasts. After all, the idea is about immediately upcoming broadcasts rather than scheduled broadcasts, so the RSS option doesn't work so well (they'd quickly get pissed if i kept hitting their sites!!).
So, an email has been sent to some of the big players in the hope some, or all get back to me. Of course they may say why on earth would we want to mix syndication with our competitors, but that - for me - would sure be nicer than the equivalent 800 social network feeds that i get today. It would also be a nicer user experience for broadcasters (one place to update and share) and consumers (one place to subscribe).
We'll see how things go ......
Now either people do this or it is done programatically. The latter could be done by assigning everyone and OpenID and parsing the RSS feeds from the various media broadcasting sites and updating the site. I may do that.
The other option, is to get the various sites to "ping" the site with updates. I am trying to speak to some of the video broadcasters to see whether this is possible via the new API. This would be neat as i could get instantaneous updates of broadcasts. After all, the idea is about immediately upcoming broadcasts rather than scheduled broadcasts, so the RSS option doesn't work so well (they'd quickly get pissed if i kept hitting their sites!!).
So, an email has been sent to some of the big players in the hope some, or all get back to me. Of course they may say why on earth would we want to mix syndication with our competitors, but that - for me - would sure be nicer than the equivalent 800 social network feeds that i get today. It would also be a nicer user experience for broadcasters (one place to update and share) and consumers (one place to subscribe).
We'll see how things go ......
Vidyo.TV Launch
With the launch of Vidyo.TV i decided to try out some more live mobile webcasting and used ComVu as my test. I added the broadcast to Vidyo and started the broadcast around 10 minutes ago. It picked up maybe half of what i said (so kinda like my Son then!) and dropped some other parts. It seems to lose data quite often - probably as i'm over GPRS, but then so will most people so it's a reasonable test.
Still, at this point it's better than the alternative (nothing) so it's quite neat to play around with. PC webcasting will still be ahead of the mobile equivalent for a while i think.
Still, at this point it's better than the alternative (nothing) so it's quite neat to play around with. PC webcasting will still be ahead of the mobile equivalent for a while i think.
Monday, July 2, 2007
Stone of Destiny filming
The Stone of Destiny is being filmed outside and we went out to see who we could see. To be honest there were loads of people who i suspect i should know, but i'm probably the wrong person as i'd be more likely to know tech entrepreneurs than films stars!
However we did see Robert Carlyle (who bizarrely lives not far from the filming at all, but still got a car...probably not eaten for the day and going somewhere rather than popping home and raiding the fridge :)) and the director Charles Martin Smith. Robert Carlyle is actually one of my favourite actors - mainly for the reason that we i saw the launch of Trainspotting here in Glasgow, he was the only actor who was (for me) better than what i had read in the book. There were loads of others who i'll likely come to recognize, but my son was more interested in the guys carrying the lights! He thought they were the key guys to the whole thing. Fantastic :)
However we did see Robert Carlyle (who bizarrely lives not far from the filming at all, but still got a car...probably not eaten for the day and going somewhere rather than popping home and raiding the fridge :)) and the director Charles Martin Smith. Robert Carlyle is actually one of my favourite actors - mainly for the reason that we i saw the launch of Trainspotting here in Glasgow, he was the only actor who was (for me) better than what i had read in the book. There were loads of others who i'll likely come to recognize, but my son was more interested in the guys carrying the lights! He thought they were the key guys to the whole thing. Fantastic :)
Subscribe to:
Posts (Atom)