Friday, May 07, 2010

Blockbuster and Netflix queue availability comparison

It's been over 3 months when I reactivated my blockbuter.com subscription and kept my 1-DVD netflix subscription to keep the online streaming option. I'm really glad I did this. After the delay of WB movies, Netflix introduced the same 4 week delay for Century Fox and Universal Studios movies. Redbox also agreed to the same delay, so if you wanted to rent Avatar on April 22nd the only option available to rent from was blockbuster.

Thanks to my dual subscription, I'm able to provide you with a side by side comparison of availability for 10 popular releases. Four of these titles (Avatar, Leap Year, It's Complicated and Crazy Heart) are not yet available in Netflix due to the 4-week delay. Netflix CEO claimed that one of the benefits for the delay to customers was to have more copies available on day 29: "The most practical reason is that the savings derived from this deal enable us to be in stock completely on day 29", well Sherlock Holmes was released on 3/30 on Blockbuster and was not available on Netflix on 4/27, ironically it has a long wait on Netflix while it is available on Blockuster, makes you wonder.


Friday, February 05, 2010

Blockbuster vs Netflix DVD subscription comparison

I recently switched from Blockbuster to Netflix DVD subscription because new release DVDs were taking 2-3 days to ship in some cases, but I'm finding out that Netflix is even worse. I have a 2 DVD subscription with Netflix. Netflix received DVD #1 on 1/31 and DVD #2 on 2/2. I have not had any DVDs shipped this week at all. Today (2/5), I called customer service and they said they will not be shipping any of the DVDs on my queue for this weekend because those titles have not been returned by other customers, so in summary I had no DVDs shipped in one full week. Here is what my DVD queue looks like:

  1. Movie 1: Very Long Wait (Released on 1/19/10)
  2. Movie 2: Very Long Wait (Released on 2/3/20)
  3. Movie 3: Short Wait (Released 12/22/09)
  4. Movie 4: Very Long Wait (Released on 2/12/10)

With the exception of "Movie 2" I've had these movies on my DVD queue for at least a week. One of these titles was released over a month ago. Shouldn't Netflix stock more copies of unavailable movies? I know that will erode profits, but if this is a common trend for most customers they are risking losing customers which will also eventually hurt profits. To make matters worse they recently introduced a 4 week delay for Warner Bros movies. Not to mention that they charge ($2-$4/mo) extra to get blu-rays. The only reason why I'm keeping their subscription is because of their streaming option, which is great, I have a Roku player and love it. In terms of DVD subscription I'm reactivating my plan with Blockbuster which seems to be better in terms of availability, not charging extra for blu-rays and no 4-week delay for new Warner Bros releases (so far).

Wednesday, August 19, 2009

Blockbuster shipped "Sunshine Cleaning" DVD a week early!


The DVD does not come out until 8/25, and I got it on the mail today (8/19)... sweet! Is this common? It is a certainly a first for me... off to watch it now!

Saturday, May 10, 2008

Sony outlet store at Grove City outlet closing

Everything is 30% off (excepte marked down items which are just a few). They're closing on May 16th. All the HDTV are sold out, no PS3s are left either. Some items worth left are: digital cameras, camcorders and laptops. They have mostly refurbished items, but several factory new items as well.

Monday, April 07, 2008

If you have an iPod nano and enjoy jogging...

I strongly recommend getting the Nike+ add-on. You don't even need to buy a Nike+ shoe, you can get a pouch bag and use it in your favorite running shoes!

Friday, February 29, 2008

Upcoming talk on Spring .NET

March 11th, 2008 at the PGH .NET User's group meeting:
http://www.pghdotnet.org/Events/448.aspx

...and in case you miss it we'll do it again on the Pittsburgh .NET Code Camp on April 12nd, 2008:
http://www.pghdotnet.org/CodeCamp/

Wednesday, December 12, 2007

How to fix iPhone speaker problem

BEGIN UPDATE (5/14/08). This solution worked for me for at least 2 months, since then I've had at least 4 reocurrences, all of which were fixed just by reinserting the earphone repeatedly, except for the last instance, I had to clean the earjack and seems back to normal
END UPDATE

One day I got a call on my iPhone and I was not able to hear any audio. After a while I figured out I could still hear audio if I put it in speakerphone mode. Next I realized that the play icon was showing up with no audio. I tried pausing/playing music and I could no hear any audio at all. After doing some research on Google I found out this was a very common problem on the iPhone, and unfortunately it appears to be a problem on the hardware and not on the software.

The iPhone has a mechanism to detect when you unplug the headset, apparently this mechanism can fail sometimes due if debris gets in the headset jack. This is why you can't hear any audio, because it thinks you have a headset plugged in and continues to route all audio to the headset output. There are several workarounds published out there, some very creative that suggest using a damped q-tip. But the one solution that worked for me was plugging and unplugging the headset several times until it gets back into the correct state. However this solution was only temporary for me, eventually the iPhone would get into that same state. Because I connect the iPhone on the aux port of my car stereo I had to check every time I left my car to make sure I would be able to use my phone throughout the day!

This became very annoying, so I called Apple Support (1-800-MY-IPHONE) and the workaround they had me try was to plug and unplug my headphones 5 consecutive times as fast as I could. The problem was fixed immediately, but I was very skeptical this would be a long term solution. So I continued verifying that the phone was in the correct state everytime I unplugged the headset. To my surprise this problem hasn't reocurred since then and it's been over 4 weeks and I plug/unplug it at least twice a day, so it seems in my case this problem was indeed caused by a debris and not a permanent hardware problem, which is a relief. So there you have it: the official recommendation from Apple support if you want to give it a shot.

Thursday, December 06, 2007

iPhone update 1.1.2: the fastest and most stable version to date!


Apple has been very vague as to what is included in the iPhone updates, in particular with regards to the 1.1.2 update: "...new features and bug fixes..." leaving many users -primarily jailbroken/unlocked iphone users- wondering if it is worth updating just for the sake of updating. Although it is not officially stated, apparently the iPhone CPU clock speed was boosted with this update. As soon as I installed the update, I noticed that applications loaded faster and in particular web pages loaded much faster in Safari. Using sysinfo several users have been able to confirm this. The CPU frequency was 400 MHz while the bus frequency was 100 MHz in the iPhone 1.1.1 firmware. The iPhone 1.1.2 now shows a CPU frequency of 412 MHz and a bus frequency of 103 MHz. If that is not enough to convince you to upgrade I also noticed that this update makes the iPhone, in particular Safari more stable. Safari would crash for me about once a day in the earlier version, it hasn't crashed so far for me.


Sunday, March 26, 2006

DragDropList changes in the ATLAS March CTP release

As many of you know the ATLAS March CTP release is out as of last week. I recently downloaded it and found out that some of my samples broke. Specifically the customization of the DragDropList I had made to add support for a dragged and dropped events.

I have posted an updated version of my CustomDragDropList class that works with the March CTP release. I primarily took the source code from this release and added my customizations. The only additional change I had to make was to rename any references to the Web.UI namespace to Sys.UI instead.

Additionally I had to remove the "templateLayout" XML-Script element from the "dropCueTemplate" element, apparently that is no longer necessary and leaving it breaks the code. A sample usage of my CustomDragDropList should looks like this:

<control id="queueList">
 <behaviors>
  <customDragDropList dataType="HTML" acceptedDataTypes="'HTML'" dragMode="Move" removed="itemAdded" added="itemRemoved" >
   <dropCueTemplate />
  </customDragDropList>
 </behaviors>
</control>

Monday, February 20, 2006

Creating a custom server control for ATLAS

When working with drag and drop lists in Atlas one task that you'll find yourself doing over and over again is adding the draggableListItem behavior to the controls that you wish to make "draggable" in your page's XML-Script. In many cases you may want to dynamically generate these controls with server side code based on results from a database query, for instance. For this reason, I thought it would make sense to build a custom web control to achieve this goal.

Rather than starting from scratch, I chose to start my control inheriting from the Panel control. This allows you to add any arbitrary content to the "draggable" item control, as it is translated to a span tag in HTML. In order to make the control "ATLAS-enabled" you need to implement the IScriptControl interface. The control's class declaration should be something similar to this:

public class DraggablePanel : System.Web.UI.WebControls.Panel, IScriptControl

Next you need to make sure to get a reference of the page's ScriptManager and register the control, and optionally you may want to add a reference to the AtlasUIDragDrop library to save you from doing that in the main page:
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
if (!DesignMode)
{
ScriptManager scriptManager = ScriptManager.GetCurrent(Page);
if (scriptManager != null)
{
scriptManager.RegisterControl(this);
scriptManager.RegisterScriptReference(
FrameworkScript.AtlasUIDragDrop);
}
}
}


Next, the only method from the IScriptControl interface that must be implemented is the RenderScript method. The goal of the custom control is to output the following XML-Script:
<control id="webPart1">
<behaviors>
<draggablelistitem handle="webPart1Title">
</behaviors>
</control>

The RenderScript implementation will output the XML-Script above, using the control's id and the panel control's id as the handle:

public void RenderScript(ScriptTextWriter writer)
{
//Outputs control tag
GenericScriptComponent gsc = new GenericScriptComponent(
new ScriptTypeDescriptor("control",
ScriptNamespace.Default));
//Outputs behaviors tag
gsc.ID = this.ClientID;
GenericScriptComponent draggableBehavior =
new GenericScriptComponent(
new ScriptTypeDescriptor("draggableListItem",
ScriptNamespace.Default));
draggableBehavior.AddValueProperty("handle", this.ClientID);
gsc.AddCollectionItem("behaviors", draggableBehavior);
((IScriptObject)gsc).RenderScript(writer);
}

Tuesday, February 14, 2006

Upcoming talk on AJAX/ATLAS

I will be showcasing some ATLAS demos at the next Pittsburgh's .NET User Group meeting on Wednesday, Feb 22nd:
http://www.pghdotnet.org/Events/258.aspx

Monday, January 30, 2006

How to create drag and drop lists using ATLAS

One of the biggest reasons why ATLAS is so great is because of the set of rich client-side controls it includes, such as draggable lists. Before ATLAS, I had to rely on libraries such as script.aculo.us and tool-man.org, both of these great libraries, but they require additional effort to integrate them into you ASP .NET web application. With ATLAS that is no longer the case.

To give you an idea of the great drag and drop capabilities built-in to ATLAS, I recommend taking a look at samples from Wilco Bauwer. The generic steps required to build your own draggable list are as follows:

Choose a HTML control that will contain your "draggable" items and add and as many "dragabble" items to it. In this example I'm using a div element with id "draggablePanel":


<div id="draggableContainer">
<div id="draggableItem1">My draggable item 1</div>
<div id="draggableItem2">My draggable item 2</div>
</div>

Next you need to add the dragDropList behavior to each draggable item and to the "draggable container" inside the XML script element of the page, without forgetting to add a reference to the AtlasUIDragDrop library:


<page 
xmlns:script="http://schemas.microsoft.com/xml-script/2005">
<references>
<add
src="ScriptLibrary/Atlas/Debug/AtlasUIDragDrop.js" />
</references>
<components>
<control id="draggableContainer">
<behaviors>
<dragDropList dataType="HTML"
acceptedDataTypes="'HTML'" dragMode="Move">
<dropCueTemplate>
<template layoutElement="dropCueTemplate" />
</dropCueTemplate>
</dragDropList>
</behaviors>
</control>
<control id="draggableItem1">
<behaviors>
<draggableListItem handle="draggableItem1" />
</behaviors>
</control>
<control id="draggableItem2">
<behaviors>
<draggableListItem handle="draggableItem2" />
</behaviors>
</control>



That's it! Can't get any easier than this, right?

Monday, January 23, 2006

Customizing ATLAS DragDropList class

For those new to ATLAS, ATLAS (http://atlas.asp.net) is a new library in development by Microsoft of client and server side components for ASP .NET 2.0, it helps incorporate the use AJAX into web applications, but it is a lot more than an AJAX library, as it also provides a set of controls that leverage DHTML and JavaScript to provide a rich user experience in web apps similar to that found in Google maps and flickr.

I'm currently working on extending the DragDropList included in this library to allow detecting when an item is added or removed and issue a call to the server using AJAX. Thanks to the help of Garbin (http://forums.asp.net/AddPost.aspx?PostID=1176694). I was able to customize this class and I'd like to share my learning with those pursuing a similar goal.
  1. Because the Web.UI.DragDropList is a sealed class, I could not inherit from it, and instead of modifying the source code (AtlasUIDragDrop.js) I chose to create a custom class starting with the code from Web.UI.DragDropList and adding my changes to a class I named Web.UI.CustomDragDropList
  2. Next inside the getDescriptor function I added the following events:

    //Step 1: Add events
    td.addEvent('removed', true);
    td.addEvent('added', true);

  3. Next I added the properties (these can be added at the top level of the class, outside any function):

    //Step 2: Create Events
    this.added = this.createEvent();
    this.removed = this.createEvent();

  4. Finally inside the onDragEnd function I added the removed event invocation and inside the drop function I added the added event invocation as follows:

    //Step 3: Invoke remove method
    this.removed.invoke(this, Web.EventArgs.Empty);
    //Step 4: Invoke added method
    this.added.invoke(this, Web.EventArgs.Empty);

The usage of this list from the ASP page is as follows:

<control id="draggableList">
<behaviors>
<customDragDropList dataType="HTML" acceptedDataTypes="'HTML'" dragMode="Move" removed="itemRemoved" added="itemAdded"> ....

Tuesday, April 19, 2005

BizTalk 2004 certification released?

The list of exams in Microsoft certification website includes the following test for BizTalk 2004:
Exam 74-135: Developing E-Business Solutions Using Microsoft BizTalk Server 2004

However as of 4/19 there is no link to the exam overview page, but if you replace the exam number in the url for any other test page, i.e. http://www.microsoft.com/learning/exams/74-135.asp it shows that this test has been available since Jan 17, 2005. It may be just a mistake on the site, anyway I've been looking forward for this exam to be released and I'm planning on taking it sometime soon.

Monday, April 18, 2005

Visual Studio .NET 2005 (Whidbey) Beta 2 released!

At last! Beta 2 of Whidbey has been released to MSDN subscribers.
http://lab.msdn.microsoft.com/vs2005/get/

I wonder if the final release date is still within the first half of 2005...

Thursday, March 17, 2005

Article about BPEL

Here's a link to an article I recently published...

Using The Business Process Execution Language (BPEL) to Integrate Business Processes
http://news.pghtech.org/teq/teqstory.cfm?ID=1329

Wednesday, March 16, 2005

My first post

This is my first blog and my first post. I'm a technologist, so I'll try to keep the main posts to my blog technology-related. My expertise is primarily in .NET and J2EE, but I consider my self to be technology agnostic, so I'm particularly interested in technologies that make heterogeneous technologies work together, such as Web Services.