Flix Video Encoding and Publishing

last update : october 2010

In the past the On2 Flix product line was the leading line of encoding and publishing solutions for Adobe® Flash® Player, available as application software, plug-ins and software development kits for servers, desktops, and browsers.

On February 19, 2010, Google Inc. announced that it has completed its acquisition of On2 Technologies, Inc., valued at approximately $124.6 million.

On June 21st, 2010, ON2 announced that they are discontinuing sales of licenses for On2 Flix Pro, On2 Flix Standard, On2 Flix Exporter, On2 Flix PowerPlayers, On2 Flix Live, On2 Flix SDK for DirectShow, and On2 Flix Publisher. Google will no longer sell or support these products.

Backing Up a MySQL database

It is strongly recommended to backup databases at regular intervals and always before an upgrade. Restoring the database from backup is then possible if anything goes wrong.

phpMyAdmin is the usual program to manipulate a MySQL database.

To export tables from a database, login to phpMyAdmin, select the name of the database, choose those tables that corresponds to the related application and check the following options :

  • SQL
  • Structure
  • Add drop table
  • Add auto-increment
  • Enclose table and field names with backquotes
  • Data heading (without ticking the inside boxes)
  • Same as file
  • Zipped compression
  • Export type “insert”

Click GO and save the file to the computer. If you have separate files and folders for images, downloads, media or other attachments, save them with FTP on the computer.

A general rule of thumb is to keep at least three backups of databases and data files and to keep them in different places.

To restore the database, login to phpMyAdmin, select the database to restore, click the import tab, locate the .sql file on the computer, check the SQL radio button and click GO. The import may take a while, at the end a success screen is displayed. In case of separate image and media files, restore them with FTP.

WordPress has an integrated export/import function which is very userfriendly and efficient. It’s possible to change the author of the posts before saving and to import also automatically the attachments.

Today I tried the import and export of blogs with phpMyAdmin and with WordPress with success.

XHTML validation and Javascript : CDATA

With HTML pages on the web you can include the required Javascript betweentags. The W3C validator ignores the Javascript content. The same is not true for XHTML where the code between the script tags is considered to be PCDATA (parsed character data) which is therefore processed by the validator.

The result is a break of the page validation. To fix this problem, one solution is to make the Javascript external to the page. Another solution is to  place the Javascript code within a CDATA tag. However some older web browsers don’t understand the CDATA tag and this breaks the Javascript in those browsers.

If the CDATA tag is commented out, the Javascript code is handled correctly both by newer browsers and by validators and ignored by older browsers and the page is displayed as expected in all cases.

<script type=”text/javascript”>
/* <![CDATA[ */
// content of your Javascript goes here
/* ]]> */
</script>

A guide about this topic has been written by Stephen Chapman on the About.com:Javascript website.

eBay Development : Finding API

These are complimentary informations to my first post about eBay Development and are focused on the new Finding API. The homepage of the eBay Developers Program is http://developer.ebay.com/.

eBay provides a set of keys (DEVID, AppID, CertID) for the sandbox and for production. These keys are registrated at the personal eBay developer account webpage. Developer centers are available for Windows, Java, PHP, Javascript and Flash. There are different API’s available for selling, buying, research and monitoring :

  • Finding
  • Shopping
  • Merchandising
  • Feedback
  • Trading
  • Large merchants
  • Client alerts
  • Platform notifications
  • Research

There are call limits per day for the different API’s. For higher call limits, applications need to complete a compatible application check process.

eBay Finding API enables applications to search for eBay items using eBay’s next generation Finding Platform. Today I replaced the eBay shopping API by the new Finding API in my applications.

The supported functions for the Finding API are :

  • getSearchKeywordsRecommendation: Get recommended keywords for search
  • findItemsByKeywords: Search items by keywords
  • findItemsByCategory: Search items in a category
  • findItemsAdvanced: Advanced search capabilities
  • findItemsByProduct: Search items by a product identifier
  • findItemsIneBayStores: Search items in stores
  • getHistograms: Get category and domain meta data

The function findItemsAdvanced enables searching for items on eBay by category (using categoryId), by keywords (using keywords), or a combination of the two. By setting the descriptionSearch field to true, the keyword queries also search the item descriptions, in addition to searching through the item title and subtitles. Another interesting finction is getHistograms which returns category and/or aspect histogram information for the eBay category ID you specify.

There are different possibilities to obtain the list of categories ID’s for a specified eBay website (php program,  special API, …). A simple solution is to access the storelist online at the eBay website with the url http://listings.ebay.xx, for instance:

Other needed informations to use the eBay API efficiently are the Global ID, a unique identifier for combinations of site, language, and territory. The list of Global ID’s is available on the eBay developer website.

The keywords field is the basis for item searches. The value specified in the keywords field can contain one or more keywords and combinations of wildcard characters. The words “and” and “or” are treated like any other word.  You can use AND or OR logic by including certain modifiers. The complete list of modifiers and wildcards for searching by keywords is available at the eBay developer website.

A search can be refined with item, aspect and domain filters. Filters provide better control over the search results by narrowing the range of items returned. Domains are a buy-side grouping of items, such as women’s dresses. A domain can span many eBay categories and some categories may be included in more than one domain. Aspects are item characteristics, such as brand, product type, size, which are shared by certain types of items. For example, for Shoes, aspects include Style, Color, and Shoe Size. For Digital Cameras, aspects include Product Type, Brand, Megapixels, and Optical Zoom.

In addition to filters, you can specify certain properties to control the way data is returned. These do not control which data is returned, but rather how it is sorted and the volume of the response. The applicable sort values are available at the eBay developer website.

Use paginationInput and its child elements to break the items matching the search criteria down into smaller subsets, or “pages” of data. The paginationInput.entriesPerPage field specifies the maximum number of items to return for any given request. The paginationInput.pageNumber field specifies which “page” of data to return in the current call. The maximum value for paginationInput.entriesPerPage is 100, this is also the default value.

To include additional informations in the search results as the default values, the outputSelector fields can be used. To earn money from eBay for driving trafic to their website, affiliate-related fields, which are included in a call request using the affiliate container, enable the tracking of user activity. Commissions are generated when users do qualifying actions, such as bid, buy, or register. The affiliate container has the following fields: networkId, trackingId, and customId.

There is no difference between uppercase or lowercase characters in the keywords. Special caracters as é, è, à, ü etc are however not recognised.

SWFObject

SWFObject is an easy-to-use and standards-friendly method to embed Flash content, which utilizes one small JavaScript file. The actual version of the open-source project is 2.2. The work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License. The authors of SWFObject are Geoff Stearns, late Michael Williams and Bobby van der Sluis.

SWFObject offers:

  • two optimized Flash Player embed methods; a markup based approach and a method that relies on JavaScript
  • a JavaScript API that aims to provide a complete tool set for embedding SWF files and retrieving Flash Player related information
  • only one small JavaScript file (10Kb / GZIPed: 3.9Kb)
  • replacement of SWFObject 1.5, UFO and the Adobe Flash Player Detection Kit
  • unification of all existing Flash Player embed methods and provision of a new standard for embedding Adobe Flash Player content
  • detection of the Flash Player version and determination whether Flash content or alternative content should be shown, to avoid that outdated Flash plug-ins break Flash content
  • functionality to revert to alternative content in case of an outdated plug-in by means of a DOM manipulation (Note: if no Flash plug-in is installed the HTML object element automatically falls back to its nested alternative content)
  • the option to use Adobe Express Install to download the latest Flash Player

SWFObject 2 offers two distinct methods to embed Flash Player content:

1. The static publishing method embeds both Flash content and alternative content using standards compliant markup, and uses JavaScript to resolve the issues that markup alone cannot solve
2. The dynamic publishing method is based on marked up alternative content and uses JavaScript to replace this content with Flash content if the minimal Flash Player version is installed and enough JavaScript support is available.

Both methods have advantages. The SWFObject library consists of one external JavaScript file. SWFObject will be executed as soon as it is read and will perform all DOM manipulations as soon as the DOM is loaded – for all browsers that support this, like IE, Firefox, Safari and Opera 9+ – or otherwise as soon as the onload event fires.

An online HTML and javascript generator is provided to create the right code for an swf object. A tutorial how to use SWFObject is available on the Adobe website. The following link leads to a webpage with a script indicating the installed Flash version.

Amazon CloudFront

update : October 18th, 2011
Amazon CloudFront is a web service for content delivery. It integrates with other Amazon Web Services (mainly Amazon S3) to give developers and businesses an easy way to distribute content to end users with low latency, high data transfer speeds, and no commitments.

Amazon CloudFront delivers the content using a global network of edge locations. Requests for  objects are automatically routed to the nearest edge location, so content is delivered with the best possible performance. Amazon CloudFront works seamlessly with Amazon Simple Storage Service (Amazon S3) which durably stores the original, definitive versions of the files.

In Amazon CloudFront, objects are organized into distributions. A distribution specifies the location of the original version of the objects. A distribution has a unique CloudFront.net domain name  that  can be used to reference an objects through the network of edge locations. It’s also possible to map an own domain name to a distribution.

Amazon CloudFront is

  • fast
  • simple
  • cost-effective
  • elastic
  • reliable
  • global
  • designed for use with other Amazon Web Services

The price depends on the edge location and the volume transferred. The mean price per GB for low volumes is about 0,2$, for high volumes about 0,1$. A simple monthly AWS bill calculator is provided by Amazon. Normal fees will apply for Amazon S3 usage, including “origin fetches” – data transferred from Amazon S3 to edge locations.

The edge locations in Europe are:

  • Amsterdam
  • Dublin
  • Frankfurt
  • London

Amazon CloudFront is designed for delivery of objects that are frequently accessed – “popular” objects. Objects that aren’t accessed frequently are less likely to remain in CloudFront’s edge locations’ caches. Thus, for less popular objects, delivery out of Amazon S3 (rather than from CloudFront) is the better choice. Amazon S3 will provide strong distribution performance for these objects, and serving them directly from Amazon S3 saves the cost of continually copying less popular objects from Amazon S3 to the edge locations in CloudFront.

I activated my Cloudfront account on November 1st, 2010.

A recent tutorial how to install Amazon CloudFront has been posted by Michael Tieso on the website “Art of Travel Blogging”.

Delete wordpress post revisions

To delete and remove all existing post revisions entries and rows from WordPress database posts table, login to phpMyAdmin, select the appropriate WordPress database and then issue the following command :

DELETE FROM wp_posts WHERE post_type = ‘revision’;

To turn off and disable automatic post revisions, simply add the following line of code to wp-config.php file located in the root or home directory of WordPress blog:

define(’WP_POST_REVISIONS’, false);

Popup window with parameters

If a new window is created by an user action, it will not be blocked by the browser’s popup blocker.

The dimensions (width & height) of the popup window are required, the other parameters are optional:

  • left & top :  the distance from the top and left side of the screen
  • toolbar :  if the popup should have a set of navigation buttons across the top
  • location :  if the popup should have a location bar where the URL is displayed
  • directories :  if the popup should have a row across the top with buttons to popular web sites
  • status : if the popup should have a status bar across the bottom
  • menubar : if the popup should have a menu
  • scrollbars : if the popup should have scroll bars
  • resizable : if users can resize the popup
  • dependent : if the popup should close when its opener window closes
  • full screen : how to open a full screen popup

The popup script has the following format:

window.open(href, windowname,

width=400,height=200,scrollbars=yes’);

An example is given below:

[HTML1]

Dream Bank

Last update : August 9, 2013

The Psychology Department of the University of California, Santa Cruz, offers access to their Dream Bank, a collection of over 20.000 dream reports in English and 6.000 dream reports in German, coming from a variety of different sources and research studies, from people ages 7 to 74.

The reports can be analyzed using a search engine and statistical programs built into the Dream Bank website. Several of the people who contributed dreams to the Dream Bank wrote prefaces to their journals which are also available. A summary of the collection available for search is presented in the grid.

D. William Domhoff wrote a contribution “Fast Content Analysis Using the Internet” in 2004 based on the search engine. More recent findings have been published in Consciousness and Cognition (17, 1238-1247) in 2008 in the contribution “Studying Dream Content Using the Archive and Search Engine on Dream Bank.net“.