Skip Ribbon Commands
Skip to main content

Quick Launch

 

 Source Code

 
  
  
  
Home
Blog of Petar Vucetin, containing my thoughts, comments and questions.
October 16
Opinion: Are we at the tipping point of the Internet Entertainment Broadcast on your Television Set?

Can your television set stream the Internet entertainment content in the way that rivals traditional television? Do you feel that we have arrived at the point where we can break the chains that bind us to our CATV companies? Are we at the tipping point where CATV will become thing of the past?

Cable television (CATV)

“Cable television, formerly known as Community Antenna Television or CATV, was born in the mountains of Pennsylvania in 1948. “ -- about.com:invetors

I don’t think that John and Margaret Walson could have imagined what would become of the CATV in the next 60 years.

The National Cable & Telecommunication Association has a good article summarizing the history of cable television. Below are some excerpts:

The 1940s and 1950s Cable television originated in the United States almost simultaneously in Arkansas, Oregon and Pennsylvania in 1948 to enhance poor reception of over-the-air television signals in mountainous or geographically remote areas. “Community antennas” were erected on mountain tops or other high points, and homes were connected to the antenna towers to receive the broadcast signals.”…

2000 and Beyond Arrival of the new millennium brought with it hopes and plans for acceleration of advanced services over cable’s broadband networks.

As the new millennium got under way, cable companies began pilot testing video services that could change the way people watch television. Among these: video on demand, subscription video on demand, and interactive TV. The industry was proceeding cautiously in these arenas, because the cost of upgrading customer-premise equipment for compatibility with these services was substantial and required new business models that were both expansive and expensive.

In 2001, partly in response to those demands, AT&T agreed to fold its cable systems with those of Comcast Corp., creating the largest ever cable operator with more than 22 million customers.” --  ncta.com

You can find more about the history of cable television here.

You love your TV (they know)

Brad A. Myers' web site has an interesting compilation of facts about TV, internet and computers. Although the time frame of the article quotes below vary greatly (some go back to 1995), I have outlined some of the more interesting quotes:

"...[H]ouseholds that receive about 60 channels usually watch only 15.  Households whose systems can receive 96 channels (around the national average) actually watch ... 15." -- Steven Levy, "Television Reloaded", Newsweek, May 30, 2005, p. 55

"The average American child spends 900 hours a year in school--and 1,500 hours a year watching television." -- Jonathan Alter, "It's 4:00pm. Do You Know Where Your Children Are?" Newsweek, April 27, 1998, p.31

"In the world there are some 89,000 movie picture screens; there are 790 million TV households, there are 50 million paid subscribers, there are 315 million homes with videocassette recorders, who last year rented or bought 7.3 billion pre-recorded videocassettes. And last year alone, there were over 2,000 films that were produced, not to mention the many thousands of television shows." -- "Bud Yorkin Plays Kresge Theatre", Carnegie Mellon Magazine, Vol. 14, no. 1, Fall, 1995, p. 11

"... 16 million personal computers will be sold in the United States in 1995 and a further 34 million units worldwide. Workstation sales will add a million units more. To put this in perspective, PCs' and automobiles' yearly unit sales are now in the same ball park. By the end of 1994, the installed base of PCs exceeded 80 million units in the United States and 200 million worldwide (0.3 and 0.035 unit per person respectively). Intel Corp. chairman Andy Grove predicts that by the end of this decade, PC sales will surpass 100 million units worldwide--more than sales of cars or TVs." -- Egil Juliussen, "Small Computers," IEEE Spectrum, January, 1995, p. 44

Why CATV feels like a dinosaur today

Barrier to entry is high

If you think about it, the barer to your ability to show the content on your TV from a cable or dish provider is pretty high here in the US.

Each provider requires you to have a piece of hardware that allows you to decode the data stream coming from their central office. Big hunk of metal - not good for anything else. Lately they are combining these with the DVRs but software that comes with these DVRs is lacking a lot of features to make them manageable. Also none of them can socialize with any other electronics you might have lying around your house!

When you have settled and picked the provider of your choice, you must buy a “package”. These packages have a range of products bundled together such as internet access, high-def channels, local channels, sport, phone service, premium channels, etc. On average, the price for a good set of channels bundled with internet will run you over $100 dollars a month.

CATV content is unmanageable

CATVs premise is “watch now”. You cannot browse backwards in time or freeze the content. You have to purchase additional equipment (DVR, TIVO) if you like to do anything else. Of course this all adds up, DVR is X dollars per month; TIVO is not cheap either.

There is a somewhat moderate effort to make CATV flexible with the On-Demand service where you can retrieve past shows but its a far cry from the versatility and flexibility offered by computers today.

Cannot customize “my” entertainment

Trying to “design” your package with the channels you want is impractical because you will get penalized and pay an arm and a leg for it. The price of offered packages compared to their value is not proportional, in my opinion, and the prices keep going up.

You can play this exhausting game where you have to call the customer service, threatening to disconnect cable, so they can put you on some kind of promotion for six months and keep cost down. After the these promotions end, you mind find that the price of your package costs as much as a payment for a small car.

Competitive landscape is bleak at best and full of confusion in the CATV land.

Landscape is changing

TiVo has enabled us with the freedom to watch a broadcast program when it is convenient to us. The user experience with operating the remote control and the TiVo program is innovative enough to allow the average person not to be intimidated with the TiVo box.

TiVo HD XL DVR

TiVo is great with the fire-and-forget kind of programming where you subscribe to a broadcast you like and TiVo will hunt down new and old episodes you have not yet seen. However, TiVo suffers from the same fault as the CATV box (DVR or whatever you use) because it’s hard to make it socialize with other devices that might be present in your household and its internal workings are fixed and unchangeable (you can hack these boxed but that’s whole another set of problems). They did add some portability where you can see the content on the mobile device, which helps with flexibility of use.

As of late, TiVo has extended its universe to cover Netflix, Amazon, and other Video on Demand (VOD) services.

Internet

I started paying more attention to what is being offered on the Web as of lately regarding the video content. I have noticed crop of new sites such as www.hulu.com, www.joost.com, www.boxee.com, and www.sling.com. Sling had an excellent idea early on where you could simply plug SlingBox into your video source allowing you to watch and control your TV from anywhere in the world which is quite awesome.

It is quite clear, from the projects that Vertigo is currently working on, that broadcasters have figured out that Internet Entertainment Broadcasting is coming, and coming fast. For instance, look at our NBC Sports Sunday Night player! Before that we did the CBS inauguration and DNC convention (all in Silverlight), which was broadcasted in HD!! Silverlight is spreading (ITV) and I think its a superior platform for delivery of Rich Entertainment Experiences and not just the Rich Internet Applications.

If you study the TV to Internet landscape, you will find plethora of vendors trying to entertain you on the internet: http://vendr.tv/, http://revision3.com/, http://player.stv.tv/, http://www.ustream.tv, http://www.itv.com/, etc. I think you understand that www.youtube.com is a staple of Internet Entertainment Broadcast. NetFlix really rocks, and so does Amazon, with their video on demand services (VOD).

There is so much going on and so much available, that you will find that you need a service to locate the content such as http://www.findinternettv.com.

Below are insightful statistics that make it clear where the entertainment industry is heading with new the generation:

"More than 9.8 million children are using the Internet, a number projected to triple in the next four years... In a recent poll by CNN and USA Today, 28 percent of teens said they could live without their TV, but only 23 percent said they could get by without a computer." -- Brad Stone, "The Keyboard Kids", Newsweek, June 8, 1998, p. 72

kid

"Given a choice of six media, one-third (33%) of children aged 8 to 17 told KN/SRI that the Web would be the medium they would want to have if they couldn’t have any others. Television was picked by 26% of kids; telephone by 21%; and radio by 15%.  For the top three media, results were dramatically different among girls and boys. Twice as many boys (34% versus 17%) chose TV as their must-have medium, while telephone was more than twice as popular (31% versus 12%) among girls. The Internet placed first with 38% of boys and 28% of girls."

"More Kids Say Internet Is the Medium They Can’t Live Without," StatisticalResearch.com, April 5, 2002 (thanks to Dick Halpern)

I think its obvious that the next generation is hooked on computers.

XBOX

A friend of mine was quite a visionary. He used his Xbox (1.0) exclusively to watch “TV”. This was 2003 and his Xbox was moded to accommodate this way of viewing the CATV programs. I did not like the “moding” part and did not understand it at that time why he was  bothering with it at all! 

Today its different. I think we all feel pinched and look everywhere to save money. CATV is not an essential service. CATV has kept us (consumers) paralyzed for the last 60 years with no intention to change!

Look at something like the SkyPlayer for Xbox 360. My jaw dropped when I saw this! Of course its not available in the US (only in UK). Sigh…

I can see how the Xbox can replace that clunky CATV receiver. Combined with Zune software and PlayOn you can get wide coverage of the current Internet Entertainment Broadcast spectrum. The potential to offer so much more is there.

What do I want and what am I willing to give up

To me the entertainment is the mashup of video, internet and real-time broadcasting.

I want the ability to find content, presented in a pleasing environment, with the browsing experience to map to the same mental model of how we browse channels on CATV—but better and richer.

I want my friend to suggest that I watch something and I can watch it instantly or even collaboratively.

I want to view photos from Flickr on my TV.  I would like to see my FriendFeed, Facebook and Twittter streams while I watch a show or a movie (REDUX might be it)!

 friendfeed_32 facebook_32 lastfm_32 twitter_32 flickr_32

I find that some sites (1, 2) are a guilty pleasure and would like to see their content “live” and moving on my TV at all times. I want thousands of “channels” that I can search, browse easily, and record easily.

I want HD.

Jay

I do not want to hack anything. No modding or chipping or whatever hacks people do these days. If we are to transition to new media devices they have to work for an average consumer (yes, I did call my self an average consumer).

I want to have a smart content recorder that will find the programs (à la TiVo) by scouring the internet.  This recorder will be smart enough to get the content from both the free and paid providers (eg. NetFlix) with whom I have a subscription.

I want standards that will allow video streaming as well as dynamic content mixed in the stream and consumed by whichever player I like.  I am aware of DLNA but that’s just a start and I think a good one.

I am ok with product advertisements showing up (unobtrusive?). I actually believe that if I see the engaging ad, I might act on it by trying to explore more! I am ok with advertisements because they can offset cost of content production and transmission for the Internet Entertainment Broadcast providers.

I think one thing that is hard to give up is the “office water cooler” effect, where you discuss with your colleagues the shows you have seen the night before.

What am I doing now

I am in the very early stages of trying to figure these things out. I have not given up CATV just yet, but I am close. I have given up the HBO because I cannot afford it. I fear Showtime is next. I believe i can sacrifice the immediacy afforded with CATV (for now) and wait for the show to appear somewhere on the internet.

I am trying to keep it simple.

I have setup my Xbox so that I can watch movies from NetFlix and Amazon. I had some DVD’s that I stored on my computer, and with Zune sharing, I can see those movies on my Xbox. Also, my music lives on my Windows Home Server so I can stream music via Xbox to my television.

I have setup PlayOn to get the Hulu but have not completely committed to the service.

I’ll keep plowing ahead with an effort to completely disconnecting myself from my CATV provider. The only thing I still need, for now, is their internet service. FiOS is coming to all major cities, but I have not had enough time to look into it where I live.

How do you get your entertainment today? CATV or Internet? Any tips you can share?

****************************

I just want to make you aware that I am no expert, nor do I have completely accurate data. I am not endorsing any of the companies mentioned here, but I do like some of them. These are purely my opinions and not those of my employer.

* References Source: http://www.cs.cmu.edu/afs/cs.cmu.edu/user/bam/www/numbers.html

October 08
Tip: Lost the Outlook envelope icon in the task bar

It happened to me! The little envelope that is displayed on your icon bar on the right can disappear if you dismiss it by mistake. Finding where to turn on this feature was quite insane.

image

I think Outlook options UX leaves lot to be desired. See the above screenshot for the location of the property to turn the envelope icon back on.

October 08
Tip: SQL Azure Manager

I just ran across this article from Stephen Forte. The SQL Azure Manager looks very promising. I have only found that the views that have spaces in their names are not working when right clicking the view and selecting display top 100.

Ability to change database is a gold. Overall this is very helpful tool and you can find it here.

September 30
Tip: SQL Azure Northwind script

I have finally got the SQL Azure invite. I think the big plus from its predecessor is that you can now use of SQL Management Studio to send queries to the Cloud SQL. Naturally i have tried to run the Northwind create script but it failed on few things.

Looks like image and ntext are not supported just yet. Also, any sys(…) tables are also not supported as well as any file group references. Another discovery is that inserting data into tables with no clustered keys was not supported.

I have cleaned up a script a bit and you can find it here.

Petar.

August 05
How to: Blend 3 Turn image into 3D

I don’t work much in Blend but i was mocking up something with Blend 3 sketch flow and was in a need to skew an image to look like 3D. I could not quite find what I was looking on the web or around the office so I started my usual poke-around-lets-see-what-this-thing-does. I found in the process that a) I do like Blend b) its freaking complicated.

So, to get your image in 3D: place image on the surface, click on tools and select Make Image 3D. That’s it. Now when you are done with that you can play around with various things. The most interesting one is the found under ModelContainer. Click on model and you will see three axis you can play with.

image

After that you can manipulate the image by clicking and moving your mouse along any of the axis.

image

So my final “sketch” was good enough to convey the idea (designers close your eyes).

image

Petar.

July 22
Tip: ASP.NET MVC and JSON Hijacking and securing the view and the controller

Using AJAX with JQuery and ASP.NET MVC is trivial.  With simple setup in the controller you can make AJAX calls from the view. But there lies a danger. You can get your data hijacked if you are not careful! To prevent this exploit you should protect your AJAX calls from this kind of an attack.

Typically in ASP.NET MVC you can create a method in your controller with return type of JsonResult then call it from the client e.g. jQuery.ajax (…). Check this blog post from Haacked (Phil Haack) how to do this.

To illustrate this I have here a contrived sample method of the controller that returns JSON result. The method of the controller is setup so that it require a user to authenticate (and authorize) before accessing it.

[Authorize] [Authenticate]
[AcceptVerbs(HttpVerbs.Post)] public JsonResult GetData() { ///data call var data = new List<string> {"one", "two"}; //return Json (xml) serialized objects return Json(data); }

Authenticating and authorizing is not enough to prevent someone from stealing the data from your controller (Having JSON return result type is not required, you can return XML and still have the same problem) Here is why:

You come to the site you trust and authenticate. In turn site gives you a cookie to track the session. Behind the scenes the site is calling /Controller/GetData to do some async UI updates.

image 

Then you decide to navigate to some other site that which has malicious intent and will try to still the data. They are well aware of the Controller/GetData but can’t do anything until they coerce you into participating e..g navigating to a rogue page.

image

Attack Vector:

Attacker uses a <script> tag to invoke the call on the friendly web site. The browser will send all the cookies associated with that domain. The call will execute and friendly site will send back data (JSON, XML, etc.)

Mitigation:

There are several ways to mitigate this attack and you can find them here. The simplest solution is to make sure that AJAX calls originating from the client set a header value that you can inspect on the server. Script tag is not able to manipulate headers.

Adding additional attribute on your method call that examines the request is good way to protect the server side.

[Authorize]
[Authenticate]
[ValidateAjaxRequest]
public JsonResult GetData()
{
    ///data call
    var data = new List<string> { "one", "two" };
    //return Json f
    return Json(data);
}
 
public class ValidateAjaxRequestAttribute : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        if (filterContext.HttpContext.Request.Headers["foo"] == null || 
            filterContext.HttpContext.Request.Headers["foo"] != "bar")
        {
            throw new ArgumentNullException("Invalid Request", new Exception());
        }
    }
}

If you use JQuery, the Ajax call can be configured to insert additional headers and content types.

I recommend that you use all available methods to protect and secure your application, authenticate each call, authorize each call, protect the client and server communication with SSL, and with AJAX calls ensure that client is really an authorized client you want to send the data to.

April 07
Tip: Finding and setting private key permissions – a better way

In my previous blog post I showed you how to use FindPrivateKey utility. I have found a better way to manage your private key permissions! Here are the steps you need to take:

Open up MMC and add Certificates Snap-in for the Computer Account and your local machine.

Navigate to the folder where you certificate resides and right click and choose All Tasks. There you will find Manage Private Keys!

image

That was easy!

Petar

April 03
Tip: Cleaning up CSS files in Visual Studio

Recently i have been working a lot with CSS. One thing I noticed is that I had to do a lot of experimenting to get things working which left the CSS properties in somewhat of a disarray. Working with my friend Adrian, who frightens me a little bit with his pedantic code manners, I wanted to do something about the CSS files. Here is my recipe.

Go get the CSSTidy. Put it somewhere you can find it. I keep all my tools under D:\Program Files\Tools and expose those on my explorer bar.

image

In Visual Studio, add new External tool:

image

Click add to add new external tool in the dialog:

image

Title: CssTidy

Command: [where ever you installed it]\CssTidy.exe

Arguments: $(ItemPath)  --template=low --sort_properties=true  --timestamp=true $(ItemFileName).css

Initial Directory: $(ItemDir)

You will notice that i had to use fixed extension in the arguments. For some reason this command line did not work:

$(ItemPath)  --template=low --sort_properties=true  --timestamp=true $(ItemFileName)$(ItemExt)

You can find CSSTidy arguments here. Beware, this tool might change your CSS in way that your layout does not work anymore. I am using the minimum options which is just the property sort.

Enjoy.

March 19
Lost your private key? I can help you find it!

Working with WCF is fun. It stops being fun when you run into “Server Error in '/MyService' Application”  all in red. When I saw this lovely message “Keyset does not exist” with a very large stack trace I knew something was terribly wrong. I lost my key set. Where did it go? Ummm…. What is the keyset? So, I read through the stack trace!

The clue: “The certificate 'CN=WCFDemoService' must have a private key that is capable of key exchange. The process must have access rights for the private key.” I knew I had a right private key because I create it like so:

makecert.exe -sr LocalMachine -ss MY -a sha1 -n CN="WCFDemoService" -sky exchange
-pe -r WCFDemoService.cer

The –r option creates a  self-signed certificate. So it has to be the process than! What process? Where is the private key? Huh!?!

I reach for my tool belt and pull out FindPrivateKey. This sums it up: “It can be difficult to find the location and name of the private key file associated with a specific X.509 certificate in the certificate store. The FindPrivateKey.exe tool facilitates this process.”

This handy utility comes with the WCF samples! I think the guys did great job with WCF samples. Lots of goodies!!!

When you run the FindPrivateKey it will spit out the folder and the file where the private key resides.

findprivatekey My LocalMachine -n "CN=WCFDemoService"

C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys
\8aeda5eb81555f14f8f9960745b5a40d_38f7de48-5ee9-452d-8a5a-92789d7110b1

The only thing left now after running the FindPrivateKey is to set permisisons:

cacls.exe "C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\
MachineKeys\8aeda5eb81555f14f8f9960745b5a40d_38f7de48-5ee9-452d-8a5a-92789d7110b1" /E /G "NETWORK SERVICE":R

Hope this helps some soul out there :)

Petar

February 18
Making Microsoft Live ID work with your site (Redux)

So apparently I have gone “RPS way”, or to say “that’s cool but here is better way”  to get WLID working in your site.  Thanks to Angus Logan who was kind enough to quickly share with me the that’s-cool-but-there-is-a-better-way dude. I love to learn the better ways in doing things!!

The Microsoft Service Manager

So there is a simpler MSM found at http://msm.live.com/app.  The whole process of registering and managing your WLID application is LOT simpler.

image

When you get your Windows Live ID (WLID) SDK downloaded from the Windows Live developer site and wrapped into the VS solution, proceed to register your application.

image

Fill in required information and if you can manage to type the 6 CAPTCHA characters correctly (because I apparently need 5 tries) you will get this screen. Note your Application ID is nicely visible now! Tip: for the secret key I used the auto generated GUID from the VS Tools menu.

image

The Application ID, Secret Key still go to your web.config file under settings:

   1: <appSettings>
   2:     <add key="wll_appid" value="000000004C00...."/>
   3:     <add key="wll_secret" value="{578D73EF-619D-4007-B8C5-FFFFFFFFFFFF}"/>
   4:     <add key="wll_securityalgorithm" value="wsignin1.0"/>
   5: </appSettings>

I have highlighted the port number in the ReturnURL property when registering the site. This port is pointing to my local instance of Cassini that is running when I hit F5 on my VS solution. One thing that is important for this MSM is that you MUST add entries to your host file for the DNS name you had in the Return URL property.

 image

If you venture to play around with Customize Sign-in you will find some cool stuff. Angus tells me there is more to come! For now you can download your current configuration file and go to town!

Here is my simple customization where I have added Vertigo logo to the Live ID sign-in page by changing the STRID_LOGO in the StringTable portion of the XML.

image 

Have fun!

1 - 10Next
 

 Other Blogs

 
 John Holliday's SharePoint Reflections
 Microsoft Enterprise Content Management (ECM) Team Blog
 Microsoft SharePoint Products and Technologies Team Blog
 .Avery Blog
 .net DEvHammer
 Adam Nathan's Blog
 B# .NET Blog