Saturday, November 15, 2008

Playing AVCDH content on Blu-ray Players

I spent a little too much time today fiddling around with technology. Ever since I bought a Sony AVCHD camcorder I've been bugged that I haven't been able to just dump the .MTS files it creates straight onto a DVD and throw it in the Blu-ray player. The video quality on the camera is fantastic and it seems a shame to downcovert it and watch it in typical DVD format. Not only that, downconverting that content takes forever.

So... for all of you who don't want to waste an entire spindle of DVDs and a precious afternoon that could have been put to good use like snowboarding, I'm going to attach a little script that will set you up. All you have to do is burn the image file onto a disc when its done running.

Hardware:
Sony CX-12 AVCHD camcorder (I think every AVCHD camcorder on the market will work with this approach)
Sony BDP-S550 Blu-ray player (The player needs to read DVDs and DVD DLs if you have 8gb flash cards in your camera)

OS:
Mac OS 10.5. Linux with newfs_udf util should work too.

Note:
I would recommend 4gb cards in the camera. 4gb is a good 30 minutes of video. Nobody wants to watch the entire fourth-grade christmas concert anyway.

When you plug the card in, it will show up as a volume. Usually /Volumes/Untitled. From there, run the script ./MakeBluRay.sh. There are some arguments and I didn't do a ton to make this script robust. It covers the bases.

s=size in MB (Default is 4096)
d=image file directory
n=new volume name (default is AVCHD)
f=image file name (default is tmp)
v=source volume (default is /Volumes/Untitled)
h=help

So ./MakeBluRay.sh -s 100 -d ~/VideoBackUp -f 11-13-08 will create a 100mb file called 11-13-08.img in the ~/VideoBackUp directory.

Here is the script:


#!/bin/sh



#Default volume size in MB
base_size="4096"

#Default image location - the current directory
img_file_dir="."

#Default image file name
img_file_name="tmp"

#Target volume name
new_volume_name="AVCHD"

#Destination volume name
new_volume_location=""

#Source Volume location
source_volume="/Volumes/Untitled"

#parse arguments
while getopts "h:s:d:n:f:v:" optionName; do
case "$optionName" in
h) printHelpAndExit 0;;
s) base_size="$OPTARG";;
d) img_file_dir="$OPTARG";;
n) new_volume_name="$OPTARG";;
f) img_file_name="$OPTARG";;
v) source_volume="$OPTARG";;
\?) echo "Valid options are\ns=size in MB (Default is 4096)\nd=image file directory\nn=new volume name (default is AVCHD)\nf=image file name (default is tmp)\nv=source volume (default is /Volumes/Untitled)\nh=help" >&2
exit 1
;;
:) echo "Option -$OPTARG requires an argument" >&2
exit 1
;;
esac
done


#test validity of source and destinations
echo "Source volume is $source_volume"
if [ ! -d $source_volume ]
then
echo "Source Directory of $source_volume does not exist"
exit 1
fi
if [ ! -d $source_volume/AVCHD/BDMV ]
then
echo "Source Directory of $source_volume does not contain a BDMV source"
exit 1
fi

#Create an image file matching the size of arg z
echo "Disc Image size will be $base_size"
echo "Disc Image location will be $img_file_dir/$img_file_name.img"
echo "Creating new image file. This may take a few minutes..."
dd if=/dev/zero of="$img_file_dir/$img_file_name.img" bs=$((1024 * 1024)) count=$base_size

#Create a UDF FS from the image with the volume name of arg n
echo "Creating a UDF FS on $img_file_dir/$img_file_name.img with volume name of $new_volume_name"
newfs_udf -r 2.5 "$img_file_dir/$img_file_name.img" -v $new_volume_name

#Mount the image file
hdiutil mount -nobrowse "$img_file_dir/$img_file_name.img"

#copy files from source volume to the newly mounted image file
echo "Copying source materials to new image file. This may take a several minutes..."
cp -R $source_volume/AVCHD/* /Volumes/$new_volume_name/

#Rename source files
echo "Renaming source files"
for f in /Volumes/$new_volume_name/BDMV/STREAM/*MTS
do
nf=`basename $f MTS`m2ts
echo "$f and $nf"
mv $f /Volumes/$new_volume_name/BDMV/STREAM/$nf
done

#INDEX Files
echo "Renaming clip and index files"
mv /Volumes/$new_volume_name/BDMV/INDEX.BDM /Volumes/$new_volume_name/BDMV/index.bdmv
mv /Volumes/$new_volume_name/BDMV/MOVIEOBJ.BDM /Volumes/$new_volume_name/BDMV/MovieObject.bdmv

#Clip Files
echo "Renaming clip files"
for f in /Volumes/$new_volume_name/BDMV/CLIPINF/*CPI
do
nf=`basename $f CPI`clpi
echo "$f and $nf"
mv $f /Volumes/$new_volume_name/BDMV/CLIPINF/$nf
done

#MPL Files
echo "Renaming mpl files"
for f in /Volumes/$new_volume_name/BDMV/PLAYLIST/*MPL
do
nf=`basename $f MPL`mpls
echo "$f and $nf"
mv $f /Volumes/$new_volume_name/BDMV/PLAYLIST/$nf
done

#Blu Ray Compliance
mkdir /Volumes/$new_volume_name/BDMV/BDJO
mkdir /Volumes/$new_volume_name/BDMV/JAR
mkdir /Volumes/$new_volume_name/BDMV/AUXDATA
mkdir /Volumes/$new_volume_name/BDMV/BACKUP
mkdir /Volumes/$new_volume_name/BDMV/BACKUP/BDJO
mkdir /Volumes/$new_volume_name/CERTIFICATE
mkdir /Volumes/$new_volume_name/CERTIFICATE/BACKUP
cp /Volumes/$new_volume_name/BDMV/*.bdmv /Volumes/$new_volume_name/BDMV/BACKUP/
cp -R /Volumes/$new_volume_name/BDMV/PLAYLIST /Volumes/$new_volume_name/BDMV/BACKUP/
cp -R /Volumes/$new_volume_name/BDMV/CLIPINF /Volumes/$new_volume_name/BDMV/BACKUP/

#Unmount the image
hdiutil unmount /Volumes/$new_volume_name

echo "Success... you can now burn this with Disk Utility"

Wednesday, October 29, 2008

What is Kouji Shinko Kijun?

While in Japan recently, I learned a few important Japanese phrases:
Yoroshiku onegaishimasu - Something to the order of I'm your humble servant, please take my business card
Ita daki masu - Saying thanks for anything - especially food
kouji shinko kijun - New accounting rule going live as of April 1, 2009 in Japan. This rule states that SI's in Japan need to recognize project revenue as well as expense ratably during the project.

Much discussion has happened concerning the best way to achieve compliance with kouji shinko kijun. Organizations who used to use Excel to figure out status on project plans now need a more reliable method for recognizing project revenues during the execution of the project. Key components of compliance include Enterprise Project Management, WBS, and EVM.

WBS, or Work Breakdown Structure, is a tree structure which sums a project's components upward. Progress recorded at the lowest levels of a project's WBS is reflected in the overall project data.

EVM, or Earned Value Management, is a way to normalize schedule and cost progress in an objective way (See http://en.wikipedia.org/wiki/Earned_value_management). Earned Value allows an SI to know at any time during an engagement how much work has been completed toward the full contract as a ratio. Using EVM, I can easily compare many different projects of differing scopes across a standard measurement. With EVM, I can depict in a single number the degree of variance at any point in time a project is experiencing in terms of cost and schedule. These numbers play into anticipated revenue from labor on those projects.

Enterprise Project Management gives SI's the ability to look across all projects and pro-rate the expected revenue from those projects according to the EVM data and the WBS projections. Compliance with kouji shinko kijun requires this level of understanding across the organization.

A series of articles on this topic are emerging from thought-leaders in Japan. One of the first of these can be found on page 54 of November issue of Nikkei Systems publication (http://ec.nikkeibp.co.jp/item/backno/OS0187.html). This article covers solutions that address Kouji Shinko Kijun requirements. The article mentions Artemis, HP PPM, Primavera P76 and @task. The article devotes an entire page to @task and conducts a case-study with Toyo Business Engineering, and @task customer.

One of the quotes I liked from the case study was, "All team members now can see the overall schedules of the project in realtime and can see the results of their contributions and this has
been a great motivator” (Miyazaki-san, Division Manager, Toyo Business Engineering).

Monday, October 27, 2008

Project and Portfolio Management (PPM) is an Inferior Good

Market-watching these days has become a macabre pass-time; like, why do you torment yourself by looking? Its like watching a train wreck in slow motion.

We have to know how these changes are going to affect us personally, affect our businesses, and affect our ability to invest; and so we watch anyway.

CIO's, executive teams, and department heads all across the world right now are looking at how they can cut costs and still maintain similar levels of productivity. 'Do more with less' is the new global slogan. The market just got a 30% reduction in value, so did your budget - or at least if you haven't gotten that news yet, trust that somebody is talking about that somewhere in your organization.

For a leader to 'Do more with less', he or she needs to know a few things about their organization. Namely, what everybody is doing and what impact that work has on the organization as a whole. Organizations looking to make cuts or tighten up on growth need to do three things better:
* Obtain true visibility over all initiatives and resources
* Prioritize initiatives according to positive impact on the organization
* Make better use of resources

What I love about this is that these needs are addressed through of the discipline of Project and Portfolio Management (PPM). So, why the comment about PPM being an inferior good?

Drawing from knowledge picked up in my BYU economics classes years ago, an 'Inferior Good' is one that people buy more of when they have less money. Right now, people are scrambling to understand their organizations. Good CIO's will realize that PPM is the key to overall productivity gains. This puts PPM in a growth situation; even when the markets are down. We have been seeing this in trends observed over the last six weeks. We have seem a dramatic uptake in product interest as the economy shows further signs of weakening. Our belief is that PPM remains a strong performer in this time of potential global recession.

A couple weeks ago I was in Japan. While there, I spent some time with Jim Hunter of PM Global. PM Global has some great technology dealing with controls management of which, @task is one integrated component. Jim has been in the Project Management industry for many years and commented that he loves down markets due to the increase in PM attention they create and the consequent increase in business.

Furthermore, in the PPM space, there are heavyweight solutions such as MS Project Server, Computer Associates' Clarity, and Oracle's Primavera. These solutions are heavyweight in both up-front cost and resources required for implementation. These solutions tend to focus on the management layer and are complicated to the point that adoption into additional levels of the organization is limited. This limitation directly affects the solution's ability to provide real-time visibility for executives down into the workforce (e.g. If the workforce isn't in the tool, the tool can't provide good data back up the chain without mid-level after-the-fact redaction). These complicated solutions are actually pushing organizations toward alternatives that are less costly up front, less risky to the organization, and more likely to be utilized by the entire workforce.

@task is the SaaS alternative which has its roots in usability and Web 2.0 technology. There is a practical aspect to the needs organizations have around visibility, prioritization, and productivity. Modern tools like @task address this practical need extremely well in a way that promotes usability - so that the organization truly can do more with less... including less complication in their PPM tools.

The combination of down economy pushing organizations toward PPM. That same pressure is pushing PPM buyers toward SaaS applications. This bodes well for products like @task.

Wednesday, October 22, 2008

On-Demand is not SaaS. The old and new economy shaping software licensing

SaaS and on-demand are not synonymous.

Let me first start by explaining the business model behind SaaS in software development.

Old Economy - In the past, software vendors have typically modeled their business around traditional product development practices. The company sells a license for a specific version of its product and charges maintenance fees for continued support of that version. The support includes technical support as well as bug fixes and patches. In the meantime, the company plans for a version upgrade containing 12 to 18 months of software development effort. That upgrade is sometimes sold at full-price to existing customers and sometimes for a reduced price in the neighborhood of 50-75% of retail.

New Economy - Recently, software vendors have adopted the agile way of thinking about software development. This way of thinking requires that software development become very customer-focused and that innovation is delivered to customers frequently and in smaller pieces. This allows the customer to provide feedback on phased-in functionality and leads development along a path that ultimately delivers more useful software. This process requires that there be no 12 to 18 month release cycle, but rather a monthly or a quarterly release cycle. This process also requires a new business model as the traditional approach to discreet versions becomes obsolete.

SaaS is a natural outlet for the new economy. SaaS, keep in mind, means 'Software as a Service', not 'On-Demand Software' or 'Hosted Software'. The SaaS model merely allows vendors to deliver frequent upgrades to customers and still protect the revenue that would have come from selling discreet upgrades every 12 to 18 months.

The defining characteristics of a SaaS company are:
* Customer-focused software is delivered frequently (e.g. monthly or quarterly)
* An economic model that promotes use of continuously improved software instead of ownership of a discreet version of a software package


Benefits of SaaS on buyers - Buyers should understand why SaaS is a win for them, even though it may feel uncomfortable to be making an annual payment for their mission-critical software. There are several reasons why the SaaS model benefits buyers:
* SaaS is cheaper and less risky. The economic model for a SaaS vendor amortizes the cost of software over a typical packaged software's life expectancy. It is, therefore, less expensive to obtain and the lower up-front costs are less risk to the buyer. A recent study by Goldman Sachs (Investing for the next stage in software-as-a-service, Sept '08) discovered that SaaS vendors' gross margins are 15% lower than their packaged software counterparts.
* SaaS vendors tend to be extremely customer-focused. In the SaaS model, the days of shelfware are absolutely gone. If the buyer does not derive continued value from their software, they will simply not renew.
* SaaS software innovation is delivered monthly or quarterly. This allows the vendor to more quickly respond to market trends and customer needs
* SaaS software is not a capital expense, its a lease.

Why is on-demand not equivalent to SaaS and visa-versa?

Virtually all SaaS companies deliver their software on-demand, or hosted. The on-demand delivery model allows the vendor to control the upgrade process and to keep the application on the latest version. Additionally, SaaS companies have been leaders in the usage of the multi-tenant architecture, scalability techniques, and user-configurable software to dramatically improve economies of scale. Thus, architectural characteristics such as multi-tenancy have been attributed directly to SaaS companies rather than to on-demand software.

Can an on-demand application fail to be SaaS? Yes. Not all on-demand applications will exhibit the attributes of a SaaS offering. Recently, several of our competitors including Computer Associates and Serena have marketed 'SaaS' versions of their products. These products are essentially on-demand incarnations of traditional heavyweight packaged software. While the pricing model may reflect the cost amortization, I would suggest that the 'service' component is missing; namely: focus on customer usability and frequent upgrades.