Twin Technologies, Inc. a long-time Adobe Partner and recent First Quarter Winner of Adobe’s LiveCycle Partner Solution Showcase in San Jose, CA, is proud to announce that we are now the first company to have a solution formally endorsed by Adobe as a Partner Solution. The DigiNodesTM Digital Asset Review (DAR) Solution (f.k.a. the Digital Media Review Commenting and Approval (DMRCA) Solution), has won this distinguished honor based on its exceptional handling of in-line video commenting and review as a direct answer to requests by multimedia professionals to improve collaboration and editing of video content.

Building on the solid foundation of Adobe LiveCycle ES2, DigiNodesTM DAR takes the concept of a managed review workflow and fuses it with Twin Technologies’ proprietary DigiNodesTM technology to create a powerful video commenting system that allows content creators and creative teams the ability to gather comments from stakeholders on digital media assets with frame-by-frame accuracy. The DigiNodesTM DAR interface is intuitive and user-friendly; frame-by-frame commenting is as easy as a clicking a mouse and typing the comment. This level of usability allows video editors to be able to focus on their content and not the controls.
The ability to control the workflow between collaborators, and the robust auditing system assures that videos are edited and reviewed in the proper organizational hierarchy. DigiNodesTM DAR keeps all the commentary on a separate track from the original video itself assuring that multiple revisions do not impact the quality of the original video. DigiNodesTM DAR also saves time and processing power through its use of server-side transcoding and features enhanced security features as well for protecting your video asset.
DigiNodesTM and the DAR package allow an organization to drastically increase the efficiency of their creative teams and get their message/products to market much faster by:
• Shortening edit process workflow times
• Accelerating collaboration efficiencies
• Provide transparency and visibility into the creative process
• Providing detailed audit trails
• Identifying process bottlenecks
• Improving security over traditional workflow methods
• Integrating with existing Digital Asset Management (DAM) tools such as Adobe’s Creative Suite
The DigiNodesTM DAR Package Delivers:
• Server side transcoding for single click review initiation by creative team of their media files.
• Direct integration with CS5 tools.
• Support complex comment and approval routing
• Dashboard tools for real-time visibility into the workflow processes
• In-line editing; now you can keep comments within the context of the story
• Separate storage of media and comments blended together server side to create a single stream.
• Server-side watermarking of the stream for additional security
• DigiNodesTM coupled with the appropriate player allows complete security for the digital asset.
• Digital content is delivered as a live stream which means the asset is never stored on the client’s device.
Simply contact our sales team for more information: David Ladd, SVP Sales or phone: 518.391.2663
Tags: Adobe·Approval·Comment·DAR·DigiNodes·Digital Asset Review·digital media·DMRCA·LiveCycle·Media·Review·twin technologies·Video·Video Editing

Twin Technologies was recently selected as a winner of Adobe’s LiveCycle Partner Solution Showcase in San Jose, CA for the 1st Quarter of 2010. Nine solutions were presented by partners to a panel of Adobe judges. Twin entered in two LiveCycle-based business solutions:
- The JumpStart: Human Capital Applications Solution – a best-practice implementation of the HCA Solution Accelerator that has been able to realize a 958% ROI in only 1 year after implementation, based on improvements in Human Resource on-boarding and off-boarding systems.
- The Digital Media Review, Commenting and Approval (DMRCA) Solution – which fuses Twin’s proprietary DigiNodes video-streaming technology into LiveCycle’s Review, Commenting and Approval (RCA) LiveCycle building block using the new Adobe Mosaic Tiles technology to create a powerful new video-editing tool that allows frame-by-frame review and commenting ability.
Kevin Okragly Presenting DMRCA
And the winner is . . . the DMRCA Solution! The video editing possibilities that DMRCA provides are endless, and it directly answers the requests by multi-media organizations of all sizes for a robust and intuitive video review and commenting system.
The solution will now be a standard product in Adobe’s repository and a featured LiveCycle product to present to customers for 2010. DMRCA is now looking to make a splash on the main stage of Adobe’s MAX Conference 2010.
- To learn more about LiveCycle, Adobe’s powerful Enterprise-Application Architecture, visit: LiveCycle
- To learn more about Adobe’s MAX check out the homepage at: Adobe Max
Tags: Adobe·DigiNodes·Digital Media Review Commenting Approval·DMRCA·HCA·JumpStart:Human Capital Applications·LiveCycle
Adobe has a new a framework that allows developers to create standalone Flex applications and then gather them together into a larger application. If you haven’t seen Adobe Mosaic Tiles yet, check it out here http://www.adobe.com/products/livecycle/mosaic/. Tiles permits multiple applications to be “mashed” together into one larger application; of course, once they are, there needs to be an efficient way for the tiles to talk to one another. We could write a lot of server code to send messages back and forth between tiles, but luckily for us, Adobe has created an easy way to communicate between tiles.
Setting up cross-tile communication is simple because sending a message from one tile to another is like dispatching events in a Flex application. One tile will send a message and the other tiles can listen for it. The two main players that enable cross-tile communication in this relay are the IRuntime interface and the Message class.
Each tile specified by the <mc:Tile> tag has a protected property named runtime. The runtime property, as defined in the Adobe live docs, is a tile’s access to the runtime system. The focus of this article is on two methods of the runtime object: the addMessageListener function and the sendMessage function.
The addMessageListener function sets up a message listener just like the addEventListener method does with other Flex components. The syntax is slightly different, however: addMessageListener(ns:String, name:String, listener:Object). Let’s say I wanted to call the function named doSomething whenever the message name “callDoSomething” is sent in the namespace titled “myNamespace.” I would then add the code this.runtime.addMessageListener( “myNamespace”, “callDoSomething”, doSomething).
Before we can send a message, an instance of the Message class needs to be created. The Message class acts like an event in Flex except that it has different properties. A message object has three properties: a namespace, name, and payload. The namespace and name will match up a message with a given messageListener defined in another tile. The payload object is the data sent from one tile to the other. Taking the example above, the message that would call the doSomething method would look like this:
var msg:Message = new Message( “myNamespace”, “callDoSomething”, payload )
To send the message, simply call runtime.sendMessage( msg )
The example below sends a message with a string as the payload to any tiles that are listening. The tile that sends the message will be named SendMessageTile and the listening tile is named ReceiveMessageTile. The send message tile simply creates the message and calls the runtime.sendMessage function as shown.
private function sendSampleMessage():void
{
var payload:Object = new Object();
payload.theMessage = "Hello from Send Message Tile";
var message:Message = new Message( "sampleNamespace", "callDoSomething", payload );
this.runtime.sendMessage( message );
}
The ReceiveMessageTile’s job is to setup the messageListener. In this example, the doSomething method alerts a property named “theMessage” to the user.
public function onCreationComplete():void
{
this.runtime.addMessageListener( "sampleNamespace", "callDoSomething", doSomething );
}
private function doSomething( message:Message ):void
{
Alert.show( message.payload.theMessage, "Received Message" );
}
Once the sendSampleMessage() function is called from the SendMessageTile, an alert displaying “Hello from Send Message Tile” will be shown. Pretty simple, right? There are some limitations on the types of objects that can send through the IRuntime interface. If you have complex objects you may want to create helper methods that transform a typed value object to a simple object before calling runtime.sendMessage(). Then on the ReceiveMessageTile you would call a helper method to transform a simple object to your typed value object.
Depending on your requirements, tile communication may be an important part of your project. Now that we’ve discussed how messaging works between tiles, feel free to download the source and build off this simple example.
Sample Application Code
Tags: Mosaic Tiles
With the proliferation of LiveCycle Data Services, it surprises me that there has not been more attention paid to the creation of a Java framework for standard three tiered implementations of LCDS. Of course, in a perfect world, the application tier development should be completely agnostic to your service and UI tiers. However, long term, you can save yourself a lot of headaches if you think about the consequences of an application’s service tier and UI tier architectures. The most obvious case of this is how assemblers execute updates for all clients
As far as I know, the only application tier framework option available that is tailored to LCDS is the Adobe LCDS Hibernate plug-in. However, when using this framework, it quickly becomes apparent that it is not a good solution for enterprise level applications. Reason: the Hibernate plug-in makes the application tier little more than a transportation layer. Using the Hibernate plugin-in, one is effectively creating a client server application. This can be troublesome on many fronts, such as:
- You can’t always assume the only consumer of the application tier is going to be a Flex client. Web Services and a “classic” or “ajaxy” HTML front end may also need to be implemented.
- No business logic can be implemented on the middle tier and consumed across clients. All business logic must be implemented in the database and/or client.
- Security becomes very complicated.
- Hibernate is not good for bulk data transfers (example: reporting). It specializes in transactional operations.
Due to the lack of options available and lack of development time to come up with a clean architecture, my experience has been that the middle tier architectures of most LCDS applications are not well thought out. LCDS applications generally result in some sort of standard DAO and entity implementation (probably Hibernate) coupled with bloated mapping classes to handle all entity to value object creation. Business logic tends to be sprinkled in between the mappings and is not abstracted at all. This type of architecture (or lack thereof) might work well during the prototyping phase. However, it quickly becomes unwieldy and error prone.
To resolve the architectural problems I’ve seen, I came up with a personal framework that I use for LCDS application development. It covers the entire application tier from DAO’s and Entity Beans to the assemblers and value objects that are being passed back to the UI.
The goal of the framework was to speed up development, follow generic patterns, minimize bugs and ensure a flexible enough solution to fit any type of application. Ease of use was important but not the most critical requirement. I find that each application I write is slightly different and the framework needs to be generalized a little more for each project needs. The framework is meant to solve the common problems one faces and not every problem.
To get a high level overview of the framework and its usage, check out the document posted here.
Next Steps: The framework is still evolving, and there are some features I will likely need to add for future projects. Some big extensions that may need to be added are:
- Utilization of the java scripting engine in 1.6 for writing business rules in JavaScript. This allows easy customization of the business rules without requiring a system restart.
- Creation of an ActionScript rules engine that can leverage the same JavaScript rules in the application tier. This saves writing validation scripts on both the client and server side (Think email address).
- Further streamlining of some of the mapping files, and removing full package names where possible by keying off of directory locations instead of mapping files.
- Creation of a Web Service DAO Factory and a JDBC DAO Factory.
- Creation of a generic web service client.
- Usage of Session and Entity Beans in EJB3.
If you are at all interested in the framework, feel free to shoot me an email at michael.korthuis@twintechs.com and we can talk about it further.
Tags:
Twin Technologies’ Gus Holcomb spoke at the first ever InsideRIA conference this week in San Francisco. Java engineers interested in learning how to program iPhone apps came to hear his presentation.
Gus says people are often intimidated by programming for the iPhone because the language is weird and while there are a number of tools you can use, selecting the right one for what you want to do can be tricky. Gus talked about what makes the iPhone language different, the language features you need to know about. By using the right tools, what might initially look daunting, gets a lot easier when you look at how to link objects together.
Gus showed two code examples… enough to get people to get out and start working on it, so they knew enough to start getting their programs out. Since the audience was already fluent in Java, Gus used Java to prove concepts that appear tricky on the surface so he could relate them to familiar material.
Look for Gus’ lunch and learn on iPhone development coming this fall!
Tags: Flash Catalyst·innovation·RIA·Security·user experience
We recently had an internal project that required us to extract meta-data from video files. We needed information such as the number of streams, length of the video, format, creator, encoding, and anything else we could gather. This information was then stored in a database for the easy extraction and categorization of a large set of videos.
Twin has also recently started an internal streaming media framework using tools like Red5, Xuggler, and ffmpeg. Using the expertise we gained with Xuggler, I decided to quickly write our own meta-data extractor. Later I decided on an even simpler solution.
The first method was to write our own meta-data extractor using Xuggler. In order to use Xuggler, download and install it from http://www.xuggle.com/xuggler/downloads/. In Linux, you will also need to add the XUGGLE_HOME/lib directory to the LD_LIBRARY_PATH environment variable so the native libraries are picked up by Java (Xuggler uses JNI to call its own C++ wrappers around ffmpeg). The Windows installer does this automatically for you.
After Xuggler is installed, I cracked open the demos it had and modified one. The code is very simple and required few changes. The Java code is downloadable below. Just make sure the xuggle-xuggler.jar (included in the XUGGLER_HOME/share/java/lib folder) is in your classpath before compiling and running it, and pass in a movie file as a command line parameter. For example:
java com.twintechs.video.demo.GetMediaMetaData /path/to/your/video.mpg.
The output will be something along the lines of:
Opening video file: /home/dave/workspace/twin/MetaData/video/test.mpe
null (probesize): 32000
set mux rate (muxrate): 0
set packet size (packetsize): 0
null (fflags): 0x00000000
set the track number (track): 0
set the year (year): 0
how many microseconds are analyzed to estimate duration (analyzeduration): 3000000
decryption key (cryptokey): §C,
max memory used for timestamp index (per stream) (indexmem): 1048576
max memory used for buffering real-time frames (rtbufsize): 3041280
print specific debug info (fdebug): 0x00000000
file "/home/dave/workspace/twin/MetaData/video/test.mpe": 2 streams; duration (ms): 53700; start time (ms): 149; file size (bytes): 11323804; bit rate: 1686972;
stream 0: type: CODEC_TYPE_VIDEO; codec: CODEC_ID_MPEG1VIDEO; duration: 4833000; start time: 13490; language: unknown; timebase: 1/90000; coder tb: 1/30; width: 432; height: 320; format: YUV420P; frame-rate: 30.00;
stream 1: type: CODEC_TYPE_AUDIO; codec: CODEC_ID_MP2; duration: 4810187; start time: 13490; language: unknown; timebase: 1/90000; coder tb: 1/90000; sample rate: 44100; channels: 2; format: FMT_S16
And a lot of other stuff.
The output is hard to make sense of, however, since it’s essentially in its rawest format. Instead of painstakingly mapping each raw field to human-readable English, (for the record: not a good use of a consultant’s time!) I searched a little online for a pre-existing solution. Not surprisingly, there were many. The best one, which is also an open source project on SourceForge, was MediaInfo.
So, the second method of extracting data from source videos, which is a little easier but more limited because the program’s sole purpose is for info on media (e.g. you couldn’t play a video sample if you wanted), is to download and install MediaInfo. The website is at http://mediainfo.sourceforge.net/en. Download and install this on your platform, and then using either the GUI or the CLI (command line interface), you can see the available information of essentially any video. For example, using the CLI, you can then type something like:
MediaInfo –Full “/path/to/your/video.mpg”
This will give a lot of information, most of which is human-readable. Then this information can be extracted using any of a number of methods, like Python or Perl text parsing, etc., and fed into a database for categorization. And there you have it; two easy ways to extract every bit of information from a video file and categorize it for further use!
Here is a example file getmediametadata .
Tags:
On Tuesday May 5, Twin Technologies and Adobe hosted a half-day seminar at Adobe headquarters in McLean, Va. to introduce and acquaint participants with the powerful Adobe LiveCycle platform and its uses in government applications. LiveCycle software is an integrated server solution for automating business and administrative processes. It blends data capture, document output, information assurance, process management and content services so that you can create and deliver the kind of rich applications that engage users, drive productivity and cut down on all that tedious, repetitive, time-wasting paperwork.
At the seminar, we showed attendees how LiveCycle solves work place challenges like HR on and off-boarding, new accounts management, benefits and services delivery and information, and form, document and contract management. Participants were led through actual use case project builds so they could see how Adobe LiveCycle works, from both a technological and business perspective, to solve challenges and automate common business processes. We also introduced Twin Technologies’ new JumpStart Solutions, our repeatable solutions package that offers templates and coding and makes LiveCycle faster and easier to implement and use across an enterprise.
Technologies like LiveCycle enable changing government to engage with its citizens and promises to expedite the new administration’s commitment to greater transparency and efficiency.
Tags:
Twin Technologies introduced its new offering, JumpStart Solutions, this week. JumpStart delivers rich, engaging applications that solve specific business processing challenges so you can accelerate productivity and reduce redundant data entry. JumpStart leverages the Adobe LiveCycle platform and extends it to offer packaged repeatable solutions to common business problems such as on and off-boarding employees, account enrollment, and processing benefits and services.
Each JumpStart offering includes:
- Implementation plans
- Business rules
- Template project plans
- Custom code
- Fixed price
Using JumpStart, Twin Technologies can integrate a complete solution into your organization in three months or fewer.
JumpStart: Human Capital
JumpStart: Human Capital creates a custom workflow for each HR operation so you can organize data and operate your HR workflow faster and more efficiently. The interface is intuitive, convenient, and its self-service operations make users happier and more engaged. At the same time, making back-end integration is easier. JumpStart: Human Capital can be deployed quickly and is an economic method of optimizing HR functions and standardizing your workforce operations.
The Human Capital offering enables:
- Data selection and capture
- Processing and approval
- Provisioning and document generation
JumpStart: New Account Opening
JumpStart: New Account Opening is designed to simplify the process of bringing on board new customers. With an easy user experience and efficient data capture, you can decrease the cost and time it takes to open new accounts.
The New Account Opening offering enables:
- Data selection and capture
- Self-services operations
- Welcome package generation
- Pause and resume
JumpStart: Benefits and Services Delivery
JumpStart: Benefits and Services Delivery simplifies the way employees sign up and qualify for the benefits you offer. New laws make communicating updates about benefits a challenge. JumpStart: Benefits and Services Delivery ensures your employees have the latest information. We provide you the mechanism for quickly rolling out new benefits or changing the qualifications rules through a simple user interface. Keeping those reliant on you informed drives confidence and loyalty.
The Benefits and Service Delivery offering enables:
- Management of qualifications
- Automated decision making
- Data selection and capture
- Self-service options
- Processing and approval
Twin Technologies plans to roll out multiple JumpStart packages to solve additional business processing challenges. Stay tuned!
Tags:
March 10, 2009, Washington, DC – Twin Technologies’ Government Solutions is exhibiting its powerful system integration and web development capabilities at the FOSE trade show in Washington DC, March 10-12. You can meet Twin Technologies’ experts at booth#2608 and learn more about how Twin’s robust software applications are powering collaborative projects with government agencies such as DARPA, DISA, the U.S. Marine Corps, the U.S. Army, and the Department of Defense.
At FOSE, Twin Technologies’ Government Solutions will show its unique SDLC methodology that has proven track records in commercial and government space, and integrates work flows and operations, bringing key elements of web 2.0 to government applications. Twin Technologies delivers design, creation, and deployment of mission critical operations that improve workflow and conserve resources.
A Record of Solutions
Global Asset Services: A secure documentation collaboration portal and web-based form guide for Real Estate Closing transactions.
Government Services: A custom dynamic data capture form guide collects data on hundreds of users, exports it into PDF, and integrates the information into a defined workflow.
Global Financial Services: A Rich Internet Application (RIA) that emulates the service provided on hard turret phones, yet offers remote accessibility on any phone with the functionality and flexibility of a web application.
Global Travel Services: A web portal that includes the storage and publication of country-specific medical data integrated across international databases into a fast, user-friendly interface that travelers in medical or political crises can access intuitively.
Global Healthcare Services: The first commercial web-enabled Electronic Medication Administration Record (eMar) with flexible remote connectivity, intuitive, user-friendly design, and stability to accurately track and document patient records.
Commercial Services: A web portal with interfaces for both front and back end users, integrated within the existing enterprise that includes both content and order management systems and used by hundreds of contractors, suppliers, and service providers.
Tags: FOSE·Government·government 2.0·government 3.0·twin technologies·web 2.0
Twin Techs senior consultant Kevin Okragly made his video blog debut on Adobe’s Devnet. You can find out more about the DDC Adobe Solutions Accelerator works and admire this joint project between Twin Techs and Adobe here.
For specifics on implementation, a technical overview and to catch Kevin in action, check this out:
High Level Overview of DDC Workflow
Configuration and Administration of the DDC Framework
DDC Process Review
DDC Installation
Tags: Adobe Solutions Accelerator·ddc·dev net·devnet·LiveCycle·okragly·RIA