Category Archives: Applications

Installing Youtube Direct

Youtube Direct is a new tool from Google/Youtube that makes it easier for media organizations or websites to request users to submit video clips, review submitted clips, and possibly re-broadcast these clips, just like CNN’s iReport.  It allows websites to embed Youtube’s upload functionality with ease, includes moderation panel to approve or deny submitted clips, and provides a link back to the website when videos are viewed on Youtube.

Here is a summary of my attempt to install Youtube Direct (YTD). YTD is designed to run  on Google App Engine (GAE) so you need to have a GAE account. Don’t worry, it’s free. After getting one, I downloaded the source and prepared it to be deployed in GAE. To do this, there are several things that need to be configured. One is to have Eclipse and the related Google Plugin.

Installing Eclipse. Download Eclipse IDE for Java EE Developers from the Eclipse project website. The file is, which is about 190MB. Extract the eclipse directory from the zip file. This directory contains the eclipse.exe executable, which runs Eclipse.

Install Google Plugin for Eclipse. Run Eclipse. Then select the Help menu and choose Install New Software.. menu item. In the Work with text box, enter the following URL: Click the Add button and then the OK button, keeping the name blank as it will be retrieved automatically from the site. Next, click the triangle next to “Plugin” and “SDKs”. Check the boxes next to “Google Plugin for Eclipse 3.5” and “Google App Engine Java SDK.” You can also include the “Google Web Toolkit SDK” if you like. Click the Next button and accept the terms of service to install the plugin. When the installation is complete, restart Eclipse and the plugin is installed.

Install subclipse to manage SVN checkout. Subclipse can be found here. To install it in Eclipse, open Eclipse and click the Help menu. Select Install New Software menu item. In the Work with text box, enter the following URL: Click Add button. Follow the same process as in Step 2. This time selecting Subclipse from the available options. Restart Eclipse to complete the installation.

Download the source code. Now, you are ready to download the YTD source code. In Eclipse, select File menu, then click the Import menu item. In the Import dialog box, click the small triangle next to SVN, and then select Checkout Projects from SVN. Click Next button. From the Checkout from SVN dialog box, choose Create a new repository location. Click Next. Specify the URL as follows: Click Next. Select the folder to be checkout by highlighting Click Finish. A new project called ytd[tags/20091113] should appear in the Project Explorer after Eclipse completed downloading the source code.

Copy war/WEB-INF/appengine-web_DEFAULT.xml into war/WEB_INF/appengine-web.xml. Edit this file. Put within the <application> tag the registered App Engine instance name of your application. Specify the version of the application within the <version> tag. Replace the value of property with your registered Youtube developer key. If you don’t have a developer key, get one here.

Run the application by clicking the Run action in Eclipse. If everything is working fine, you should have a server running at http://localhost:8080/. While still in Eclipse, deploy the application to GAE by clicking the Deploy App Engine Project button in the toolbar.

At first, I encountered several errors. I didn’t have a clue why. When I tried to deploy the application to GAE, it failed because it cannot find javac in the path. As it turned out, I needed to set Java in Windows –> Preferences –> Java –> Installed JREs to the installed Java SDK, not just the JRE. Any way, after setting Java to the SDK,  all the errors disappeared and the application worked and I was able to deploy it to GAE.

GAE dashboard. Go to the admin panel of YTD by visiting From this panel, you can create new assignments, moderate submitted videos, etc. You can also get the codes that you can paste into a page in your website to enable video submission for each assignment.

That’s it! I still have to see how this works. You can also check the Youtube Direct Getting Started Guide for more details. Till next post.

Trying Shindig, an OpenSocial and Google Gadgets container

Shindig is an open source reference implementation of Google’s OpenSocial and gadgets specifications. With Shindig, you will be able to host Google gadgets and OpenSocial applications in your own web site relatively quickly as it already contains code that you can easily plug into your server infrastructure to start hosting these applications.

Interested with OpenSocial, I tried installing Shindig in my home server. Currently, Shindig’s PHP implementation is far from being complete, so my interest is just to have a feel on how it works. To install Shindig, check its web site and follow the instructions there. The project does not yet support automated build infrastructure so you need to get Shindig from its SVN repository. For this, you need an SVN client. Fortunately, I have Cygwin installed in my Windows XP machine, so I only had to install subversion in Cygwin. This can be done by running the Cygwin installer, then locate the subversion package, select it, and install. After the installation, run a bash shell and you are ready to export Shindig.

My First Silverlight Video Player Application

I always wanted to create my own web-based video player to share vacation videos with relatives and friends back home. But I didn’t have an idea where to start. I initially considered Adobe Flash but it’s not free and I didn’t have a license for it. Of course it is easier to just store the video files in YouTube and it will be immediately accessible to everyone. But I don’t like splitting each video into 10-min segments, 10 minutes being the current maximum length of video clips allowed in YouTube. 

Then I came across Silverlight, Microsoft’s cross-browser and cross-platform plug-in for delivering rich interactive applications on the web. I read about it several months ago. And the first thing that came to mind was whether it could be used to create a self-hosted video player for sharing videos on the Internet. Last weekend, I finally had the time to try it out. I visited Silverlight’s web site and looked for some introductory materials to work on. Fortunately, I found a tutorial on how to use Silverlight for video playback. I tried it and it worked!

So here is an outline of my first Silverlight video player application. This is based on the tutorial from The brief explanation is based on my understanding of the original tutorial.

Migrating from Serendipity to WordPress Using Windows Live Writer

After months of inactivity, myGUIDE is now back with a new look and running on a different weblog platform. Yes, you read it right, I changed my blog platform from Serendipity to WordPress. This means that although I have migrated all my previous posts to WordPress, previous links will no longer work since Serendipity and WordPress have different link structure. Now if you’re looking for a particular post, you can still find it here. Just use the search box to locate it.

How did I do it? It was quite easy. Thanks to Windows Live Writer (WLW). But before taking this approach, be warned that this may not be appropriate for your case. This worked for me because myGUIDE is relatively new and has only a small number of blog entries and I’ve been using WLW to post entries to this blog. A Serendipity importer plugin is already available for WordPress. So maybe you’re better off using the plugin. But if you want an alternative approach, you can try this one.

The first thing to do is to create a weblog account in WLW to access your Serendipity-based blog, if you have not done it yet. Then setup another account in WLW to access your WordPress blog. After doing this, you’re ready to go. Simply read your blog entries, one at a time, from your old blog using WLW, then switch to your new blog, and click the Publish button to publish the entry you just retrieved. It is that easy! You can also use WLW to create the relevant categories in your new blog. You can even set the published date so that you can keep the original date of your posts.

But there are limitations to this approach. First, you will lose all your comments. WLW will not read the comments associated to each post.  Second, WLW sometimes will not download the images in the post. Instead it will just get the link of the image from your original blog and use this link in the new one. Thus if you’ll remove your old blog, the images will also disappear. Finally, if you have many entries, transferring all of them can take some time since you have to manually repeat the process of reading your previous posts from Serendipity then publishing it to WordPress. Luckily for me, I have only 15 entries so this was not an issue. 😉

And that’s it!

Yahoo! Messenger 9 Beta and Yahoo! Messenger for the Web

Yahoo! Messenger (YM) 9 is now available in public beta.  For those who would try this newest version of YM, you can download it from here. The new version has a completely new look for your contact list. You can choose a detailed view with larger Avatar images for your friends or a compact view if you want to minimize space. When in detailed view, you can just hover on your contact to send instant messages, SMS, or place a call. It has also brand new skins and emoticons.

Sharing videos becomes a lot easier. With an inline media player, you can just send the URL of the video you want to share and it will play within YM.  There is no need to open a new browser to play the video. Flickr is also integrated in the photo sharing feature. You can now share photos uploaded to flickr or save photos shared by others to your flickr account. Of course, sharing photos stored in your desktop is still possible.

YM 9 also offers localized versions for more countries including our very own the Philippines, and other countries such as Thailand, Indonesia, etc. I wonder what localization is available in the Philippine version. The menu in Tagalog? The Philippine version can be downloaded from here.

Blogging from Google docs

Google Docs (GD) is an online word processor, presentation, and spreadsheet application offered for free by Google. According to its documentation, it is possible to post created documents to a blog, which can be configured by the writer. Curious, I setup GD to point to my serendipity-based blog myGUIDE. After entering the required information, GD appeared to communicate successfully with my blog’s XMLRPC server. So I am testing it now if this document will get posted. (NOTE: This is an experimental post.)

But before doing that, let me explore a bit some of GDs features. Inserting a table is very easy. Just click the insert link and then table. Below is an example table, center aligned, with two columns and two rows. You can right-click on the table to cut, copy, or paste selected items or change table properties. You can move rows up or down, insert rows or columns, or delete the entire table. You can also specify the alignment of the table, or its float property.

This is row 1, column 1 This is row 1, column 2
This is row 2, column 2 This is row 2, column 2

It is also possible to insert an image from my computer. The image on the left is an example. I can change the size of the image, its alignment, among other properties. It is also possible to drag the image wherever you like to place it in the document.

I can also insert page formatting like superscript1 or subscript2. I miss this feature in Windows Live Writer, the blogging software I am currently using. I don’t know if I can compose equations using GD (I wish). But it is possible to insert special characters. Here are example Wingdings characters: Q1ºV

While editing, you can also move from WYSIWYG editor to raw HTML editor. It is interesting, for the Wingdings characters above, the HTML source uses the <font> tag with the ‘face’ attribute set to ‘WingDings’. I dont know if this will be displayed properly in browsers which do not support the font type.

Okay, here it is!


UPDATE: The document did get posted, but without the title. So I have to add the title from here. Hmmm…

Search Philippines! A Google custom search engine

Interested in creating your own search engine? Try google custom search engine (CSE)! With google’s CSE, you can customized your search experience, including in the search only sites that are relevant to you. You can also host both the search box and search results in your site. You can even create custom search engine on the fly. (For example, creating a search engine for sites included in your blogroll.) For those interested, you can visit this webpage on CSE’s API.

It’s really easy to configure but you need to have a google account. If you already have one, follow the link above, login, and start building your own search engine. I already made one and called it Search Philippines! SP! can be found in this URL: This search engine only includes Philippine-related websites (well, that’s the target). For now, I have only a couple of websites included. I plan to include more Philippine news sites, pinoy blogs, etc.  Here is the image of the site.


What is this for users? Since the number of sites to search are limited and focused (say, only for Philippine news sites), users will be able to get more relevant search results as compared to using the entire google search engine. For website owners, this will give more visibility to your website. For instance, search the term ‘phpwebsite’ in google. This blog ( appears in the 5th page. Search it again in my custom search engine Search Philippines! This blog is now on the first page.  This is because I included my blog in the list of websites for Search Philippines.

Any way, if you are interested in helping build Search Philippines! or want to include an SP! search box in your website or blog, drop me a note! It will be great to have our very own custom search engine.

Windows live writer’s "Invalid response document" error

In my previous post, I outlined my unsuccessful attempt to use windows live writer (WLW) to connect to the XmlRpc server of PhpWebsite‘s article manager module. I experimented using both the Metaweblog API and the Movable Type API but with no success. When attempting to post an entry, WLW always returned the following error message “The response to the metaWeblog.newPost method received from the weblog server was invalid: Invalid response document returned from XmlRpc server.” However, the entry did get posted. Republishing the same entry would create a new post instead of replacing the one posted earlier. And each time, WLW gave the same error. 

I searched the Internet for possible solutions. I found out that the problem is quite common and not unique to PhpWebsite (PWS).  The same problem has also been observed in other blogging platforms such as wordpress. Luckily for wordpress users, there are already solutions posted in several blogs for some of the problems with WLW. Unfortunately for me, the solutions were not applicable for PWS. I could not even find other sites or blogs talking about PWS and WLW except this one. It seems I am the only soul trying to do this in the entire world wide web.

Since most of the websites I’m maintaining are powered by PWS, I thought it is worth the time and effort to figure out the cause of the problem. I am also in need of a good editing application that I can use with PWS. The provided text editor is only good for basic editing and not for more advanced formatting. For instance, using tables in entries can really take a lot of time. Anyway, since I am using WLW in my other blogs, I thought it would be great if I could also use it in my PWS-based websites.

Using Windows Live Writer in PhpWebsite

Anyone using Windows Live Writer (WLW) in PhpWebsite (PWS)? I searched the web but got no relevant result. I asked the question in phpwsforums, and am still waiting for replies.  So I tried it myself.

PWS has a third party module called article manager, which has an XML-RPC capability. This should enable PWS users to post entries to a PWS-based website with the article manager module installed using offline blogging tools such as WLW. But I wonder why nobody has tried doing this yet. So using a local test installation of PWS, I configured my WLW to connect to the article manager’s XML-RPC server. This can be done by simply pointing WLW to http://localhost/index.php?module=article&xmlrcp=1 (NOTE: replace "localhost" with the actual domain name of your PWS installation.) First, I used the metaweblog API.

Blogging Made Easy Using Windows Live Writer

I just discovered that Microsoft has released Windows Live Writer Beta 2 a couple of weeks ago. Windows Live Writer (WLW) is a desktop application that makes blogging easier. It allows you to compose rich blog content from your desktop and publish it to your blog with a single click. Fortunately, WLW works well with Serendipity, the weblog application I am currently using.

Windows Live Writer Beta 2

Compared to the previous release, WLW Beta 2 has more features. It is now very easy to insert and format tables with the new insert table plugin. The thing I like most is the ability to split a given post, which is now supported. This is very useful if you have a long entry and would like to divide it so that it will not occupy most of the front page.

Another feature I like is the ability to post draft versions of your entries directly to your weblog. This is very handy if you are editing your blog at different places. You can just access the draft version of your entry from your weblog and continue working on it, wherever you are. WLW does the synchronization for you.

One advantage of a desktop blog application like WLW as compared to web-based applications is that it will allow you to compose entries even without an Internet connection. You don’t have to be online all the time. So even if you’re on the go, you can still write something for your blog. You can then publish the draft to your blog when an Internet connection becomes available. This is very handy when you’re travelling. 

I have just started exploring the capabilities of WLW Beta 2. In fact, this is my first post using the new version. Upgrading to this version did not introduce any problem at all. After downloading, the upgrade went smoothly. It even detected my previous weblog settings.

Till next post.