text:
Since the release of Silverlight 2, there have been a number of requests for me to update my Scrolling Silverlight Video Playlist Sample and I have finally made the time to do just that. I feel it is important to point out that Microsoft Expression Encoder 2 Service Pack 1 is now out and it ships with a handful of new Player templates just for Silverlight 2 including two with a built in Scrolling playlist feature (Frosted Gallery and Silverlight 2 Gallery).
Still, partly because not everyone has Expression Encoder 2 and mostly because I felt it would be educational to do so, I went ahead and rebuilt the Scrolling Silverlight Video Playlist sample from the ground up for Silverlight 2 in C# and here it is:
This time, instead of using a player from the growing Expression Encoder template library, I went with the opensource Blacklight player which is a nice lightweight player. And rather than add my scroll widget directly to the player as I did with version 1.0, I chose to keep it seperate, and created a 'ScrollWidget' User Control that could be used in other projects (for example as a thumbnail scroller for photos, or as a toolbar) with only minor modification.
As always, the complete source code is available:
ScrollingPlaylist2.zip (1.22 mb)
[ Special thanks to Sean at FlawlessCode.com for developing this Silverlight Extension for BlogEngine.NET ]
Some time ago, I wrote a popular article on how to create a scrolling Silverlight 1.x Playlist using Microsoft Expression Encoder output. Well, I finally found some time to revisit that application to see how I might upgrade it to Silverlight 2. As you are probably aware, Expression Encoder 2 Service Pack 1 is now out and it ships with a handful of Player templates just for Silverlight 2. Among these new templates are two which already have built in Scrolling playlists and I thought I would test one out.
However, I already have all my videos encoded - including all the chapter point thumbnails, etc. so I didn't want to start inside Encoder, have it build my project and work from there like I did last time. This time, I created a new Silverlight 2.0 Usercontrol project in Visual Studio 2008 and worked for a week or two on the new look and feel for the site before I decided it was time to merge my project with the Expression Encoder template. I found Tim Heuer's blog entry on integrating these new templates very helpful, though I feel it is important to add that the template itself, meaning the look and feel of the player, is not stored in the dlls and it does not matter which of the template projects you open and compile, just referencing the dlls and following Tim's instructions will always give you the standard Silverlight 2 player. In order to add the look and feel you must copy (or merge) the contents of the Page.xaml file in that template into your own UserControl.
For my project I wanted the player to be a seperate UserControl, so I went to Project > New Item > Silverlight User Control, and called it MediPlayer.xaml. Next I pasted everything from C:\Program Files\Microsoft Expression\Encoder 2\Templates\en\FrostedGallery\Source\Page.xaml into my new MediaPlayer.xaml file, then changed the x:Class at the very top to reflect my original NameSpace and Class Name. (If you forget what it was, just undo your paste, make a note of it and redo the paste).
I also wanted my Player control to be available on multiple pages, and I wanted it hidden most of the time, only to pop up in a pseudo modal 'Lightbox' format with a close button. To achieve this effect I simply used these techniques described by Scot Guthrie in his excellent tutorial on creating a Silverlight Digg application. So now I had my player, and I could show and hide it with the click of a button. Basically, my site showcases the James Bond Movies, and I have customized the Yet Another Carousel control so that you can click on the selected box art and read the synopsis, watch the Trailer and buy it on Amazon.com. My initial idea therefore, was to create a new PlayListItem programatically and add it to the player's PlayListCollection in the onLeftMouseButtonUp event of the button. What I found was that while this worked quite nicely, I ultimately ended up with a playlist slowly being generated by the user in the order in which the user clicked on the movies, making it harder to keep track of which item in the collection was which movie, but more importantly I couldn't figure out how to take full advantage of all the chapter information and thumbnails I had created for the original project. I could create chapter item objects, and add them to my own PlayListCollection object, but I could not bind that new object to my player since the Playlist Property is read only.
Reading more of Tim's blog I saw that you could add some xml to the InitParams of the control, but I have 24 videos, each with thumbnail paths for at least 4 chapter points and I didn't need to start typing that all into a single line to understand what a nightmare that would become: not only would it be hard to read and maintain but also it goes against the whole MVC seperation of code, data and presentation layers, ethic we have all grown so attached to.
More google searches led me to this solution which does allow you to move the creation of the parameters into the code behind, but seems to require tinkering with the original template code, which I am not opposed to, but I'd already thought of a cleaner solution. What I wanted was a way to create an xml file containing my entire playlist in this format:
1: <?xml version="1.0" encoding="utf-8" ?>
2: <playList>
3: <playListItems>
4: <playListItem title="Dr No" description="Trailer" mediaSource="ClientBin/01_dr_no.wmv" adaptiveStreaming="False" thumbSource="ClientBin/01_dr_no_Thumb.jpg" >
5: <chapters>
6: <chapter position="29.176" thumbnailSource="ClientBin/01_dr_no_MarkerThumb 00.00.29.1760677.jpg" title="1" />
7: <chapter position="49.374" thumbnailSource="ClientBin/01_dr_no_MarkerThumb 00.00.49.3748838.jpg" title="2" />
8: <!-- etc -->
20: </chapters>
21: </playListItem>
22: </playListItems>
23: </playList>
and simply pass the file to my player. And my Solution turned out to be trivially easy: I created a new class that inherits from ExpressionMediaPlayer.MediaPlayer, and added a new method that would accept my file:
using System;
using System.Diagnostics;
using System.Net;
using System.Windows;
using System.Windows.Browser;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Xml.Linq;
namespace Bond_Silverlight2
public class MI6MediaPlayer : ExpressionMediaPlayer.MediaPlayer
public MI6MediaPlayer(): base()
public void OnStartup(string xmlPlayList)
XDocument document = XDocument.Load(xmlPlayList);
Playlist.ParseXml(HtmlPage.Document.DocumentUri, document.ToString());
catch (System.Xml.XmlException xe)
Debug.WriteLine("XML Parsing Error:" + xe.ToString());
catch (NullReferenceException)
This required some minor changes to the MediaPlayer.xaml file, inorder to make it use my version of the player:
First of all, I replaced the <expression:ExpressionPlayer> tags with <Bond_Silverlight2:MI6MediaPlayer> tags and any static resource styles that had a target type of ExpressionPlayer:ExpressionPlayer also needed to be replaced, and then everything used my new player. Obviously, there was another step - how to initialize and pass my xml playlist to my new player. First, I created my xml file in the format outlined above. It is important to note, that my video files and associated JPEG files are stored on the webserver inside the Clientbin folder, rather than inside the xap file as resources or content. In the code behind of my MediaPlayer.xaml (that is the usercontrol I pasted the page.xaml into earlier, not the MI6MediaPlayer class from the code above), I call the startup method using a link to my xml file:
using System.Collections.Generic;
using System.Linq;
public partial class MediaPlayer : UserControl
public MediaPlayer()
this.Loaded += new RoutedEventHandler(MediaPlayer_Loaded);
void MediaPlayer_Loaded(object sender, RoutedEventArgs e)
private void Button_Click(object sender, RoutedEventArgs e)
Visibility = System.Windows.Visibility.Collapsed;
The xml file ("Playlist.xml") is stored as Content within the xap file. This should be the default behavior if you created the xml file inside Visual Studio by using the Project > Add Item menu, but if you didn't, you can check by right clicking on the xml file, choosing Properties and checking that the Build Action is "Content", and Copy to Output Directory is set to "Do Not Copy".
Now when my Player is first loaded into memory, my full playlist is immediately available.
A real world example of this technique can be seen at http://www.thejamesbondmovies.com
It only took me about an hour to create this example. I started by dragging all 8 videos into Microsoft Expression Encoder, selected the "Expression" player template and clicked encode. This gave me the full player functionality you see here, play, stop, pause, etc. and by default it simply played all 8 videos one after the other. But I wanted my users to be able to pick and chose which videos to play, so I opened the project in Microsoft Expression Blend 2 September preview and resized the outer, root canvas by setting the height to 593 to give me room to place the thumbnails, and gave it a black background color.
Next I created the arrows that move the playlist left and right. If you have arrows as PNG images you can use them, but I chose to create them using XAML by drawing a white square, filling it with white color converting it to a path, and then using the pen tool to delete a corner and thereby converting it to a triangle which I simply rotated, moved and sized until it looked right. Set the cursor property to "Hand" so that users know it is a button. I then copied it, rotated it to point the other way and moved the second arrow into position on the other side. This gave me the XAML below which appeared just before the closing </canvas> tag.
<!-- Playlist region starts here --><!-- Navigation Arrows --><Path x:Name="LeftArrow" Opacity="0.74" Width="38" Height="38" Stretch="Fill" Stroke="#FF000000" Canvas.Left="11" Canvas.Top="514" Data="M37.5,0.5 L37.5,37.5 0.5,37.5 z" Fill="#FFFFFFFF" Cursor="Hand" RenderTransformOrigin="0.5,0.5"><Path.RenderTransform><TransformGroup><ScaleTransform ScaleX="1" ScaleY="1"/><SkewTransform AngleX="0" AngleY="0"/><RotateTransform Angle="134.119"/><TranslateTransform X="0" Y="0"/></TransformGroup></Path.RenderTransform></Path><Path x:Name="RightArrow" Opacity="0.74" Width="38" Height="38" Stretch="Fill" Stroke="#FF000000" Canvas.Left="588" Canvas.Top="514" Data="M37.5,0.5 L37.5,37.5 0.5,37.5 z" Fill="#FFFFFFFF" Cursor="Hand" RenderTransformOrigin="0.5,0.5"><Path.RenderTransform><TransformGroup><ScaleTransform ScaleX="1" ScaleY="1"/><SkewTransform AngleX="0" AngleY="0"/><RotateTransform Angle="314.365"/><TranslateTransform X="0" Y="0"/></TransformGroup></Path.RenderTransform></Path>
Next I dragged the first thumbnail (for movie # 1) onto the area, roughly where you see it now, resized it and moved it into position. I named it "play0", set its opacity to 74% to make an easy rollover effect that you'll see later on; then went into the XAML editor and simply copied the Image element 3 more times, renaming each one in turn to play1, play2, etc. and updating the Source property of each to point to the right thumbnail image. Next I had to move the new images, since they all sat on top of one another, using the basic formula left=previousImageLeft + Image Width + 4 pixels. Then playing with the spacing between them until it was roughly even. Given the width of my thumbnail and the width of the canvas it turned out to be impossible without further resizing and in the end I decided that for this example it was good enough. So I now had my four thumbnail "buttons" making up my playlist and if you can fit all of your items on the screen you can skip ahead to the JavaScript, but if you want to have them scroll keep reading.
I grouped these four images into a canvas - have Blend do this for you by control + clicking on the object names (in this case play0, play1, etc.) in the Objects and Timeline area and then pressing ctl + G or right clicking and choosing Group Into > Canvas. It is better to have blend create the canvas for you as it will update all the canvas.left, canvas.top properties for you. I called this new canvas "playlist1", then using the XAML editor copied it and created "playlist2", naming the objects play4, play5, etc. and updating the Source of each as before. Then I moved this canvas off the screen by simply setting the canvas.Left Property to a value I knew would push it out of sight. Finally, I grouped playlist1 and playlist2 into another canvas, this time calling it "Library".
Using the timeline editor I created a simple animation that moved the "Library" Canvas 613 pixels to the left over the course of 2 seconds. If you have never done this before it is really easy:
As you can hopefully see on the video, you simply click on "Open, create or manage Storyboards", click "Create new", give it a name, make sure "Create as Resource" is checked so that we can access it through code, move 2 seconds into the timeline and add a keyframe to start the recorder, then make your changes. In this case we are changing the Left poperty so that it moves 613 pixels to the left - just far enough to bring the second "page" of buttons onto the screen. Stop the recorder and as you scrub through the timeline you can see the animation or click the play button to preview it.
Making it animate back the other way was a little trickier to do using the IDE, so I simply copied the XAML and changed the values myself.
Now if you have been trying this yourself you might be wondering why your thumbnails can be seen moving underneath, or even on top of the left and right arrows created earlier, while mine do not. The answer is that I have put my "Library" Canvas inside another Canvas called "ClippedCanvas" which has been "clipped", or cropped if you prefer using RectangleGeometry. Everything that falls outside the geometry you provide is hidden, or "clipped." The numbers represent X coordinates, Y coordinates, Width & Height in that order. X & Y in this case are relative to the container canvas ("ClippedCanvas"). So basically I am cropping an area from the top left of where Clipped Canvas begins, 550 pixels wide and 114 high, anything within the canvas that falls outside that region will not be seen. If you click on "ClippedCanvas" in the Objects and Timeline you will see it outlined in Blend and have a better understanding of where it is drawn.
So, the Final XAML for my Playlist region looks like this:
<!-- The outer canvas here is clipped: only the area defined by the rectangle geometry is visible --><!-- This is necessary as when we animate the 'Library' canvas inside it we do not want to see the thumbnails slide under the navigation arrows and off the screen--><Canvas x:Name="ClippedCanvas" Canvas.Top="491" Canvas.Left="43" Width="550" Height="90"><Canvas.Clip><RectangleGeometry Rect="0, 0, 550, 114"/></Canvas.Clip><!-- Animations to move the playlist left and right. They are numbered so that we can call them logically from code --><Canvas.Resources><Storyboard x:Name="MoveLeft01"><DoubleAnimation Storyboard.TargetProperty="(Canvas.Left)" Storyboard.TargetName="Library" From="13" To="-613" Duration="0:0:2" /></Storyboard><Storyboard x:Name="MoveRight02"><DoubleAnimation Storyboard.TargetProperty="(Canvas.Left)" Storyboard.TargetName="Library" From="-613" To="13" Duration="0:0:2" /></Storyboard></Canvas.Resources><!-- The Library Canvas groups the playlist buttons into a single element that can be easily animated left - right. --> <Canvas Width="1157.275" Height="82.96" Canvas.Left="0" Canvas.Top="0" x:Name="Library"><Canvas Width="550.275" Height="82.96" x:Name="playlist1"><Image x:Name="play0" Opacity="0.74" Width="133.275" Height="82.96" Source="1.png" Stretch="Fill" Cursor="Hand" /><Image x:Name="play1" Opacity="0.74" Width="133.275" Height="82.96" Source="2.png" Stretch="Fill" Cursor="Hand" Canvas.Left="139"/><Image x:Name="play2" Opacity="0.74" Width="133.275" Height="82.96" Source="3.png" Stretch="Fill" Cursor="Hand" Canvas.Left="278"/><Image x:Name="play3" Opacity="0.74" Width="133.275" Height="82.96" Source="4.png" Stretch="Fill" Cursor="Hand" Canvas.Left="417"/></Canvas><Canvas Width="550.275" Height="82.96" x:Name="playlist2" Canvas.Left="607"><Image x:Name="play4" Opacity="0.74" Width="133.275" Height="82.96" Source="5.png" Stretch="Fill" Cursor="Hand" /><Image x:Name="play5" Opacity="0.74" Width="133.275" Height="82.96" Source="6.png" Stretch="Fill" Cursor="Hand" Canvas.Left="139"/><Image x:Name="play6" Opacity="0.74" Width="133.275" Height="82.96" Source="7.png" Stretch="Fill" Cursor="Hand" Canvas.Left="278"/><Image x:Name="play7" Opacity="0.74" Width="133.275" Height="82.96" Source="8.png" Stretch="Fill" Cursor="Hand" Canvas.Left="417"/></Canvas></Canvas></Canvas>
Code that I added or changed is in bold, the rest is straight from the Encoder's original output.
var curPos = 1; //track the current position of the playlistsvar maxPos = 2; //How many pages of clips do we have?var cVideos = 8; //How many video Clips do we have?function get_mediainfo(mediainfoIndex) {switch (mediainfoIndex) { case 0:return { "mediaUrl": "Movie1.wmv","placeholderImage": "","chapters": [ ] }; case 1:return { "mediaUrl": "Movie2.wmv","placeholderImage": "","chapters": [ ] }; case 2:return { "mediaUrl": "Movie3.wmv","placeholderImage": "","chapters": [ ] }; case 3:return { "mediaUrl": "Movie4.wmv","placeholderImage": "","chapters": [ ] }; case 4:return { "mediaUrl": "Movie5.wmv","placeholderImage": "","chapters": [ ] }; case 5:return { "mediaUrl": "Movie6.wmv","placeholderImage": "","chapters": [ ] }; case 6:return { "mediaUrl": "Movie7.wmv","placeholderImage": "","chapters": [ ] }; case 7:return { "mediaUrl": "Movie8.wmv","placeholderImage": "","chapters": [ ] }; default:throw Error.invalidOperation("No such mediainfo");}}function StartWithParent(parentId, appId) {new StartPlayer_0(parentId);}function StartPlayer_0(parentId) {this._hostname = EePlayer.Player._getUniqueName("xamlHost");Silverlight.createObjectEx( { source: 'player.xaml', parentElement: $get(parentId ||"divPlayer_0"), id:this._hostname, properties:{ width:'100%', height:'100%', version:'1.0', background:document.body.style.backgroundColor, isWindowless:'false' }, events:{ onLoad:Function.createDelegate(this, this._handleLoad) } } );this._currentMediainfo = 0; }StartPlayer_0.prototype= {_handleLoad: function(plugIn) {this._player = $create( ExtendedPlayer.Player, { // propertiesautoPlay : true, volume : 1.0,muted : false}, { // event handlersmediaEnded: Function.createDelegate(this, this._onMediaEnded),mediaFailed: Function.createDelegate(this, this._onMediaFailed)},null, $get(this._hostname) ); //wire up the rollover and click events for each of our play buttons for (var i = 0; i < cVideos; i++){var element = plugIn.Content.findName('play' + i);element.addEventListener("MouseEnter", Function.createDelegate(this,this._rollOver));element.addEventListener("MouseLeave", Function.createDelegate(this,this._rollOut));element.addEventListener("MouseLeftButtonUp", Function.createDelegate(this,this._playX));}plugIn.Content.findName('LeftArrow').addEventListener("MouseEnter", Function.createDelegate(this,this._rollOver));plugIn.Content.findName('LeftArrow').addEventListener("MouseLeave", Function.createDelegate(this,this._rollOut));plugIn.Content.findName('LeftArrow').addEventListener("MouseLeftButtonUp", Function.createDelegate(this,this._slideLeft));plugIn.Content.findName('RightArrow').addEventListener("MouseEnter", Function.createDelegate(this,this._rollOver));plugIn.Content.findName('RightArrow').addEventListener("MouseLeave", Function.createDelegate(this,this._rollOut));plugIn.Content.findName('RightArrow').addEventListener("MouseLeftButtonUp", Function.createDelegate(this,this._slideRight));this._playNextVideo(); },_rollOver: function(sender, eventArgs) {sender.opacity=1;},_rollOut: function(sender, eventArgs) {sender.opacity=0.74;},_playX: function(sender, eventArgs) {var X = Number(sender.Name.substring(4));this._currentMediainfo = X;this._player.set_mediainfo( get_mediainfo( X ));sender.opacity=1;},_slideLeft: function(sender, eventArgs) {switch(curPos){case 1:break;default:sender.findName("MoveRight0" + curPos).Begin();curPos--; }}, _slideRight: function(sender, eventArgs) {switch(curPos){ case maxPos:break; default:sender.findName("MoveLeft0" + curPos).Begin();curPos++; }},_onMediaEnded: function(sender, eventArgs) {//window.setTimeout( Function.createDelegate(this, this._playNextVideo), 1000);},_onMediaFailed: function(sender, eventArgs) {alert(String.format( Ee.UI.Xaml.Media.Res.mediaFailed, this._player.get_mediaUrl() ) );},_playNextVideo: function() {if (this._currentMediainfo<cVideos)this._player.set_mediainfo( get_mediainfo( this._currentMediainfo++ ) ); } }
First I added a reference to the plug-in the HandleLoad function, as described here. Then, because I had named all of my play buttons sequentially, it was easy to loop though them all adding some event handlers for rollover effects and the click event. Next I added similar event handlers to the navigation arrows. The rollover effect, as hinted at earlier was simply to set the opacity to 100% on mouseover and back to 74% on mouse out.
The click event for the play buttons simply play the selected movie, based on the number parsed from the name of the sender ("play0", "play1", etc.). The navigation arrows call the _slideLeft and _slideRight functions which simply play the animations to move the buttons left and right. if you have more than 2 pages of play buttons, then it gets slightly more complicated, obviously you have to create more animations, and they have to be carefully numbered so that you play the appropriate animation based on which 'page' of buttons you are currently on. Go to TheJamesBondMovies.com and take a look at the StartPlayer.js on that site for a better understanding of how to make this technique work with multiple pages.
Well, that was my solution, I'm sure there are other ways to do this, but I don't think this way is overly complicated and I hope someone finds it helpful.
Download the Project files: PlaylistSample.zip (364.40 kb)
Download the Silverlight 2 version: ScrollingPlaylist2.zip (1.22 mb)
I finished building my first 100% pure Silverlight 1.0 application, the result of which can be viewed at http://www.thejamesbondmovies.com, and
I wanted to share a few of the techniques I learned. Anyone who has played with Microsoft Expression Encoder will probably recognize the player as coming from one of the built in templates. Expanding the
XAML to include my own elements was not too difficult, the Blend 2 September Preview made that quite easy. When I have more time I will describe in detail how I made the scrollable playlist as I could find no tutorials anywhere on how to do that, but for right now I just want to address the basics of Scripting the output. I am by no means a JavaScript Guru, which is perhaps why I struggled a bit to understand exactly how to interact with my new elements, and exactly where to put my code. When you build a new Silverlight application in Blend 2 or Visual Studio the JavaScript that is provided to you as a starting point
appears to be quite different to that outputted by the encoder. Visual Studio gives you the following in a file called (by default) Scene.xaml.js:
if (!window.SilverlightJSApplication1)
window.SilverlightJSApplication1 = {};
SilverlightJSApplication1.Scene = function()
SilverlightJSApplication1.Scene.prototype =
handleLoad: function(plugIn, userContext, rootElement)
this.plugIn = plugIn;
// Sample button event hookup: Find the button and then attach event handlers
this.button = rootElement.children.getItem(0);
this.button.addEventListener("MouseEnter", Silverlight.createDelegate(this, this.handleMouseEnter));
this.button.addEventListener("MouseLeftButtonDown", Silverlight.createDelegate(this, this.handleMouseDown));
this.button.addEventListener("MouseLeftButtonUp", Silverlight.createDelegate(this, this.handleMouseUp));
this.button.addEventListener("MouseLeave", Silverlight.createDelegate(this, this.handleMouseLeave));
// Sample event handlers
handleMouseEnter: function(sender, eventArgs)
// The following code shows how to find an element by name and call a method on it.
var mouseEnterAnimation = sender.findName("mouseEnter");
handleMouseDown: function(sender, eventArgs)
var mouseDownAnimation = sender.findName("mouseDown");
handleMouseUp: function(sender, eventArgs)
var mouseUpAnimation = sender.findName("mouseUp");
// Put clicked logic here
handleMouseLeave: function(sender, eventArgs)
var mouseLeaveAnimation = sender.findName("mouseLeave");
Blend 2 gives you an almost identical file called Page.xaml.js:
if (!window.MyProjName)
window.MyProjName = {};
MyProjName.Page = function()
MyProjName.Page.prototype =
handleLoad: function(control, userContext, rootElement)
this.control = control;
// Sample event hookup:
rootElement.addEventListener("MouseLeftButtonDown", Silverlight.createDelegate(this, this.handleMouseDown));
// Sample event handler
handleMouseDown: function(sender, eventArgs)
// The following line of code shows how to find an element by name and call a method on it.
// this.control.content.findName("Timeline1").Begin();
Both of these files make it very easy to pick up your own named elements, and add event handlers to them because the handleLoad function passes the
plugIn (visual Studio) or control (Blend 2) argument that can be used to easily find a reference to your own XAML element:
control.content.findName("MyXamlElement"); //or plugIn.content.findName("MyXamlElement");
But having played with that model a few times and become comfortable with it, you then navigate to your Expression encoder's output location and find as many as
six JavaScript files. Obviously, Silverlight.js and MicrosoftAjax.js aren't what you're looking for, PlayerStrings.js is pretty empty, and BasePlayer.js clearly wasn't designed for easy editing as it has been compressed. So that just leaves player.js and StartPlayer.js. I'll come back to player.js in a moment,
for it is StartPlayer.js that is the Expression Encoder's equivalent to Scene.xaml.js.
function get_mediainfo(mediainfoIndex) {
switch (mediainfoIndex) {
case 0:
return { "mediaUrl": "MyVideo.wmv",
"placeholderImage": "",
"chapters": [
] };
throw Error.invalidOperation("No such mediainfo");
function StartWithParent(parentId, appId) {
new StartPlayer_0(parentId);
function StartPlayer_0(parentId) {
this._hostname = EePlayer.Player._getUniqueName("xamlHost");
Silverlight.createObjectEx( { source: 'player.xaml',
parentElement: $get(parentId ||"divPlayer_0"),
properties:{ width:'100%', height:'100%', version:'1.0', background:document.body.style.backgroundColor, isWindowless:'false' },
events:{ onLoad:Function.createDelegate(this, this._handleLoad) } } );
this._currentMediainfo = 0;
StartPlayer_0.prototype= {
_handleLoad: function() {
this._player = $create( ExtendedPlayer.Player,
{ // properties
autoPlay : true,
volume : 1.0,
muted : false
{ // event handlers
mediaEnded: Function.createDelegate(this, this._onMediaEnded),
mediaFailed: Function.createDelegate(this, this._onMediaFailed)
null, $get(this._hostname) );
_onMediaEnded: function(sender, eventArgs) {
window.setTimeout( Function.createDelegate(this, this._playNextVideo), 1000);
_onMediaFailed: function(sender, eventArgs) {
alert(String.format( Ee.UI.Xaml.Media.Res.mediaFailed, this._player.get_mediaUrl() ) );
_playNextVideo: function() {
var cVideos = 1;
if (this._currentMediainfo<cVideos)
this._player.set_mediainfo( get_mediainfo( this._currentMediainfo++ ) );
The first thing I noticed was that unlike the Visual Studio output, the _handleLoad function from Expression
Encoder does not pass in a control or PlugIn reference, so how do you get one? Well the way I did it (and I could find no documentation anywhere
on how to do this) was simply to add my own (new code is bold):
StartPlayer_0.prototype= {
_handleLoad: function(control) {
this._player = $create( ExtendedPlayer.Player,
{ // properties
autoPlay : true,
volume : 1.0,
muted : false
{ // event handlers
mediaEnded: Function.createDelegate(this, this._onMediaEnded),
mediaFailed: Function.createDelegate(this, this._onMediaFailed)
null, $get(this._hostname) );
That's all there is to it. Now go ahead and add your events as before. But wait, so what is player.js for then? Glad you asked. Player.js allows you to override the code in the BasePlayer.js file that
so clearly was not meant for editing. For example, suppose you had created an animation in your
XAML that made the video screen appear, perhaps from behind theatre style curtains that parted, or from behind some other element. You could override the
play() function in BasePlayer.js to play your animation before the video:
ExtendedPlayer.Player = function(domElement) {
ExtendedPlayer.Player.initializeBase(this, [domElement]);
ExtendedPlayer.Player.prototype = {
play: function() {
ExtendedPlayer.Player.callBaseMethod(this, 'play');
stop: function() {
ExtendedPlayer.Player.callBaseMethod(this, 'stop');
pause: function() {
alert('You clicked Pause');
ExtendedPlayer.Player.callBaseMethod(this, 'pause');
ExtendedPlayer.Player.registerClass('ExtendedPlayer.Player', EePlayer.Player);
I was surprised to see that the XAML media element did not have a loop property built into it. Surely having a clip loop is basic functionality? In any case I came up with a JavaScript solution that seemed much simpler to implement than the pure XAML solution offered on the MSDN website.
handleLoad: function(control, userContext, rootElement) { this.control = control; // Get a reference to your media element (mine is called "MainMovie") this.movie = control.content.findName("MainMovie"); // Add an Event Listener for the "MediaEnded" Event this.movie.addEventListener("MediaEnded", Silverlight.createDelegate(this,this.movieMediaEnded)); }, //When the end of the movie is reached, return the movie to the start and play it again movieMediaEnded: function(sender, eventArgs) { sender.Position = "00:00:00"; sender.play(); }
See my solution in action at The Daily Prophet Online.
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" > <StackPanel> <!-- The MediaElement control plays the sound. --> <MediaElement Name="myMediaElement" > <MediaElement.Triggers> <EventTrigger RoutedEvent="MediaElement.Loaded"> <EventTrigger.Actions> <BeginStoryboard> <Storyboard> <!-- The MediaTimeline has a RepeatBehavior="Forever" which makes the media play over and over indefinitely.--> <MediaTimeline Source="media\tada.wav" Storyboard.TargetName="myMediaElement" RepeatBehavior="Forever" /> </Storyboard> </BeginStoryboard> </EventTrigger.Actions> </EventTrigger> </MediaElement.Triggers> </MediaElement> </StackPanel> </Page>
When I first learned about Silverlight I thought it would be compiled
into a package rather like Flash does with an SWF file. While it is not
impossible to decompile a Flash file and many tools exist to assist
you, it does help to ensure that only the most determined individuals
can find out how you made that effect and use it on their own site.
With Silverlight, all you need is something like Firebug and
you can easily locate and download the xaml files, and of course a
simple View Source reveals where all the JavaScript is. What this means
is that if you visit the Silverlight Showcase,
find an example that has a player skin you really like, but you are not
a designer and couldn't recreate it yourself, or one that does
something that you cannot find "how to" examples of anywhere, you can
peek under the hood and find out on your own.
All you need to do is this:
Example, the Fox movies demo has a source of "XAML/player.xaml" so
typing http://silverlight.net/fox/XAML/player.xaml into your browser
will bring up the xaml file, that you can download and open in the
editor of your choice. That xaml contains links to the external
graphics and you can use the same technique to grab them from the site
e.g. http://silverlight.net/fox/images/logobg.png.
Download the Javascript files listed in the <HEAD> section,
arrange it all into the same folder structure as it was on the server.
Finally create a new silverlight project in Blend, replace the
page.xaml with the contents of player.xaml and you have an excellent
starting point for your own site.
Silverlight 1.1 sites are a little more complex. Luckily, someone has written an add-in for Lutz Roeder's Reflector that should make it easier.
Obviously you should respect their copyrights and not simply reuse
their code and graphics, but my point is that here in the early days of
Silverlight, while most of us are floundering around in the dark - very
few Silverlight books
have been published at the time of writing - the showcase offers us not
only inspiration on what can be produced with Silverlight, but gives us
everyting we need to see how it was done, so that we as developers can
take it to the next level in our own Silverlight applications.
the welcome screen or on the file menu, click New or Open project. The
appears in an alert box as "Requested registry access is not allowed."
While this bug has been reported to Microsoft and they claim to have
fixed it for the next release, that doesn't help you if you are getting
this error right now. I came up with the following work around on my
Using Process Monitor I was able to find the problem registry key:
access was denied. When I went to check the permissions I was informed
that I could not view the current permissions, but I could change them,
so I made myself the owner and added read permissions to the Everyone
user for
I changed permissions on each key, regedit told me it failed, but if I
closed the permissions dialog and reopened it, I could see the new
permissions in place and Microsoft Expression Blend was able to open my solutions
without error.
Visit my other sites:
© Copyright 2007-2019 Williablog.net. All rights reserved. | Powered by BlogEngine.NET 220.127.116.11


text:
Best advice I could give Sparano is get lost on the way to MetLife tonight. Let someone qualified to call an NFL game do it.
Going to ignore the question of benching Sanchez, or who should be the starter, yada, yada, yada. Save that for some other thread.
As the title says, IF Tebow gets substantive playing time, put him the shotgun with Spread formations the entire time. Split 4 WRs, or 2 WRs and 2 Split Ends out wide, or even empty out the backfield and go 5 wide. Open things up and let the kid air the ball out.
Additionally, go uptempo and no huddle. Give the defense as little time to react/adjust as possible.
Best advice I could give Sparano is get lost on the way to MetLife tonight. Let someone qualified to call an NFL game do it.
If Tebow gets any playing time tonight, that likely means Sanchez has been knocked out of the game. So my advice to Tim would be, run for your life and try not to embarrass yourself too much
Throw it to Konrad Reuland.
Unfortunately he will continue to play in jumbo formation, with a rb read option that fools no one and does nothing but allow the safeties an extra 1.5 sec to zoom towards the LOS. Because of course we know sunglasses Tony won't let tebow keep defenses honest by, you know, actually throwing a pass.
I don't disagree with them. Granted, when they do get open, Mark misses them, but still, they aren't getting open that often, and they aren't running the correct routes, or clean routes.
But let's go back to the only times we've seen Tebow passing this year. If Sanchez didn't have any weapons to throw to, and the receivers he had were running the wrong routes, what does that say about who Tebow was throwing to ?
By definition, his receiver corps would have been worse than Sanchez's, yes ? Tebow was throwing to guys who aren't even on the team now, aside from those who might have made the practice squad.
Wouldn't that be a fair argument ?
So perhaps people should reserve judgment until he actually gets on the field with the best receivers that we have ?
Tebow will play the majority of the 2nd qtr
What receivers are we going 4 wide with?
Kerley and McKnight are good fits in the spread option. Everyone else? Not so much. And the coaching staff doesn't seem to want to McKnight on the field much, while Kerley has received far too little playing time despite his relatively good performance (though at least they'll be forced to play him more now).
"Give Tebow a chance before you poo-poo him, dumbass!"
Look, it's not to say that I won't give him a chance 'cause he'll get a chance whether I like it or not....but I'm just not very optimistic that his "chance" won't end up with the same result : GARBAGE.
But when your QB is throwing DUCKS, GEESE, and sometimes a GRENADE out there, your chances of success aren't exactly promising.
I'd put Schillens on one side and perhaps Jason Hill on the other. Kerley split out wide slot. McKnight wide slot on other side with Powell in the backfield.
The point is to try and spread the defense out and open up the box. Make the defense choose between defending the pass or the run game. Put speed/deep threats on the outside and try to force the Texans to drop safeties back.
Thing is, Tebow wasn't throwing ducks, geese or grenades in preseason. Did you watch him much last year ?Oh no question about that.
But when your QB is throwing DUCKS, GEESE, and sometimes a GRENADE out there, your chances of success aren't exactly promising.
Looks like the teboners' "TEBOW MUST START" crusade has begun. This is the beginning of the end... god help us

subset: commoncrawl


text:
Product Review: RocSports Lite Business Wingtip
We recently tested a pair of RocSports Lite Business Wingtips in light tan, and I have to say that from the moment I opened the box, these shoes impressed. These Rockport wingtips are ultra lightweight with high tech adiPRENE, which Provides shock absorbing heel cushioning that can match the comfort of topnotch gym shoes.
Continuing with providing the most comfortable shoe possible, RocSports Lite Business Wingtips sport a padded collar and tongue to help prevent blisters and lace bruising, EVA cushioning that conforms to the shape of the foot for a personalized fit and a PU outsole that provides durable shock absorption to help reduce foot fatigue. Believe me when I tell you that the good looks alone of these wingtips will allure you, but the technology and comfort are an added bonus! All of that and with the styling you see in shoes that cost much more than the $125 you'll pay at Rockport.
Related Posts
Posted in: Gear, Stuff to Buy, Style
Tags: dress shoes, Rockport, RocSports Lite Business Wingtips review


text:
Sec. 1895. [42 U.S.C. 1395fff] (a) In General.—Notwithstanding section 1861(v), the Secretary shall provide, for portions of cost reporting periods occurring on or after October 1, 2000, for payments for home health services in accordance with a prospective payment system established by the Secretary under this section.
(b) System of Prospective Payment for Home Health Services.—
(1) In general.—The Secretary shall establish under this subsection a prospective payment system for payment for all costs of home health services. Under the system under this subsection all services covered and paid on a reasonable cost basis under the medicare home health benefit as of the date of the enactment of this section, including medical supplies, shall be paid for on the basis of a prospective payment amount determined under this subsection and applicable to the services involved. In implementing the system, the Secretary may provide for a transition (of not longer than 4 years) during which a portion of such payment is based on agency-specific costs, but only if such transition does not result in aggregate payments under this title that exceed the aggregate payments that would be made if such a transition did not occur.
(2) Unit of payment.—In defining a prospective payment amount under the system under this subsection, the Secretary shall consider an appropriate unit of service and the number, type, and duration of visits provided within that unit, potential changes in the mix of services provided within that unit and their cost, and a general system design that provides for continued access to quality services.
(3) Payment basis.—
(A) Initial basis.—
(i) In general.—Under such system the Secretary shall provide for computation of a standard prospective payment amount (or amounts) as follows:
(I) Such amount (or amounts) shall initially be based on the most current audited cost report data available to the Secretary and shall be computed in a manner so that the total amounts payable under the system for the 12-period beginning on the date the Secretary implements the system shall be equal to the total amount that would have been made if the system had not been in effect and if section 1861(v)(1)(L)(ix) had not been enacted.
(II) For the 12-month period beginning after the period described in subclause (I), such amount (or amounts) shall be equal to the amount (or amounts) determined under subclause (I), updated under subparagraph (B).
(III) Subject to clause (iii), for periods beginning after the period described in subclause (II), such amount (or amounts) shall be equal to the amount (or amounts) that would have been determined under subclause (I) that would have been made for fiscal year 2001 if the system had not been in effect and if section 1861(v)(1)(L)(ix) had not been in effect but if the reduction in limits described in clause (ii) had been in effect, updated under subparagraph (B).
Each such amount shall be standardized in a manner that eliminates the effect of variations in relative case mix and area wage adjustments among different home health agencies in a budget neutral manner consistent with the case mix and wage level adjustments provided under paragraph (4)(A). Under the system, the Secretary may recognize regional differences or differences based upon whether or not the services or agency are in an urbanized area.
(ii) Reduction.—The reduction described in this clause is a reduction by 15 percent in the cost limits and per beneficiary limits described in section 1861(v)(1)(L), as those limits are in effect on September 30, 2000.
(iii)[688]Adjustment for 2014 and subsequent years.—
(I) In general.—Subject to subclause (II), for 2014 and subsequent years, the amount (or amounts) that would otherwise be applicable under clause (i)(III) shall be adjusted by a percentage determined appropriate by the Secretary to reflect such factors as changes in the number of visits in an episode, the mix of services in an episode, the level of intensity of services in an episode, the average cost of providing care per episode, and other factors that the Secretary considers to be relevant. In conducting the analysis under the preceding sentence, the Secretary may consider differences between hospital-based and freestanding agencies, between for-profit and nonprofit agencies, and between the resource costs of urban and rural agencies. Such adjustment shall be made before the update under subparagraph (B) is applied for the year.
(II) Transition.—The Secretary shall provide for a 4-year phase-in (in equal increments) of the adjustment under subclause (I), with such adjustment being fully implemented for 2017. During each year of such phase-in, the amount of any adjustment under subclause (I) for the year may not exceed 3.5 percent of the amount (or amounts) applicable under clause (i)(III) as of the date of enactment of the Patient Protection and Affordable Care Act.
(B) Annual update.—
(i) In general.—The standard prospective payment amount (or amounts) shall be adjusted for fiscal year 2002 and for fiscal year 2003 and for each subsequent year (beginning with 2004) in a prospective manner specified by the Secretary by the home health applicable increase percentage (as defined in clause (ii)) applicable to the fiscal year or year involved.
(ii) Home health applicable increase percentage.—For purposes of this subparagraph, the term "home health applicable increase percentage" means, with respect to—
(I) each of fiscal years 2002 and 2003, the home health market basket percentage increase (as defined in clause (iii)) minus 1.1 percentage points;
(II) for the last calendar quarter of 2003 and the first calendar quarter of 2004, the home health market basket percentage increase;
(III) the last 3 calendar quarters of 2004, and all of 2005 the home health market basket percentage increase minus 0.8 percentage points;
(IV) 2006, 0 percent; and
(V) any subsequent year, subject to clauses (v) and (vi), the home health market basket percentage increase.
(iii) Home health market basket percentage increase.—For purposes of this subsection, the term home health market basket percentage increase means, with respect to a fiscal year or year, a percentage (estimated by the Secretary before the beginning of the fiscal year or year) determined and applied with respect to the mix of goods and services included in home health services in the same manner as the market basket percentage increase under section 1886(b)(3)(B)(iii) is determined and applied to the mix of goods and services comprising inpatient hospital services for the fiscal year or year. Notwithstanding the previous sentence, the home health market basket percentage increase for 2018 shall be 1 percent.[689]
(iv) Adjustment for case mix changes.—Insofar as the Secretary determines that the adjustments under paragraph (4)(A)(i) for a previous fiscal year or year (or estimates that such adjustments for a future fiscal year or year) did (or are likely to) result in a change in aggregate payments under this subsection during the fiscal year or year that are a result of changes in the coding or classification of different units of services that do not reflect real changes in case mix, the Secretary may adjust the standard prospective payment amount (or amounts) under paragraph (3) for subsequent fiscal years or years so as to eliminate the effect of such coding or classification changes.
(v) Adjustment if quality data not submitted.—
(I) Adjustment.—For purposes of clause (ii)(V), for 2007 and each subsequent year, in the case of a home health agency that does not submit data to the Secretary in accordance with subclauses (II) and (IV) with respect to such a year, the home health market basket percentage increase applicable under such clause for such year shall be reduced by 2 percentage points. Such reduction shall apply only with respect to the year involved, and the Secretary shall not take into account such reduction in computing the prospective payment amount under this section for a subsequent year, and the Medicare Payment Advisory Commission shall carry out the requirements under section 5201(d) of the Deficit Reduction Act of 2005.
(II) Submission of quality data.—Subject to subclause (V), for 2007 and each subsequent year, each home health agency shall submit to the Secretary such data that the Secretary determines are appropriate for the measurement of health care quality. Such data shall be submitted in a form and manner, and at a time, specified by the Secretary for purposes of this clause.
(III) Public availability of data submitted.—The Secretary shall establish procedures for making data submitted under subclause (II) and subclause (IV)(aa) available to the public. Such procedures shall ensure that a home health agency has the opportunity to review the data that is to be made public with respect to the agency prior to such data being made public.
(IV) Submission of additional data. —
(aa) In general. — For the year beginning on the specified application date (as defined in subsection (a)(2)(E) of section 1899B), as applicable with respect to home health agencies and quality measures under subsection (c)(1) of such section and measures under subsection (d)(1) of such section, and each subsequent year, in addition to the data described in subclause (II), each home health agency shall submit to the Secretary data on such quality measures and any necessary data specified by the Secretary under such subsection (d)(1).
(bb) Standardized patient assessment data. — For 2019 and each subsequent year, in addition to such data described in item (aa), each home health agency shall submit to the Secretary standardized patient assessment data required under subsection (b)(1) of section 1899B.
(cc) Submission. — Data shall be submitted under items (aa) and (bb) in the form and manner, and at the time, specified by the Secretary for purposes of this clause.
(V) Non-duplication. — To the extent data submitted under subclause (IV) duplicates other data required to be submitted under subclause (II), the submission of such data under subclause (IV) shall be in lieu of the submission of such data under subclause (II). The previous sentence shall not apply insofar as the Secretary determines it is necessary to avoid a delay in the implementation of section 1899B, taking into account the different specified application dates under subsection (a)(2)(E) of such section.
(vi) Adjustments.—After determining the home health market basket percentage increase under clause (iii), and after application of clause (v), the Secretary shall reduce such percentage—
(I) for 2015 and each subsequent year (except 2018), by the productivity adjustment described in section 1886(b)(3)(B)(xi)(II); and for each of 2011 and 2012, by 1 percentage point.[690]
(II) for each of 2011 and 2012, by 1 percentage point.
The application of this clause may result in the home health market basket percentage increase under clause (iii) being less than 0.0 for a year, and may result in payment rates under the system under this subsection for a year being less than such payment rates for the preceding year.
(C) Adjustment for outliers.—The Secretary shall reduce the standard prospective payment amount (or amounts) under this paragraph applicable to home health services furnished during a period by such proportion as will result in an aggregate reduction in payments for the period equal to 5 percent of the total payments estimated to be made based on the prospective payment system under this subsection for the period.
(4) Payment computation.—
(A) In general.—The payment amount for a unit of home health services shall be the applicable standard prospective payment amount adjusted as follows:
(i) Case mix adjustment.—The amount shall be adjusted by an appropriate case mix adjustment factor (established under subparagraph (B)).
(ii) Area wage adjustment.—The portion of such amount that the Secretary estimates to be attributable to wages and wage-related costs shall be adjusted for geographic differences in such costs by an area wage adjustment factor (established under subparagraph (C)) for the area in which the services are furnished or such other area as the Secretary may specify.
(B) Establishment of case mix adjustment factors.—The Secretary shall establish appropriate case mix adjustment factors for home health services in a manner that explains a significant amount of the variation in cost among different units of services.
(C) Establishment of area wage adjustment factors.—The Secretary shall establish area wage adjustment factors that reflect the relative level of wages and wage-related costs applicable to the furnishing of home health services in a geographic area compared to the national average applicable level. Such factors may be the factors used by the Secretary for purposes of section 1886(d)(3)(E).
(5) Outliers.—
(A) In general.—Subject to subparagraph (B), the Secretary may provide for an addition or adjustment to the payment amount otherwise made in the case of outliers because of unusual variations in the type or amount of medically necessary care. The total amount of the additional payments or payment adjustments made under this paragraph with respect to a fiscal year or year may not exceed 2.5 percent of the total payments projected or estimated to be made based on the prospective payment system under this subsection in that year.
(B) Program specific outlier cap.—The estimated total amount of additional payments or payment adjustments made under subparagraph (A) with respect to a home health agency for a year (beginning with 2011) may not exceed an amount equal to 10 percent of the estimated total amount of payments made under this section (without regard to this paragraph) with respect to the home health agency for the year.
(6) Proration of prospective payment amounts.—If a beneficiary elects to transfer to, or receive services from, another home health agency within the period covered by the prospective payment amount, the payment shall be prorated between the home health agencies involved.
(c) Requirements for Payment Information.—With respect to home health services furnished on or after October 1, 1998, no claim for such a service may be paid under this title unless—
(1) the claim has the unique identifier (provided under section 1842(r)) for the physician who prescribed the services or made the certification described in section 1814(a)(2) or 1835(a)(2)(A); and
(2) in the case of a service visit described in paragraph (1), (2), (3), or (4) of section 1861(m), the claim contains a code (or codes) specified by the Secretary that identifies the length of time of the service visit, as measured in 15 minute increments.
(d) Limitation On Review.—There shall be no administrative or judicial review under section 1869, 1878, or otherwise of—
(1) the establishment of a transition period under subsection (b)(1);
(2) the definition and application of payment units under subsection (b)(2);
(3) the computation of initial standard prospective payment amounts under subsection (b)(3)(A) (including the reduction described in clause (ii) of such subsection);
(4) the establishment of the adjustment for outliers under subsection (b)(3)(C);
(5) the establishment of case mix and area wage adjustments under subsection (b)(4); and
(6) the establishment of any adjustments for outliers under subsection (b)(5).
(e) Construction Related to Home Health Services.—
(1) Telecommunications.—Nothing in this section shall be construed as preventing a home health agency furnishing a home health unit of service for which payment is made under the prospective payment system established by this section for such units of service from furnishing services via a telecommunication system if such services—
(A) do not substitute for in-person home health services ordered as part of a plan of care certified by a physician pursuant to section 1814(a)(2)(C) or 1835(a)(2)(A); and
(B) are not considered a home health visit for purposes of eligibility or payment under this title.
(2) Physician certification.—Nothing in this section shall be construed as waiving the requirement for a physician certification under section 1814(a)(2)(C) or 1835(a)(2)(A) of such Act (42 U.S.C. 1395f(a)(2)(C), 1395n(a)(2)(A)) for the payment for home health services, whether or not furnished via a telecommunications system.
[688] See Vol. II, P.L. 111-148 §3131(b)(2), with respect to a MedPAC study and report with respect to payment adjustments for home health care.
[689] P.L. 114-10, §411(c)(1) inserted sentence beginning "Notwithstanding the previous". Effective April 16, 2015.
[690] P.L. 114-10, §411(c)(1) inserted "(except 2018)" after "subsequent year". Effective April 16, 2015.


text: Most of the 19 people on the Congress of the People list who have come out on Monday in support of the ANC are unemployable outside politics, Cope national spokesman Johann Abrie said."Most of the people on the list of 19 are unemployable outside of politics so they decided to knock on the door of another political party because they came to the end of their employment at Cope," he told Sapa."They were very, very happy to continue to collect huge salaries based on their association to Cope and waited until the last week to change --that speaks volumes about the character of those people."Abrie was responding to a media release on Monday from 19 Cope members throwing their weight behind the African National Congress. He speaks on behalf of the faction aligned with Mosiuoa Lekota after Lekota and co-founder of Cope Mbhazima Shilowa fell out over a leadership dispute. In a statement the members said the Cope caucus, who met on Monday in Parliament, apologised to the 1.3 million people who voted for the party in the 2009 national elections. "Due to a series of events and trends over the past five years, we have to accept that COPE as a credible alternative has run its course," the statement read."Eighty percent of the Cope Parliamentary Caucus has not submitted their nominations for Cope's 2014 election list processes. We could not align ourselves with the poor political leadership and cannot continue to mislead South Africans about a prospect for anything better."The members would remain Cope Members of Parliament until midnight May 6, when their term in office end.They said they believe the ANC was the "most effective vehicle" to bring about change and transformation in the lives of the poor."In honour of the late Tata Madiba, the majority of the Cope Caucus will vote and campaign for a strong mandate for the ANC to ensure that the agenda for a better life for all South Africans will gain new momentum."We call on those who support us and all South African voters to vote ANC to give new impetus to the transformation agenda and to build a united, prosperous nation," the statement read.The list of names on the statement are Suzan Berend, Onel de Beer, Beryl Ferguson, Nonkhululeko Gcume, Juli Kilian, Nick Koornhof, Mampe Kotsi, Commissioner Makhubela, Lorraine Mashiane, Pakiso Mbhele, Paul Mnguni, Zola Mlenzana, Connie Mosimane, Hilda Ndude, Mlindi Nhanha, Phumelelo Ntshiqela, Sanna Plaatjies, Leonard Ramatlakane and Kennett Sinclair.However, Abrie said half of the people on the list have not renewed their membership with the party for over three years therefore they could not be chosen as Cope candidates for Parliament.He claimed the other half were called to the ANC headquarters Luthuli House and were made "generous financial offers"."They milk the cow for as long as they can and then defect just before the elections. It is tacky and unprincipled."Abrie claimed this was the sixth or seventh time in two weeks that this same group of people resigned.Earlier in April Shilowa said he would support the United Democratic Movement in the run up to elections.They party was formed when senior ANC members left the party when former president Thabo Mbeki was forced to step down in a power struggle with Jacob Zuma over head of the governing party.In the first election it contested in 2009, it had enough support for 30 seats in Parliament.Its presidential candidate Mvume Dandala resigned afterwards and not long after, the party split into factions over who its true president was.Lekota was a minister of defence and a chairman of the ANC and Shilowa had been a premier of Gauteng before the breakaway.-SAPA


text:
Starring Renée Zellweger, Jodelle Ferland and Ian McShane
Directed by Christian Alvart
Written by Ray Wright
Paramount Home Entertainment
Case 39 was shot in late 2006, first scheduled for release to theatres in August 2008, and finally released on DVD and Blu-ray this week. It must be monumentally bad, yes? Fortunately no, although we can see why Paramount, the studio that produced it, might not be sure how to market it.


text:
Personally I used to do coffee every morning, but I switched to tea so that makes up my caffeine intake, usually, unless of course I decide to indulge in a pepsi or something.
As for alcohol, I have drank plenty of times, however I only drink in moderation (used to be once a month or less, now I haven't been drunk in nearly half a year). Overall it can be a fun but dangerous drug to use, definitely not one to abuse.
I have smoked tobacco products, from cigarettes to cigars to cigarillos to tobacco in a hookah or pipe, but overall its not for me. I don't like the taste and feel as though it serves no purpose aside from cutting my life and wallet shorter.
I began smoking marijuana at around the age of 15, used it occasionally. Throughout junior year and senior year of high school I was a major stoner, smoking every day and multiple times a day. After high school I cut down to using it once a day, usually at night time before I am going to sleep. My routine is to smoke, drink chamomile tea, and listen to some relaxing tunes and allowing that to flow into meditation. However, now that I am older, I find marijuana to be less fun than it used to be, induces a nearly uncontrollable urge to eat junk food, increases anxiety, and is getting in the way of my responsibilities so I am trying to quit. The difficult aspect behind quitting is that I get weed for free and my best friends all smoke. I realize, however, that is something that must be done.
I have done magic mushrooms three times, each time being one of the greatest, most profound and reality shattering events in my life. I had what a John Hopkins study has confirmed as a mystical experience (http://www.hopkinsmedicine.org/press_re ... 11_06.html) and overall it has been a choice that has left me with mixed results. On the one hand, I am glad to have received such powerful events, and to have learned what I have, but on the other hand it makes me feel a bit alienated and antagonistic to bourgeois civilization, the daily grind so to speak. It has made me feel at a deeper spiritual side of myself on the one hand, and on the other it has made me feel a sort of metaphysical anguish to live in such a deeply materialistic, consumer driven society.
I have also done Salvia, which I would recommend not using. It was a deep experience to have once, but I would not want too have it again. Imagine an LSD trip compacted into 5 minutes except with about 100x the strength. Its alright, but way to scary to try again.
Aside from this, I haven't done too many drugs. I tried opiates when I was in high school, but after a bad experience and the general negative side effects and possibility of addiction, I never did them again. I have also tried the Polynesian drink Kava Kava, if you consider that a drug.


text:
You see the following error code and message when you try to make a purchase on your Xbox 360 console:
Can't retrieve information from Xbox Live.
Status code: 80190821
This may mean one of the following:
To resolve this problem, try the following solutions.
Solution 1: Check the Xbox Live service status
If you see any alerts here, wait until the service is up and running and try again:
Solution 2: Test the Xbox Live connection
To test your connection to Xbox Live, follow these steps:
Solution 3: Check your billing address
Make sure that the billing address for your Microsoft account matches the billing address you use with your credit card company. Also, make sure that your card's expiration date hasn't passed. Here's how:
Note If there's an error, select Edit profile, and then follow the instructions to update the information.
Solution 4: Contact your bank or financial institution
The purchase might have failed for any of these reasons:
Contact your credit card company or bank and make sure that the card you're using was activated, that it has available funds, and that the transaction is not being blocked for any reason.
Solution 5: Try your purchase again later
The purchase might be blocked for any of these reasons:
Wait and try the transaction again in 24 to 48 hours. If a number of purchase failures occur, this can prevent transactions from being processed until no purchase attempts have been made for a while (usually 24 to 48 hours).
Solution 6: Use a prepaid card
As an alternative to using a credit or bank card, you can purchase a prepaid Microsoft gift card from a retailer and use that to make purchases. Note that not all purchases support Microsoft gift cards or prepaid options. Before purchasing a Microsoft gift card, make sure that purchase option is available for the item you want to purchase.
Solution 7: Confirm that you are using an approved payment method
You can use Visa, MasterCard, or American Express cards as long as they allow international purchases. Even if your card displays a Visa or MasterCard logo, it is possible that it's not approved by your bank or issuing financial institution for international purchases.
Note Currently, prepaid cards, debit cards, and gift cards (even those with a Visa or MasterCard logo) do not qualify as international cards.
If your credit card is an approved form of payment, try the next solution.
Solution 8: Check the card number, expiration date, card security code, and name on the card
Retype the credit card number without any spaces, commas, or other non-numeric characters. Verify that the expiration date, card security code, and name that you entered are correct and match the information on the card.
Thanks for your feedback!
Provide feedback for this topic
Would you like to contact Support regarding the "Error 80190821 occurs when you try to make a purchase on Xbox 360" issue you were reading about or a different issue?


text:
Placing stride sensor onto training shoe
Polar s3+ stride sensor is compatible with Polar RCX5, RS800CX and RS800 training computers. The black sensor holder can also be used with the Polar s3 stride sensor.
1. Undo your shoelaces and place the holder on top of the tongue of the shoe. Make sure the holder flap is facing upwards.
2. Thread the laces in through the holes on the sides of the holder and out through the hole on the bottom of the holder (Picture 1). Thread the laces through the small flap on the tongue of the shoe to ensure the holder does not move while running (Picture 2).
Picture 1.
Picture 2.
3. Tighten the laces.
4. Fit the front part of the sensor into the holder and press from the rear (Picture 3). Fasten the flap.
Picture 3.
5. Make sure the sensor does not move and is aligned with your foot. The more secure the sensor, the more accurately speed and distance is measured.
We recommend that you calibrate the sensor before using it for the first time, or when there are significant changes in your running style, or when the position of the sensor on the shoe changes, e.g. you have new shoes or you switch the sensor from your right shoe to your left one.


text:
So... figured I can't be the only one who sometimes can't figure out how to manage the technical part of this forum, so I thought I'd make a thread for testing these things out.
Right, how do you make hyperlink text? Ya know, so that instead of having the link simply being like this
posting.php?mode=post&f=11 (link to this post...) it becomes a word?
[url posting.php?mode=post&f=11]like this...[/url] (except not, coz I can't figure it out.


text:
Gray Whales Cruising by Long Beach, WA
January 23, 2014 by: Susan Goldsmith
Seeing and hearing whales always causes an inexplicable joy in me. Humans are fascinated with their fellow mammals. Whales breath air, have hair, are warmblooded and give birth to live offspring that suckle milk from their mothers. Gray whales range in length from 40-50 feet and can have flukes (tales) that can measure ten feet across. Females are usually larger than males . The Gray whales weigh 50,000 to 80,000 pounds and can live up to 50 years. They can start growing barnacles even as youngsters. We've seen Grays rubbing their barnacles on the North Jetty at Cape Disappointment State Park in Ilwaco, Washington, 10 minutes from our B&B, Boreas Inn.
Two times each year, the Gray whales cruise by the Long Beach, Washington Peninsula. After spending summers feeding and fattening up in the Arctic waters, the Gray whales head south cruising off the Pacific Coast to the bays in Southern California and Baja, Mexico. You can witness this migration starting in mid-December and it peaks in early January and can usually be seen into early February.
When Gray whales are cruising by the Long Beach Peninsula, whether heading north or south, the whale's goal is to get where they are going and generally they do not hang around and feed–except for maybe some shrimp-like creatures and a fish or two. In fact, they are known to go without food for 3 to 5 months, which is why they must fatten up when in the rich Arctic waters before heading south to play in Baja. While in Baja, the whales mate and nurse their young. The gestation period for Grays is 11-13 months. When nursing, Gray whale moms can produce up to 50 gallons of milk daily containing over 50% fat. Calves can gain 60-70 pounds a day and build up their blubber quite quickly.
The Grays begin their return journey back north to the Arctic from Baja starting in mid-March. The immature whales, adult males and females without offspring head north first cruising by our coast in March and April. Then later, females with calves head north at a slower rate, passing the Long Beach, Washington Peninsula in May. So there is the possibility of seeing whales on and off for about six months of the year. We have seen gray whales in the surf-line from the lookout on Loop 100 in September leading us to believe that some Gray whales must be hanging out on the Washington coast much of the year. So maybe there are now "home" pods of Gray whales.
The best spots here to watch for whales is from the North Head Lighthouse and the Lewis and Clark Interpretive Center at Cape Disappointment State Park, a 10 minute drive fromBoreas Inn. The whales can spout up to 15 feet in the air through their two blowholes, so that is often what we see when we watch for whales at the Park. When we have gray skies, the whales water and skies are fairly close in color so the spouting is sometimes all you can see. Bring your binoculars or borrow ours–there's no guarantee you will see Gray whales, but it is fun to look. With the fabulous weather we've been having all fall and winter, this is a great activity on the Long Beach Peninsula! It's much easier to see gray whales when there is blue sky!


text: Brand MarketingHow KitchenAid Gave Us the World's Coolest MixerThe legacy of one of the most recognizable appliancesBy Robert Klara|May 23, 2013 ShareBy Robert Klara|May 23, 2013 Share With The Great Gatsby in theaters and everyone suddenly falling in love with the glamor of the 1920s, now's a fitting time to take a look at one of the Machine Age's legendary machines. What's more, unlike Model A's and Victrolas, this one never went out of style. It's the KitchenAid stand mixer, introduced in the '20s, made famous in the '40s and still the king of the countertop. At first glance, these ads from 1946 and today are emblematic of the power of heritage branding. The mixer that was a sleek, solid appliance in kitchens of yesteryear has, with very few changes, magically become the consummate retro status symbol. How else to explain the shift from busy-baking housewife to the sexy close-up shot of that buxom, seven-quart bowl? But according to Janie Curtis, lead brand architect for the Telocity Group, the resurgence of retro styling is just one part of the mix here. "On the surface these are very different ads," she said. "But if you look closer, you'll see that they're both saying the same thing. What's being reflected is stylistically different but strategically similar." Put another way, while this mighty little mixer represents all the good things that progressive modernity implies, it's also an uncomfortable reminder of how far we haven't come. In 1919, a housewife invited to test a new countertop mixer called the H-5 exclaimed, "I don't care what you call it, but I know it's the best kitchen aid I've ever had!" That's how the machine got its name. It got its following when an all-female sales force—unheard of at the time—sold the 65-pound machine door to door. Pricey as it was, the KitchenAid was an enormous hit: 20,000 sold in three years. Its many innovations included a "planetary action" mixing bowl and a slew of attachments that cut baking time in half. One early promo even promised men that they could "keep your wife young" by buying her the labor-saving appliance. It's a theme that carries through the 1946 ad here: The wife with the KitchenAid enjoys "more power" to her. As Curtis observes, the promise of top performance has, like the mixer itself, remained largely unchanged. The 2013 ad speaks of power, too—the ability to make "more batches" with a "magnificent mixing muscle." And yet, even as a beautifully styled photograph of the machine has replaced the stereotypical happy housewife motif, Curtis finds a chilly undercurrent to consumers' love affair with chrome-slathered industrial appliances like the KitchenAid. "Everyone is falling in love with retro design, but my perspective is that the marketing is polarized," Curtis said. "While we love the sleek, clean, vintage lines, we're also at the human stage right now where we're all a bit insecure and are looking subconsciously back to remind ourselves of an old time when everyone was in love with grandma and cookies." Curtis adds that, while there may be no housewife in the 2013 ad, the copy is still addressing her—and whispering the same message: cook more, bake more, work more. "There isn't much difference between 'More Power to You' and more power to help you make more recipes," Curtis noted. "The message to women, sadly, is unchanged." Still, you have to admit, it's one beautiful looking mixer. Sharehttp://adweek.it/10KpEcU copy Adweek Adweek


text:
In only a few weeks, tax season will be upon us. Delta Farm Press recently asked several veteran Mid-South-based accountants what farmers should consider — or to make sure their tax document preparer considers — when calculating taxes. All pointed to Section 179 of the tax code.
"Section 179 is an expensing election," says a certified public accountant who practices near the Mississippi River. "A few years ago, it was put in place as an attempt to spur the economy. It started out at $25,000, increased to $125,000 and then jumped to $250,000. Then, for 2010 and 2011, it rose again — this time to $500,000."
(For the Internal Revenue Service's explanation of Section 179, scroll to bottom.)
Farmers should know that the $500,000 amount is set to expire in 2011.
"So, they should take advantage of this while they can," says the CPA. "When working with farmer clients, I use Section 179 all the time. That was true even when it capped at $25,000."
By now, most of his clients realize Section 179 is available. However, few "know that the amounts have increased so much. The $500,000 figure is a surprise to many.
"There's a set amount that can't be exceeded. I believe that's $2 million. But once that amount is reached, it's reduced dollar-for-dollar."
How might a producer take advantage of the section?
"Say I've got a $600,000 profit and I don't want to pay taxes on that whole amount. At the same time, I need a new cotton picker. Well, I can go buy that new picker and immediately wipe out that $500,000 expensing election."
If the picker is $750,000, "I'd still have $250,000 to depreciate the first year, take the depreciation on it and reduce the income total further."
Those using the section should know of a potential timing issue.
This would come into play "when a piece of equipment is financed over five, or seven, years. Well, you'll have a note payment in those years after the purchase, but you'll have no depreciation to pull your profits down. That can mean a cash-flow problem. That isn't a given, but that's something to watch closely since you've taken all your depreciation in year one."
There are assets that don't qualify.
"Vehicles are limited to $25,000 in Section 179. Grain bins do qualify for Section 179 and those have been going up like crazy around the Delta."
Explaining Section 179, the Internal Revenue Service says:
"A qualifying taxpayer can choose to treat the cost of certain property as an expense and deduct it in the year the property is placed in service instead of depreciating it over several years. This property is frequently referred to as Section 179 property.
"The Small Business Jobs Act of 2010 increases the IRC Section 179 limitations on expensing of depreciable business assets and expands the definition of qualified property to include certain real property for the 2010 and 2011 tax years.
"Under SBJA, qualifying businesses can now expense up to $500,000 of Section 179 property for tax years beginning in 2010 and 2011. Without SBJA, the expensing limit for Section 179 property would have been $250,000 for 2010 and $25,000 for 2011.
"The $500,000 amount provided under the new law is reduced, but not below zero, if the cost of all section 179 property placed in service by the taxpayer during the tax year exceeds $2,000,000.
"The definition of qualified Section 179 property will include qualified leasehold improvement property, qualified restaurant property, and qualified retail improvement property for tax years beginning in 2010 and 2011.
"SBJA also removes cellular telephones and similar telecommunications equipment from the definition of listed property for tax years beginning in 2010.
"Depreciation limits on business vehicles: The total depreciation deduction (including the section 179 expense deduction) you can take for a passenger automobile (that is not a truck or a van) you use in your business and first placed in service in 2010 is increased to $3,060. The maximum deduction you can take for a truck or van you use in your business and first placed in service in 2010 is increased to $3,160.
"Caution: These limits are reduced if the business use of the vehicle is less than 100 percent."
(For more information, visit : http://www.irs.gov/pub/irs-pdf/fw11.pdf and http://www.section179.org/.)


text:
Skip to Main Content
Doing Business
Help Me Find
County Home
County Administration
Equal Employment Opportunity Office
Equal Employment Opportunity Programs
Contracting Programs
Contracting Programs
Contra Costa County values the contributions of small business in the County and has developed programs to assist in the solicitation and awarding of contracts. The Board of Supervisors has adopted these programs to enable small and local businesses to compete for a share of the County's purchasing transactions.
Program Areas
The Board of Supervisors has set a goal of awarding at least 50% of eligible product and service dollars to small businesses. The Small Business Enterprise (SBE) Program applies to: (1) county-funded construction contracts of
or less; (2) purchasing transactions of $100,000 or less; and (3) professional/personal service contracts of $100,000 or less. The objective is to have at least 50% or more of the total eligible dollar base amounts be awarded to SBEs. For Contra Costa County's Small Business Enterprise Program, a SBE is an eligible Small Business Enterprise, as defined by the California Government Code, Section 14837, Chapter 3.5 must be:
Independently owned and operated business, which is not dominant in its field of operation the principal office of which is located in California;
the officers of which are domiciled in California, and which, together with affiliates, has 100 or fewer employees; and
average annual gross receipts of fourteen million dollars ($14,000,000) or less over the previous three tax years, or
a manufacturer with 100 or fewer employees
Small Business Enterprise Programs
Disadvantaged Business Enterprise Programs
Disabled Veterans Business Enterprise Program
Local Business Enterprise
Minority Business Enterprise
Women Business Enterprise
Outreach Programs
Arrow Left
Arrow Right
Slideshow Left Arrow
Slideshow Right Arrow


text:
We've never been the type of women to blow our savings on wedding, buy a tulle volcano of a gown, or get all Bridezilla on our bridal party... but that doesn't mean we can't plan a mean wedding.
We've thrown and attended some of the most thoughtful, remarkable, picture-perfect, hey-look-everyone's-laugh/crying weddings you've ever seen, as a matter of fact. So, we thought it was high time that we shared the joy. First up in our crop of R29 friends sharing their personal pics is Joanna Goddard of Cup of Jo, whose Manhattan nuptials was definitely one for the books. Click through as Joanna walks through her big day, and the moments that made it super-special (plus, a few genius tips, of course!).


text:
Find out your property's true value in today's market with our Online Property Valuation.
The Premier Real Estate Company
Diane Turton, Realtors is a full-service residential and commercial real estate company with 16 sales offices strategically located throughout Monmouth, Ocean and Middlesex Counties in New Jersey and a Corporate Headquarters in Point Pleasant Beach. The company is independently owned by the Turton family and has been led by President/Founder Diane Turton since it was formed in 1985.
The company is staffed with over 425 sales associates including a full-time management/support team. The Diane Turton, Realtors sales associates have all of the local connections, as well as the national and international reach needed to maximize opportunities in today's complex real estate market


text:
by Liana
Here at the Bad Genious, we've got a serious case of Iron Man Fever. We're all tingly with anticipation for the May 2 premiere of what's looking to be a spectacular film. This got us thinking about past comic book movies and which of those thrilled us and which left us weeping into our pillows at night. And so, feeling inspired, your Friendly Neighborhood Editor set the task: Talk about a comic book movie you love OR one you hate. Pick one or the other (because it can get really long otherwise) and make it super lovey dovey or totally scathing. Oh, and let's try to keep it relatively short. A few sentences is all we need from each BGer.
What movies did everyone pick? Would any of them follow directions this time? Let's find out....
The General - When I first saw the trailer for the original X-Men movie in the theaters, I nearly cried. Literally. My friends, who knew my love of X-Men comics, turned to me and started asking: "Whoa! What did you think of that?!" But I couldn't respond to them. I was too choked up, too happy because I was finally seeing my favorite characters on the big screen. And done well!
In hindsight, X-Men isn't the best comic movie ever made. Heck, it's not even the best X-Men film. But, that was still my favorite comic movie moment.
Comic book movie you loved....comic book movie MOMENT you loved....practically the same thing, right?
Chris - Unlike a lot of people, I enjoyed Daredevil. I think there was a lot of passion for the character put into it. Ben Affleck was very good as Matt Murdoch and Jon Favreau nailed Foggy Nelson. Casting Michael Clarke Duncan as the Kingpin was brilliant, if unexpected. The problem with the film is that there's too much going on. You've got Kingpin, Elektra, and Bullseye all fighting for screen time, when any one of the three would have been sufficient for one movie. I think the filmmakers were too ambitious with what they were trying to do and none of the stories had room to breathe. Still, there is a good film in there if you're willing to look past the shortcomings.
Oh dear, this is going to be long Roundtable. Well, may as well get Quixote's thesis over with now.
Jon Quixote - The Iron Giant is smart, funny, and it makes me cry like Chad Lowe every time I watch it. Yeah, it's not technically a comic book movie, but on the other hand it's kinda the best Superman movie to date - the Big S isn't technically a character, but his silver-age lessons about self-determination and sacrifice are at the heart of a movie that has a lot of it.
What? That's it?! Hey, maybe this isn't going to be so bad ater all....
Betsy - You know what a Hulk movie needs to make it work?
Ang Lee's 2002 Hulk is an attempt to show the Hulk as a creature more complex than just a raging id, yelling "HULK SMASH!"
The movie spends a lot of time introducing us to Bruce Banner, the man behind the Hulk, his motivations, his…
Sorry, I fell asleep.
Hulk takes entirely too long to get us to any kind of payoff. This movie is so determined to rise above its comic book origins that it abandons them completely, leaving the audience with nothing to get excited about.
It is my hope that this summer's The Incredible Hulk finds what was missing in Hulk. I'll give you a hint as to what it is: it's green.
Brandon - Frame for frame, From Hell is probably the worst comic-to-film translation thus far. It's as if they gave the nickel version of a plot to someone who hasn't mastered English yet, let alone any other language known to man. This was a comic book deserving of attention more akin to a Coen Brothers film than a teenage slasher flick. It is debatable whether the butchering of this classic comic with the film is just as egregious as the events that inspired it. A failure of a film.
Matt - 300 is my favorite Frank Miller work and one of my top ten graphic novels of all time. But 300 is not my favorite comic book movie. Yet, I do believe that it is the best comic book adaptation. Why? Everything that was in the comic series was presented larger-than-life on the movie screen and it was a joy to see Miller and Varley's fantastic artwork come to life. I think it is the best because of the faithful translation from book to screen. Snyder (the director) shot the movie panel-by-panel from the comic series. While there were some minor changes to the story, (Queen Gorgo asking for support for the army) these small changes did not affect my enjoyment of the film. I am not going to debate if 300 is a good movie or a stinker or discuss the merits of the movie itself. If you liked the book, you should like the movie.
Hey, this going pretty well!
Jon Quixote - The Rocketeer is an underrated adventure.
Waitaminute....Didn't we already hear from you?
Jon Quixote - The Rocketeer is an underrated adventure.
Jon Quixote - The Rocketeer is an underrated adventure. In fact, it's one of the best comic book movies ever made. Basically, it's Green Lantern translated as Indiana Jones meets Iron Man. If you don't speak nerd, I'll translate (although what are you doing reading this blog?): A WWII-era stunt pilot finds an experimental jetpack and uses to become a super-hero. He saves troubled aircraft. He fights Nazis. His sidekicks are Jennifer Connelly's boobs. And Howard Hughes (as played by John Locke) makes a cameo. Doesn't that sound like fun? It is. A lot.
At least it wasn't 500 words.
Dan - X2 is the perfect comic book movie. We've moved past needing to introduce the main characters and the film opens with a spectacular Nightcrawler scene. The villain is a truly evil, hateful, anti-mutant bastard just like the best X-Men stories, with our heroes fighting those who "fear and hate them." Also, there's the great, sad, Empire Strikes Back-style ending. It's a rare case of the sequel improving on everything from the original and, in fact, becoming the best comics-to-film translation yet.
Bill - One might be able to give Superman IV a pass due to the major budget cut (reduced over 50% of original to a paltry $16M) were it not for the transgressions against the iconic characters.
The most serious offenses include making Clark ridiculous and incompetent rather than klutzy and reserved, and Superman's direct and forcible interference in world affairs. The story focused on its agenda for disarmament at the expense of the characters.
A close second to the total disregard of icon is Jon Cryer's inclusion. Well, not Cryer per se, but the character. "I'm breakdancing!" really is not a line to ever be uttered in an action, superhero film.
And rounding the top three reasons Quest for Peace is a tragedy and abomination: the anything-but-special effects. Wait, no, it would need to be the lapse in story elements (they cut 45 minutes of footage -- thankfully, yet at the cost of making sense). Wait, no, it would be the stealing of scenes from prior films and just jamming those in. No, wait, it's "Nuclear Man". No…wait, the real point is there's so much wrong in this film that it's unforgivable and unwatchable.
Your FNE is breakdancing right now.
Oh yeah!
Coolgirlsar - When I first saw Transformers I was maybe a little biased against it because, for the past never ending months, I had been enduring repeated viewings of the original cartoon movie and tv series, not just because of my four year old son, but also my 30-something husband! I think I was Transformer-ed out. Turns out I wasn't! Sure it's never going to be the most thought-provoking, edge-of-your-seat film, but it's going to be fun and kids are going to love it. The CGI is amazing, the Tranformers look fantastic and their transformations are expertly captured. Before seeing the film I'd read how much it had cost per second to film each Transformer, so I wasn't expecting to see a lot of them on the big screen. But this isn't the case and you feel as though you get to see plenty of them and not just one character but a variety. Sure Megatron could have had more screen presence, but I have a feeling they were holding out on that for a sequel. By far my favourite Transformer was Bumblebee. He had been altered from his original humble old yellow Beetle to a Camaro, but I think he looked cool and in the context of the film it made sense. The scene of Bumblebee getting caught had me with a frog in my throat much like in the Spiderman 3 movie when Sandman pummeled Spidey. By far the Transformers steal the show, but the acting from Shia LaBeouf and Megan Fox isn't awful. All in all I loved this film. It's good plain fun.
Doug - American Splendor isn't just a comic book movie; it's a movie about comic books and the slightly insane people who make them.More importantly (to me), it's a real and honest love story, a movie that makes me say "Hey, if Harvey Pekar can find love, then there's somebody out there for everyone." The heartwarming icing on the cake is the way Harvey and his wife took in that little girl and raised her as their own daughter.
Cindy - I've always been a sucker for the loveable tough guy. And few comic book characters are tougher than Hellboy. A clear case of nurture over nature, he's a demon reared to do good instead of evil. The trouble with a lot of comic book-based movies is that they sexy up the characters to make them more palatable to general non-fanpeople audiences. The 2004 Hellboy doesn't alter the giant red monster much at all. He's faithfully depicted, nasty horn stubs and all. He's shown eating piles of food and smoking cigars. Icky, right? But at the same time, his very gentle and convincing yearning for Liz Sherman actually makes him a little sexy. Hellboy is the perfect balance of action film and romantic comedy, and for those of us who care, the movie is a fairly faithful rendering of the actual comic character.
Mr. Jackazz - What could have been? That's the question I ask myself every time I see Superman Returns. The film had all the necessary ingredients to make it great, but couldn't pull them all together and wound up being easily forgettable.
Poor casting (Kate Bosworth), over-the-top "cartoonish" villains and a story that was just too long and boring hurt any potential this film had. I blame this all on the ego of Bryan Singer.
You could just tell the guy had final cut with Superman Returns and he was going to take full advantage of it. There is way too much fat in Superman Returns and it seemed like no one was wiling to trim it. What made the X-Men films so great was that while the films were different from the comics, Singer still remained faithful to the ideas and themes of the comics as well as the personalities of the characters.
With Superman Returns, Singer decided to use Richard Donner's movie as influence and not the comic. Donner's film was great and all, but I was hoping for a more serious version with a Lex Luthor that actually seemed like a threat and not a two-bit criminal. Luthor and his gang come off more like comedy relief than serious threat and that's where the biggest problem of this movie lies. (Well, that and the horrible Kate Bosworth casting decision. I blame that on you, Kevin Spacey, since it seems that Ms. Bosworth conveniently shows up in all your recent films.) By having a villain who isn't really threatening, you remove a lot of the tension and conflict in the film. We all know that Superman is eventually going to win, but if I believed the villain actually had at least a shot at winning, I would be more interested. This Lex Luthor just didn't cut it.
The worst part of it all is that Singer teases you in the beginning of the film with an action scene that captures everything that makes Superman so cool. You see the potential is there, only to be totally let down with the rest of the film. I would rather have the film suck from beginning-to-end than have that enticing nugget thrown in my face, just to have it followed up with ideas like Superman having a baby and Lex Luthor as a two-bit gigolo.
Superman Returns is the perfect example of what an uncontrolled ego can do to a film and a reminder to all filmmakers interested in making a comic adaptation what to stay away from.
How many words was that?
Vocal Minority - I've got a nice long document on my computer detailing the problems about this film. It's over a thousand words long. This film is that wrong. But we're supposed to be succinct here, so allow me to surmise:
John Constantine is a cynical, world-weary, morally questionable Brit. In this film, John Constantine is an American.
John Constantine doesn't like guns; he solves his problems with trickery and lies. In this film, John Constantine kicks ass with a crossbow.
John Constantine's world is one where the lines between Heaven and Hell are blurred, and morality is a complex and debatable thing. Here, John Constantine kicks ass for the lord.
John Constantine is a complex, contradictory character. In this film, John Constantine is played by Keanu Reeves.
This film isn't a Constantine flick. This film is some rubbish about fighting demons. It has nothing in it that makes the name attached to it worth having. It's one-dimensional, obvious pap, where it could have and should have been dark, shocking and compelling. Note to Hollywood: when your source material is awesome, you should try not messing it about.
Thanks, VM, for sparing us those thousand words this time. Your FNE promises to to let you post your rant in its entirety another day.
And there you have it, folks. Everything that matters to a great comic book movie and everything that can ruin it. Let's all hope that Iron Man lives up to its potential and that next week's BG Roundtable is full of joyous reviews.
Until next time, this is your Friendly Neighborhood Editor hoping filmmakers remember that Iron Man HATES magic.
BG Roundtable: Love and Hate
by Liana
11 comments:
- The General said...
Next debate: Who hates magic more: Iron Man or Dan?
Oh, and congrats to Jackazz for blowing Jon's word count record out of the water.
And finally, John Locke as Howard Hughs? Now I REALLY need to watch the Rocketeer.
- April 28, 2008 at 10:35 AM
- Brandon said...
It's been years since I watched The Rocketeer. Maybe I should revisit it...
- April 28, 2008 at 1:00 PM
- Steve Wasser said...
The comments on Singer's Superman are spot on. Between my expectations and the clunker reality, you could have fit that entire stupid kryptonite iceberg.
My least favorite superhero movie has to be X3. Between Cyclops's confusing off-camera death, Xavier's anti-climactic onscreen death, horrible special effects, muddy Jean Grey characterization and lame final battle, there is little to actually enjoy. It's a classic example of cranking out product.
- April 28, 2008 at 1:42 PM
- Vocal Minority said...
I think Dan hates magic more. If Iron man was as hate-filled as Dan he'd still be making weapons to kill the masses with.
- April 28, 2008 at 3:28 PM
- Matt said...
Like Chris, I did like Daredevil more than most people did. Rocketeer definitely is one of my faves! Kudos!
- April 28, 2008 at 4:47 PM
- Brandon said...
I actually liked Superman Returns. I hate Superman in general. Maybe that's why I liked Superman Returns.
- April 28, 2008 at 6:06 PM
- The General said...
And just to continue he contrary opinions (and undermine my own comments on X-men in this entry), I actually liked X-men 3.
- April 28, 2008 at 6:38 PM
- Brandon said...
I also liked X-3. It was just a comic book movie. Period. Consider the source material. Was it any better or worse than anything Claremont did with the X-Men? It was cheesy and fun as long as you weren't trying to make Mozart out of Metallica. Could it have been better? Certainly, but that's a commentary apt towards nearly everything Hollywood churns out.
- April 29, 2008 at 8:51 AM
- Dan said...
While I wouldn't go so far as to call X3 the most disappointing comic film (that's definitely Superman Returns), I walked out of X3 wondering what happened to the great story telling and tight casting and character selection of the first two X-Men movies.
X3 was just a big ol' mess of disappointment and silly story and directing descisions.
- April 29, 2008 at 9:30 AM
- Dan said...
Oh, and I totally hate magic more than Iron Man.
- April 29, 2008 at 9:30 AM
- Chris Ware said...
X3 was lame-o.
- May 3, 2008 at 3:31 PM