Voice Out mobile app update

My Voice Out mobile app series has been updated to version 1.10!

It contains some bug fixes, UI enhancements  and supports the following:

– Stop function
– Pause function *
– Seek function *
– Receive text from other apps **
– Extract text from web page automatically if an Web URL is sent to the app **

* by paragraph only
** not available on the small app version

The current Android TTS doesn’t support “pause” so I used an alternative way to “pause” the playback by paragraph. The app will automatically highlight the paragraph read and if you press the pause button the reading will pause there.

The stop function is just a basic stop function that moves the play head back to the beginning of the text.

I also added some status message to function as feedback.

Download on Google Play:

Voice Out Small App for Sony Devices:

Voice Out for generic Android Devices (Ad-supported)

Voice Out Pro for generic Android Devices (Ad-free)




Camera Attachment Case for Xperia Z Ultra (SPA-ACX3)

This custom hard case allows Xperia Z Ultra owners to easily mount a QX10 or QX100 lens-style camera and comes in black and white colours. I bought it from the Hong Kong Sony Store for HK$238.

SPA-ACX3 Packaging
SPA-ACX3 Packaging
SPA-ACX3 installed on Xperia Z Ultra
SPA-ACX3 installed on Xperia Z Ultra
Close-up shot
Close-up shot. The case fits really well on the Z Ultra.
SPA-ACX3 with QX100
SPA-ACX3 with QX100, looks like an high-end SLR but is not :)
SPA-ACX3 with QX100
SPA-ACX3 with QX100 (Top side)

SQL Server Jobs with SSIS packages – Failed to decrypt protected XML node “DTS:Password” with error 0x8009000B

If you ever encounter this error on SQL Server while you’re trying to create a job to execute a SSIS package, is because the SQL Server can’t decrypt the password stored in your SSIS package.

What happened with me is the user account that signed the sensitive data of the SSIS (default option) is different from the one that runs it.

I created a SSIS with an account X and then tried to create a schedule job to run it. However the SQL Server provided for me only runs the schedule jobs with the SQL Server Agent account.


There is a ProtectionLevel option in SSIS to save the sensitive data such as DB connection passwords and the default setting is “EncryptSensitiveWithUserKey”.

Change that to “EncryptSensitiveWithPassword” and enter the password such as “somepassword”

On the SQL Server Agent Job Step, go to the Command Line tab and add the option /DECRYPT somepassword

For example:
/FILE "\"C:\SSIS\Package.dtsx\"" /DECRYPT somepassword /CHECKPOINTING OFF /REPORTING E

Sony Small Apps runOnUiThread

The Activity class is used to implement an application which has GUI. However, if you use SmallApplication class for implementation, you can launch the application as a Small Apps. According to the Sony API Reference, the SmallApplication class is similar to the Android Activity class but it doesn’t have the runOnUiThread method.

So let’s implement it:

package com.rosaneng.test;

import android.os.Handler;
import com.sony.smallapp.SmallApplication;

public class MainApplication extends SmallApplication {

public Handler handler;

public void onCreate() {
handler = new Handler();
private void runOnUiThread(Runnable runnable) {

DIY NFC Speaker

With a NFC sticker and proper software you can turn your old Bluetooth speaker into a NFC enabled one.

For this demonstration I used a NFC sticker that I got from TaoBao.

Cantonese Text to Speech on Android

Google puts a tremendous amount of work into its voice-synthesis technology, however for Chinese, the Android phones currently only can synthesize Putonghua. Google doesn’t support Cantonese yet but with some third party application, we can make our phones to “read aloud” Cantonese.

1. Install Ekho TTS Cantonese


QR Code:

2.  Go to Settings -> System -> Accessibility


3. In Text-to-speech output, select Ekho TTS Cantonese as your preferred engine. You can adjust some options here such as the speech rate and voice pitch


4. Install Voice Out Simple TTS Client – There are other TTS clients that should work with Ekho too but I made this one for myself :)


QR Code:

5. Launch the Voice Out app, copy & paste some Chinese text on it and click on the play icon! (Remember to turn up the volume)