<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3495850987092400387</id><updated>2011-12-29T08:58:45.294-08:00</updated><category term='Exchange Server'/><category term='Book Reviews'/><category term='jobs'/><category term='Personal Development'/><category term='BlackBerry Development'/><category term='Linux'/><category term='Software Development'/><title type='text'>ImAlittleBird's Technical Blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://yingliucatherine.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3495850987092400387/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://yingliucatherine.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Catherine</name><uri>http://www.blogger.com/profile/03276595344381555760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>24</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3495850987092400387.post-385062884676084240</id><published>2011-12-21T07:38:00.000-08:00</published><updated>2011-12-28T14:36:46.510-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Development'/><title type='text'>Android Development</title><content type='html'>&lt;div&gt;I have been getting familiar with the Android Development lately with the help of PhoneGap. Just want to share a simple app integrating with the native Android OS. The application has the simple functionality as creating contacts, removing contacts and looking for contacts. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I ran into some configuration issues in the beginning, but after reading the article: http://simonmacdonald.blogspot.com/2011/09/saving-contacts-with-phonegap-android.html, my setting issues are resolved. Thanks to Simon.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Codes in index.html:&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;&lt;pre&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;lt;html&amp;gt;&lt;/div&gt;&lt;div&gt;  &amp;lt;head&amp;gt;&lt;/div&gt;&lt;div&gt;  &amp;lt;title&amp;gt;&amp;lt;/title&amp;gt;&lt;/div&gt;&lt;div&gt;    &amp;lt;meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no;" /&amp;gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&amp;lt;meta charset="utf-8"&amp;gt;&lt;/div&gt;&lt;div&gt;    &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&amp;lt;script type="text/javascript"&amp;gt;&lt;/div&gt;&lt;div&gt;          &lt;/div&gt;&lt;div&gt;          function onBodyLoad()&lt;/div&gt;&lt;div&gt;          {&lt;/div&gt;&lt;div&gt;          &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;document.addEventListener("deviceready",onDeviceReady,false);&lt;/div&gt;&lt;div&gt;          }&lt;/div&gt;&lt;div&gt;          &lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;/* When this function is called, PhoneGap has been initialized and is ready to roll */&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;function onDeviceReady()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;console.log("PhoneGap is working")&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;} &lt;/div&gt;&lt;div&gt;        &lt;/div&gt;&lt;div&gt;    function createContact(firstName, lastName) &lt;/div&gt;&lt;div&gt;    {&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;        // create a new contact object&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;var contact = navigator.contacts.create();&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;contact.displayName = "Plumber";&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;contact.nickname = "Plumber";       //specify both to support all devices&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;// populate some fields&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;var name = new ContactName();&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;name.givenName = firstName.value;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;name.familyName = lastName.value;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;contact.name = name;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;// save to device&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;contact.save(onSuccess,onError);&lt;/div&gt;&lt;div&gt;    }&lt;/div&gt;&lt;div&gt;    &lt;/div&gt;&lt;div&gt;    function onSuccess(contact)&lt;/div&gt;&lt;div&gt;    {&lt;/div&gt;&lt;div&gt;    &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;alert("Save Success");&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;};&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;function onError(contactError)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;    &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;alert("Error = " + contactError.code);&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;};&lt;/div&gt;&lt;div&gt;        &lt;/div&gt;&lt;div&gt;        function onFindSuccess(contacts)&lt;/div&gt;&lt;div&gt;    {&lt;/div&gt;&lt;div&gt;    &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;alert("Find Success");&lt;/div&gt;&lt;div&gt;    &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt; var string="";&lt;/div&gt;&lt;div&gt;    &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt; for (var i=0; i&amp;lt;contacts.length; i++) {&lt;/div&gt;&lt;div&gt;            string = string + contacts[i].name.givenName + " " +contacts[i].name.familyName + "\n";&lt;/div&gt;&lt;div&gt;        }&lt;/div&gt;&lt;div&gt;        alert(string);&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;};&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;function onFindError(contactError)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;    &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;alert("Find Error = " + contactError.code);&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;};&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;        function findContact()&lt;/div&gt;&lt;div&gt;        {&lt;/div&gt;&lt;div&gt;        &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;// specify contact search criteria&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;var options = new ContactFindOptions();&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;options.filter="";          // empty search string returns all contacts&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;options.multiple=true;      // return multiple results&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;filter = ["name"];   // return contact.name field&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;// find contacts&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;navigator.contacts.find(filter, onFindSuccess, onFindError, options);&lt;/div&gt;&lt;div&gt;        }&lt;/div&gt;&lt;div&gt;        &lt;/div&gt;&lt;div&gt;        function removeContact(removeFirstName, removeLastName){&lt;/div&gt;&lt;div&gt;        &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;options = new ContactFindOptions();&lt;/div&gt;&lt;div&gt;  &lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;//options.filter=removeFirstName.value;&lt;/div&gt;&lt;div&gt;  &lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;options.filter=removeFirstName.value;&lt;/div&gt;&lt;div&gt;        &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;navigator.contacts.find(["name.givenName","displayName"], onRemoveFindSuccess, onFindError, options);&lt;/div&gt;&lt;div&gt;        }&lt;/div&gt;&lt;div&gt;        &lt;/div&gt;&lt;div&gt;        function onRemoveFindSuccess(contacts)&lt;/div&gt;&lt;div&gt;        {&lt;/div&gt;&lt;div&gt;        &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;contacts[0].remove(removeFindSuccess, removeFindError);&lt;/div&gt;&lt;div&gt;        }&lt;/div&gt;&lt;div&gt;        &lt;/div&gt;&lt;div&gt;        function removeFindSuccess()&lt;/div&gt;&lt;div&gt;        {&lt;/div&gt;&lt;div&gt;        &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;alert("Contact removed.");&lt;/div&gt;&lt;div&gt;        }&lt;/div&gt;&lt;div&gt;        &lt;/div&gt;&lt;div&gt;        function removeFindError(error)&lt;/div&gt;&lt;div&gt;        {&lt;/div&gt;&lt;div&gt;        &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;alert("Remove Error: " +error)&lt;/div&gt;&lt;div&gt;        }&lt;/div&gt;&lt;div&gt;        &lt;/div&gt;&lt;div&gt;    &amp;lt;/script&amp;gt;&lt;/div&gt;&lt;div&gt;  &amp;lt;/head&amp;gt;&lt;/div&gt;&lt;div&gt;  &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&amp;lt;body  onload="onBodyLoad()"&amp;gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&amp;lt;ol&amp;gt;&lt;/div&gt;&lt;div&gt;       &amp;lt;p&amp;gt; Welcome to index.html &amp;lt;/p&amp;gt;&lt;/div&gt;&lt;div&gt;       &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&amp;lt;p&amp;gt; First Name: &amp;lt;/p&amp;gt;&lt;/div&gt;&lt;div&gt;       &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&amp;lt;input type="text" name="firstName" id="firstName" value=""/&amp;gt;&lt;/div&gt;&lt;div&gt;       &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&amp;lt;p&amp;gt; Last Name: &amp;lt;/p&amp;gt;&lt;/div&gt;&lt;div&gt;       &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&amp;lt;input type="text" name="lastName" id="lastName" value=""/&amp;gt;&lt;/div&gt;&lt;div&gt;        &amp;lt;button onclick="createContact(firstName, lastName);"&amp;gt;Add Contact&amp;lt;/button&amp;gt;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;div&gt;        &amp;lt;button onclick="findContact();"&amp;gt;Find Contact&amp;lt;/button&amp;gt;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;div&gt;        &amp;lt;p&amp;gt; First Name: &amp;lt;/p&amp;gt;&lt;/div&gt;&lt;div&gt;        &amp;lt;input type="text" name="removeFirstName" id="removeFirstName" value=""/&amp;gt;&lt;/div&gt;&lt;div&gt;    &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&amp;lt;button onclick="removeContact(removeFirstName,removeLastName);"&amp;gt;Remove Contact&amp;lt;/button&amp;gt; &amp;lt;br&amp;gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&amp;lt;/ol&amp;gt;&lt;/div&gt;&lt;div&gt;  &amp;lt;/body&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;lt;/html&amp;gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;  &lt;/div&gt;&lt;div&gt;  &lt;title&gt;&lt;/title&gt;&lt;/div&gt;&lt;div&gt;    &lt;meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no;"&gt;&lt;/div&gt;&lt;div&gt;Enjoy!&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3495850987092400387-385062884676084240?l=yingliucatherine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yingliucatherine.blogspot.com/feeds/385062884676084240/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yingliucatherine.blogspot.com/2011/12/android-development.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3495850987092400387/posts/default/385062884676084240'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3495850987092400387/posts/default/385062884676084240'/><link rel='alternate' type='text/html' href='http://yingliucatherine.blogspot.com/2011/12/android-development.html' title='Android Development'/><author><name>Catherine</name><uri>http://www.blogger.com/profile/03276595344381555760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3495850987092400387.post-2915097914856742416</id><published>2011-04-27T11:25:00.000-07:00</published><updated>2011-04-27T11:26:10.588-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BlackBerry Development'/><title type='text'>BES-Push: Setup Trusted Connections to BlackBerry MDS</title><content type='html'>&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:trackmoves/&gt;   &lt;w:trackformatting/&gt;   &lt;w:punctuationkerning/&gt;   &lt;w:validateagainstschemas/&gt;   &lt;w:saveifxmlinvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:ignoremixedcontent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:alwaysshowplaceholdertext&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:donotpromoteqf/&gt;   &lt;w:lidthemeother&gt;EN-CA&lt;/w:LidThemeOther&gt;   &lt;w:lidthemeasian&gt;ZH-CN&lt;/w:LidThemeAsian&gt;   &lt;w:lidthemecomplexscript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;   &lt;w:compatibility&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:dontgrowautofit/&gt;    &lt;w:splitpgbreakandparamark/&gt;    &lt;w:dontvertaligncellwithsp/&gt;    &lt;w:dontbreakconstrainedforcedtables/&gt;    &lt;w:dontvertalignintxbx/&gt;    &lt;w:word11kerningpairs/&gt;    &lt;w:cachedcolbalance/&gt;    &lt;w:usefelayout/&gt;   &lt;/w:Compatibility&gt;   &lt;m:mathpr&gt;    &lt;m:mathfont val="Cambria Math"&gt;    &lt;m:brkbin val="before"&gt;    &lt;m:brkbinsub val="&amp;#45;-"&gt;    &lt;m:smallfrac val="off"&gt;    &lt;m:dispdef/&gt;    &lt;m:lmargin val="0"&gt;    &lt;m:rmargin val="0"&gt;    &lt;m:defjc val="centerGroup"&gt;    &lt;m:wrapindent val="1440"&gt;    &lt;m:intlim val="subSup"&gt;    &lt;m:narylim val="undOvr"&gt;   &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:latentstyles deflockedstate="false" defunhidewhenused="true" defsemihidden="true" defqformat="false" defpriority="99" latentstylecount="267"&gt;   &lt;w:lsdexception locked="false" priority="0" semihidden="false" unhidewhenused="false" qformat="true" name="Normal"&gt;   &lt;w:lsdexception locked="false" priority="9" semihidden="false" unhidewhenused="false" qformat="true" name="heading 1"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 2"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 3"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 4"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 5"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 6"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 7"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 8"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 9"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 1"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 2"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 3"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 4"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 5"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 6"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 7"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 8"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 9"&gt;   &lt;w:lsdexception locked="false" priority="35" qformat="true" name="caption"&gt;   &lt;w:lsdexception locked="false" priority="10" semihidden="false" unhidewhenused="false" qformat="true" name="Title"&gt;   &lt;w:lsdexception locked="false" priority="1" name="Default Paragraph Font"&gt;   &lt;w:lsdexception locked="false" priority="11" semihidden="false" unhidewhenused="false" qformat="true" name="Subtitle"&gt;   &lt;w:lsdexception locked="false" priority="22" semihidden="false" unhidewhenused="false" qformat="true" name="Strong"&gt;   &lt;w:lsdexception locked="false" priority="20" semihidden="false" unhidewhenused="false" qformat="true" name="Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="59" semihidden="false" unhidewhenused="false" name="Table Grid"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Placeholder Text"&gt;   &lt;w:lsdexception locked="false" priority="1" semihidden="false" unhidewhenused="false" qformat="true" name="No Spacing"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Revision"&gt;   &lt;w:lsdexception locked="false" priority="34" semihidden="false" unhidewhenused="false" qformat="true" name="List Paragraph"&gt;   &lt;w:lsdexception locked="false" priority="29" semihidden="false" unhidewhenused="false" qformat="true" name="Quote"&gt;   &lt;w:lsdexception locked="false" priority="30" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Quote"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="19" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="21" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="31" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Reference"&gt;   &lt;w:lsdexception locked="false" priority="32" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Reference"&gt;   &lt;w:lsdexception locked="false" priority="33" semihidden="false" unhidewhenused="false" qformat="true" name="Book Title"&gt;   &lt;w:lsdexception locked="false" priority="37" name="Bibliography"&gt;   &lt;w:lsdexception locked="false" priority="39" qformat="true" name="TOC Heading"&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable  {mso-style-name:"Table Normal";  mso-tstyle-rowband-size:0;  mso-tstyle-colband-size:0;  mso-style-noshow:yes;  mso-style-priority:99;  mso-style-qformat:yes;  mso-style-parent:"";  mso-padding-alt:0cm 5.4pt 0cm 5.4pt;  mso-para-margin-top:0cm;  mso-para-margin-right:0cm;  mso-para-margin-bottom:10.0pt;  mso-para-margin-left:0cm;  line-height:115%;  mso-pagination:widow-orphan;  font-size:11.0pt;  font-family:"Calibri","sans-serif";  mso-ascii-font-family:Calibri;  mso-ascii-theme-font:minor-latin;  mso-hansi-font-family:Calibri;  mso-hansi-theme-font:minor-latin;  mso-bidi-font-family:"Times New Roman";  mso-bidi-theme-font:minor-bidi;} &lt;/style&gt; &lt;![endif]--&gt;  &lt;p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; line-height:normal;mso-outline-level:2"&gt;&lt;span style="font-size:12.0pt; font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;"&gt;To permit push applications to make trusted connections (SSL) to a BlackBerry MDS Connection Service, some preparation steps are required to be done beforehand. Follow the setup procedure as follows:&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpFirst" style="mso-margin-top-alt:auto;mso-margin-bottom-alt: auto;mso-add-space:auto;text-indent:-18.0pt;line-height:normal;mso-outline-level: 2;mso-list:l0 level1 lfo1"&gt;&lt;span style="font-size:12.0pt; font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;"&gt;&lt;span style="mso-list:Ignore"&gt;1.&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;     &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;"&gt;Enable Push Encryption from the BlackBerry Administration Service&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpMiddle" style="mso-margin-top-alt:auto;mso-margin-bottom-alt: auto;margin-left:72.0pt;mso-add-space:auto;text-indent:-18.0pt;line-height: normal;mso-outline-level:2;mso-list:l0 level2 lfo1"&gt;&lt;span style="font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:Symbol; mso-bidi-font-family:Symbol"&gt;&lt;span style="mso-list:Ignore"&gt;·&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;"&gt;Open the BlackBerry Administration Service Web Console&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpMiddle" style="mso-margin-top-alt:auto;mso-margin-bottom-alt: auto;margin-left:72.0pt;mso-add-space:auto;text-indent:-18.0pt;line-height: normal;mso-outline-level:2;mso-list:l0 level2 lfo1"&gt;&lt;span style="font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:Symbol; mso-bidi-font-family:Symbol"&gt;&lt;span style="mso-list:Ignore"&gt;·&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;"&gt;Go to “Servers and Components” section&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpMiddle" style="mso-margin-top-alt:auto;mso-margin-bottom-alt: auto;margin-left:72.0pt;mso-add-space:auto;text-indent:-18.0pt;line-height: normal;mso-outline-level:2;mso-list:l0 level2 lfo1"&gt;&lt;span style="font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:Symbol; mso-bidi-font-family:Symbol"&gt;&lt;span style="mso-list:Ignore"&gt;·&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;"&gt;Expand “BlackBerry Solution Topology”&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpMiddle" style="mso-margin-top-alt:auto;mso-margin-bottom-alt: auto;margin-left:72.0pt;mso-add-space:auto;text-indent:-18.0pt;line-height: normal;mso-outline-level:2;mso-list:l0 level2 lfo1"&gt;&lt;span style="font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:Symbol; mso-bidi-font-family:Symbol"&gt;&lt;span style="mso-list:Ignore"&gt;·&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;"&gt;Expand “Component View” under “BlackBerry Domain”&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpMiddle" style="mso-margin-top-alt:auto;mso-margin-bottom-alt: auto;margin-left:72.0pt;mso-add-space:auto;text-indent:-18.0pt;line-height: normal;mso-outline-level:2;mso-list:l0 level2 lfo1"&gt;&lt;span style="font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:Symbol; mso-bidi-font-family:Symbol"&gt;&lt;span style="mso-list:Ignore"&gt;·&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;"&gt;Expand “MDS Connection Service”&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpMiddle" style="mso-margin-top-alt:auto;mso-margin-bottom-alt: auto;margin-left:72.0pt;mso-add-space:auto;text-indent:-18.0pt;line-height: normal;mso-outline-level:2;mso-list:l0 level2 lfo1"&gt;&lt;span style="font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:Symbol; mso-bidi-font-family:Symbol"&gt;&lt;span style="mso-list:Ignore"&gt;·&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;"&gt;Click on the MDS instance to which your push application is connected&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpMiddle" style="mso-margin-top-alt:auto;mso-margin-bottom-alt: auto;margin-left:72.0pt;mso-add-space:auto;text-indent:-18.0pt;line-height: normal;mso-outline-level:2;mso-list:l0 level2 lfo1"&gt;&lt;span class="normaltitle"&gt;&lt;span style="font-size:12.0pt;font-family:Symbol;mso-fareast-font-family: Symbol;mso-bidi-font-family:Symbol"&gt;&lt;span style="mso-list:Ignore"&gt;·&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;"&gt;In the “Instance information” tab, make sure the port number which the BlackBerry devices open to listen to the push messages is defined under the “&lt;span class="normaltitle"&gt;Ports enabled for reliable pushes” section&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpMiddle" style="mso-margin-top-alt:auto;mso-margin-bottom-alt: auto;margin-left:72.0pt;mso-add-space:auto;text-indent:-18.0pt;line-height: normal;mso-outline-level:2;mso-list:l0 level2 lfo1"&gt;&lt;span class="normaltitle"&gt;&lt;span style="font-size:12.0pt;font-family:Symbol;mso-fareast-font-family: Symbol;mso-bidi-font-family:Symbol"&gt;&lt;span style="mso-list:Ignore"&gt;·&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;"&gt;In the “Instance information” tab, enable “Push Encryption” under the “Access Control” section by setting the value to “Yes”&lt;span class="normaltitle"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpMiddle" style="mso-margin-top-alt:auto;mso-margin-bottom-alt: auto;margin-left:72.0pt;mso-add-space:auto;text-indent:-18.0pt;line-height: normal;mso-outline-level:2;mso-list:l0 level2 lfo1"&gt;&lt;span style="font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:Symbol; mso-bidi-font-family:Symbol"&gt;&lt;span style="mso-list:Ignore"&gt;·&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="normaltitle"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;"&gt;Switch to the “General” tab, make sure the “&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt; font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;"&gt;Web server listen port” and “&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;"&gt;Web server SSL listen port” are defined and there are no conflicts with the port numbers&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpMiddle" style="mso-margin-top-alt:auto;mso-margin-bottom-alt: auto;margin-left:72.0pt;mso-add-space:auto;text-indent:-18.0pt;line-height: normal;mso-outline-level:2;mso-list:l0 level2 lfo1"&gt;&lt;span style="font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:Symbol; mso-bidi-font-family:Symbol"&gt;&lt;span style="mso-list:Ignore"&gt;·&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;"&gt;Restart the MDS-CS instance&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpMiddle" style="mso-margin-top-alt:auto;mso-margin-bottom-alt: auto;margin-left:72.0pt;mso-add-space:auto;text-indent:-18.0pt;line-height: normal;mso-outline-level:2;mso-list:l0 level2 lfo1"&gt;&lt;span style="font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:Symbol; mso-bidi-font-family:Symbol"&gt;&lt;span style="mso-list:Ignore"&gt;·&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;"&gt;Notes: More information is available at: &lt;/span&gt;&lt;a href="http://docs.blackberry.com/en/admin/deliverables/12107/Restricting_push_content_users_receive_on_devices_268662_11.jsp#Restrict_push_apps_from_sending_data_to_devices_547121_11"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;"&gt;http://docs.blackberry.com/en/admin/deliverables/12107/Restricting_push_content_users_receive_on_devices_268662_11.jsp#Restrict_push_apps_from_sending_data_to_devices_547121_11&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpMiddle" style="mso-margin-top-alt:auto;mso-margin-bottom-alt: auto;margin-left:72.0pt;mso-add-space:auto;line-height:normal;mso-outline-level: 2"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;"&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpMiddle" style="mso-margin-top-alt:auto;mso-margin-bottom-alt: auto;margin-left:72.0pt;mso-add-space:auto;line-height:normal;mso-outline-level: 2"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;"&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpMiddle" style="mso-margin-top-alt:auto;mso-margin-bottom-alt: auto;mso-add-space:auto;text-indent:-18.0pt;line-height:normal;mso-outline-level: 2;mso-list:l0 level1 lfo1"&gt;&lt;span style="font-size:12.0pt; font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;"&gt;&lt;span style="mso-list:Ignore"&gt;2.&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;     &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;"&gt;Import the BlackBerry MDS Connection Service to the key store of a push application by following this instruction:&lt;a name="ph_cf_12380303671090"&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpMiddle" style="mso-margin-top-alt:auto;mso-margin-bottom-alt: auto;margin-left:72.0pt;mso-add-space:auto;text-indent:-18.0pt;line-height: normal;mso-outline-level:2;mso-list:l0 level2 lfo1"&gt;&lt;span style="font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:Symbol; mso-bidi-font-family:Symbol"&gt;&lt;span style="mso-list:Ignore"&gt;·&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;a href="http://docs.blackberry.com/en/admin/deliverables/12107/Allowing_push_apps_trusted_connections_to_MDSCS_268652_11.jsp"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;"&gt;http://docs.blackberry.com/en/admin/deliverables/12107/Allowing_push_apps_trusted_connections_to_MDSCS_268652_11.jsp&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpMiddle" style="mso-margin-top-alt:auto;mso-margin-bottom-alt: auto;margin-left:72.0pt;mso-add-space:auto;text-indent:-18.0pt;line-height: normal;mso-outline-level:2;mso-list:l0 level2 lfo1"&gt;&lt;span style="font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:Symbol; mso-bidi-font-family:Symbol"&gt;&lt;span style="mso-list:Ignore"&gt;·&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;"&gt;Notes: &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpMiddle" style="mso-margin-top-alt:auto;mso-margin-bottom-alt: auto;margin-left:108.0pt;mso-add-space:auto;text-indent:-108.0pt;mso-text-indent-alt: -9.0pt;line-height:normal;mso-outline-level:2;mso-list:l0 level3 lfo1"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;"&gt;&lt;span style="mso-list:Ignore"&gt;&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;                                                    &lt;/span&gt;i.&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;     &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;"&gt;For the last part in the instruction, which is to import the certificate to the push application, make sure the certificate is imported to the key store of the Java JRE which is being used by your push application&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpMiddle" style="mso-margin-top-alt:auto;mso-margin-bottom-alt: auto;margin-left:108.0pt;mso-add-space:auto;text-indent:-108.0pt;mso-text-indent-alt: -9.0pt;line-height:normal;mso-outline-level:2;mso-list:l0 level3 lfo1"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;"&gt;&lt;span style="mso-list:Ignore"&gt;&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;                                                  &lt;/span&gt;ii.&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;     &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;"&gt;In the step of adding the certificate to the key store, make sure you have the permission to change the key store file&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpLast" style="mso-margin-top-alt:auto;mso-margin-bottom-alt: auto;margin-left:108.0pt;mso-add-space:auto;text-indent:-108.0pt;mso-text-indent-alt: -9.0pt;line-height:normal;mso-outline-level:2;mso-list:l0 level3 lfo1"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;"&gt;&lt;span style="mso-list:Ignore"&gt;&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;                                                &lt;/span&gt;iii.&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;     &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;"&gt;If the certificate is not correctly imported, a similar error will be thrown as “&lt;span style="color:black"&gt;Unable to find valid certification path to requested target&lt;/span&gt;”&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size:12.0pt;line-height:115%;font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;"&gt;Now the push application is able to send SSL push request to the BlackBerry devices through MDS. &lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3495850987092400387-2915097914856742416?l=yingliucatherine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yingliucatherine.blogspot.com/feeds/2915097914856742416/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yingliucatherine.blogspot.com/2011/04/bes-push-setup-trusted-connections-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3495850987092400387/posts/default/2915097914856742416'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3495850987092400387/posts/default/2915097914856742416'/><link rel='alternate' type='text/html' href='http://yingliucatherine.blogspot.com/2011/04/bes-push-setup-trusted-connections-to.html' title='BES-Push: Setup Trusted Connections to BlackBerry MDS'/><author><name>Catherine</name><uri>http://www.blogger.com/profile/03276595344381555760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3495850987092400387.post-1345120064526217781</id><published>2011-04-12T14:38:00.000-07:00</published><updated>2011-04-12T15:31:17.679-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BlackBerry Development'/><title type='text'>BlackBerry BIS Push Samples</title><content type='html'>&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:trackmoves/&gt;   &lt;w:trackformatting/&gt;   &lt;w:punctuationkerning/&gt;   &lt;w:validateagainstschemas/&gt;   &lt;w:saveifxmlinvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:ignoremixedcontent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:alwaysshowplaceholdertext&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:donotpromoteqf/&gt;   &lt;w:lidthemeother&gt;EN-CA&lt;/w:LidThemeOther&gt;   &lt;w:lidthemeasian&gt;ZH-CN&lt;/w:LidThemeAsian&gt;   &lt;w:lidthemecomplexscript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;   &lt;w:compatibility&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:dontgrowautofit/&gt;    &lt;w:splitpgbreakandparamark/&gt;    &lt;w:dontvertaligncellwithsp/&gt;    &lt;w:dontbreakconstrainedforcedtables/&gt;    &lt;w:dontvertalignintxbx/&gt;    &lt;w:word11kerningpairs/&gt;    &lt;w:cachedcolbalance/&gt;    &lt;w:usefelayout/&gt;   &lt;/w:Compatibility&gt;   &lt;m:mathpr&gt;    &lt;m:mathfont val="Cambria Math"&gt;    &lt;m:brkbin val="before"&gt;    &lt;m:brkbinsub val="&amp;#45;-"&gt;    &lt;m:smallfrac val="off"&gt;    &lt;m:dispdef/&gt;    &lt;m:lmargin val="0"&gt;    &lt;m:rmargin val="0"&gt;    &lt;m:defjc val="centerGroup"&gt;    &lt;m:wrapindent val="1440"&gt;    &lt;m:intlim val="subSup"&gt;    &lt;m:narylim val="undOvr"&gt;   &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:latentstyles deflockedstate="false" defunhidewhenused="true" defsemihidden="true" defqformat="false" defpriority="99" latentstylecount="267"&gt;   &lt;w:lsdexception locked="false" priority="0" semihidden="false" unhidewhenused="false" qformat="true" name="Normal"&gt;   &lt;w:lsdexception locked="false" priority="9" semihidden="false" unhidewhenused="false" qformat="true" name="heading 1"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 2"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 3"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 4"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 5"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 6"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 7"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 8"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 9"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 1"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 2"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 3"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 4"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 5"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 6"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 7"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 8"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 9"&gt;   &lt;w:lsdexception locked="false" priority="35" qformat="true" name="caption"&gt;   &lt;w:lsdexception locked="false" priority="10" semihidden="false" unhidewhenused="false" qformat="true" name="Title"&gt;   &lt;w:lsdexception locked="false" priority="1" name="Default Paragraph Font"&gt;   &lt;w:lsdexception locked="false" priority="11" semihidden="false" unhidewhenused="false" qformat="true" name="Subtitle"&gt;   &lt;w:lsdexception locked="false" priority="22" semihidden="false" unhidewhenused="false" qformat="true" name="Strong"&gt;   &lt;w:lsdexception locked="false" priority="20" semihidden="false" unhidewhenused="false" qformat="true" name="Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="59" semihidden="false" unhidewhenused="false" name="Table Grid"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Placeholder Text"&gt;   &lt;w:lsdexception locked="false" priority="1" semihidden="false" unhidewhenused="false" qformat="true" name="No Spacing"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Revision"&gt;   &lt;w:lsdexception locked="false" priority="34" semihidden="false" unhidewhenused="false" qformat="true" name="List Paragraph"&gt;   &lt;w:lsdexception locked="false" priority="29" semihidden="false" unhidewhenused="false" qformat="true" name="Quote"&gt;   &lt;w:lsdexception locked="false" priority="30" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Quote"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="19" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="21" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="31" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Reference"&gt;   &lt;w:lsdexception locked="false" priority="32" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Reference"&gt;   &lt;w:lsdexception locked="false" priority="33" semihidden="false" unhidewhenused="false" qformat="true" name="Book Title"&gt;   &lt;w:lsdexception locked="false" priority="37" name="Bibliography"&gt;   &lt;w:lsdexception locked="false" priority="39" qformat="true" name="TOC Heading"&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable  {mso-style-name:"Table Normal";  mso-tstyle-rowband-size:0;  mso-tstyle-colband-size:0;  mso-style-noshow:yes;  mso-style-priority:99;  mso-style-qformat:yes;  mso-style-parent:"";  mso-padding-alt:0cm 5.4pt 0cm 5.4pt;  mso-para-margin-top:0cm;  mso-para-margin-right:0cm;  mso-para-margin-bottom:10.0pt;  mso-para-margin-left:0cm;  line-height:115%;  mso-pagination:widow-orphan;  font-size:11.0pt;  font-family:"Calibri","sans-serif";  mso-ascii-font-family:Calibri;  mso-ascii-theme-font:minor-latin;  mso-hansi-font-family:Calibri;  mso-hansi-theme-font:minor-latin;  mso-bidi-font-family:"Times New Roman";  mso-bidi-theme-font:minor-bidi;} &lt;/style&gt; &lt;![endif]--&gt;    &lt;p class="MsoListParagraphCxSpMiddle" style="text-indent: -18pt; text-align: left;"&gt;The BlackBerry Push Service is a powerful tool of the real-time experience of BlackBerry smartphones. It offers an  efficient and reliable way of sending information to your users. It  also allows your application to process information in the background  and alert users.&lt;/p&gt;&lt;p class="MsoListParagraphCxSpMiddle" style="text-indent: -18pt; text-align: left;"&gt;RIM provided some sample push applications for both the BES and BIS cases. Since BIS case is more complicated, I will elaborate the procedure here in this post. I will also mention some frequent problems the developers experienced and the solutions or workarounds for those issues.&lt;br /&gt;&lt;span style=";font-family:Calibri;" &gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoListParagraphCxSpMiddle" style="text-indent: -18pt; text-align: left;"&gt;&lt;span style="mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin; mso-bidi-mso-bidi-theme-font:minor-latinfont-family:Calibri;" &gt;&lt;span style="mso-list:Ignore"&gt;1.&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Install and configure a MySQL database following this instruction:    &lt;a href="http://docs.blackberry.com/en/developers/deliverables/24182/Installing_MySQL_in_Windows_1241571_11.jsp"&gt;http://docs.blackberry.com/en/developers/deliverables/24182/Installing_MySQL_in_Windows_1241571_11.jsp&lt;/a&gt;&lt;/p&gt;&lt;p class="MsoListParagraphCxSpMiddle" style="text-indent: -18pt; text-align: left;"&gt;&lt;span style="mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin; mso-bidi-mso-bidi-theme-font:minor-latinfont-family:Calibri;" &gt;&lt;span style="mso-list:Ignore"&gt;&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;             &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;2. Download JDBC driver following this instruction:&lt;/p&gt;&lt;div&gt;    &lt;/div&gt;&lt;p class="MsoListParagraphCxSpMiddle" style="text-indent: -18pt; text-align: center;"&gt;&lt;a href="http://docs.blackberry.com/en/developers/deliverables/24182/Download_JDBC_driver_for_MySQL_1220461_11.jsp"&gt;http://docs.blackberry.com/en/developers/deliverables/24182/Download_JDBC_driver_for_MySQL_1220461_11.jsp&lt;/a&gt;&lt;span style=";font-family:Calibri;" &gt;&lt;span style=""&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoListParagraphCxSpMiddle" style="text-indent:-18.0pt;mso-list:l2 level1 lfo1"&gt;&lt;span style="mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin; mso-bidi-mso-bidi-theme-font:minor-latinfont-family:Calibri;" &gt;&lt;span style="mso-list:Ignore"&gt;      3.&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Install the BlackBerry Push SDK following this instruction:&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;a href="http://docs.blackberry.com/en/developers/deliverables/24182/Run_the_BPSS_setup_application_1229036_11.jsp"&gt;http://docs.blackberry.com/en/developers/deliverables/24182/Run_the_BPSS_setup_application_1229036_11.jsp&lt;/a&gt;&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpMiddle" style="text-indent:-18.0pt;mso-list:l2 level1 lfo1"&gt;&lt;span style="mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin; mso-bidi-mso-bidi-theme-font:minor-latinfont-family:Calibri;" &gt;&lt;span style="mso-list:Ignore"&gt;      4.&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Verify the push server is setup correctly following this instruction:&lt;/p&gt;    &lt;p class="MsoListParagraphCxSpMiddle" style="text-indent: -18pt;"&gt;&lt;a href="http://docs.blackberry.com/en/developers/deliverables/24182/Verifying_that_push_server_configured_correctly_1227911_11.jsp"&gt;http://docs.blackberry.com/en/developers/deliverables/24182/Verifying_that_push_server_configured_correctly_1227911_11.jsp&lt;/a&gt;&lt;span style=";font-family:Calibri;" &gt;&lt;span style=""&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoListParagraphCxSpMiddle" style="text-indent: -18pt;"&gt;&lt;span style="mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin; mso-bidi-mso-bidi-theme-font:minor-latinfont-family:Calibri;" &gt;&lt;span style="mso-list:Ignore"&gt;      5.&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Install the sample push-enabled application on the BlackBerry device following this instruction: &lt;a href="http://docs.blackberry.com/en/developers/deliverables/24182/Install_the_client-side_sample_app_to_device_1015009_11.jsp"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="MsoListParagraphCxSpMiddle" style="text-indent: -18pt; text-align: center;"&gt;&lt;a href="http://docs.blackberry.com/en/developers/deliverables/24182/Install_the_client-side_sample_app_to_device_1015009_11.jsp"&gt;http://docs.blackberry.com/en/developers/deliverables/24182/Install_the_client-side_sample_app_to_device_1015009_11.jsp&lt;/a&gt;&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpMiddle" style="text-indent:-18.0pt;mso-list:l2 level1 lfo1"&gt;&lt;span style="mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin; mso-bidi-mso-bidi-theme-font:minor-latinfont-family:Calibri;" &gt;&lt;span style="mso-list:Ignore"&gt;      6.&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;From Step 5, the settings in the device-side application are:&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpMiddle" style="margin-left:54.0pt;mso-add-space: auto;text-indent:-18.0pt;mso-list:l0 level1 lfo2"&gt;&lt;span style="mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin; mso-bidi-mso-bidi-theme-font:minor-latinfont-family:Calibri;" &gt;&lt;span style="mso-list:Ignore"&gt;(1)&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Port: the push port number in RIM’s registration email &lt;/p&gt;  &lt;p class="MsoListParagraphCxSpMiddle" style="margin-left:54.0pt;mso-add-space: auto;text-indent:-18.0pt;mso-list:l0 level1 lfo2"&gt;&lt;span style="mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin; mso-bidi-mso-bidi-theme-font:minor-latinfont-family:Calibri;" &gt;&lt;span style="mso-list:Ignore"&gt;(2)&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;App ID: the App ID in RIM’s registration email&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpMiddle" style="margin-left:54.0pt;mso-add-space: auto;text-indent:-18.0pt;mso-list:l0 level1 lfo2"&gt;&lt;span style="mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin; mso-bidi-mso-bidi-theme-font:minor-latinfont-family:Calibri;" &gt;&lt;span style="mso-list:Ignore"&gt;(3)&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;BPAS URL: &lt;span style="font-size:85%;"&gt;&lt;u&gt;&lt;span style=" line-height:115%;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-family:&amp;quot;;color:blue;"  &gt;&lt;a href="http://pushapi.eval.blackberry.com/"&gt;http://pushapi.eval.blackberry.com&lt;/a&gt; &lt;/span&gt;&lt;/u&gt;&lt;/span&gt;&lt;span style="line-height:115%;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;font-family:&amp;quot;;font-size:85%;"  &gt;(already defined in the settings)&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpMiddle" style="margin-left:54.0pt;mso-add-space: auto;text-indent:-18.0pt;mso-list:l0 level1 lfo2"&gt;&lt;span style="mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin; mso-bidi-mso-bidi-theme-font:minor-latinfont-family:Calibri;" &gt;&lt;span style="mso-list:Ignore"&gt;(4)&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Content Provider URL: &lt;a href="https://%3cyourlocalhost%3e:8443/sample-push-initiator"&gt;https://&lt;yourlocalhost&gt;:8443/sample-push-initiator&lt;/yourlocalhost&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpMiddle" style="text-indent:-18.0pt;mso-list:l2 level1 lfo1"&gt;&lt;span style="mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin; mso-bidi-mso-bidi-theme-font:minor-latinfont-family:Calibri;" &gt;&lt;span style="mso-list:Ignore"&gt;      7.&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;When you register your device to the push server, if you get an error:&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpMiddle"&gt;Error: &lt;i style="mso-bidi-font-style:normal"&gt;Request to register failed. Caused by java.io.IOException: Network operation [Subscribe] failed. Make sure that Content Provider URL is accessible.&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpMiddle"&gt;Reason: The Content Provider URL is not accessible from the device.&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpMiddle"&gt;Solutions:&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpMiddle" style="margin-left:54.0pt;mso-add-space: auto;text-indent:-18.0pt;mso-list:l1 level1 lfo3"&gt;&lt;span style="mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin; mso-bidi-mso-bidi-theme-font:minor-latinfont-family:Calibri;" &gt;&lt;span style="mso-list:Ignore"&gt;1.&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;First of all, try the content provider url in your device browser, make sure it is accessible.&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpMiddle" style="margin-left:54.0pt;mso-add-space: auto;text-indent:-18.0pt;mso-list:l1 level1 lfo3"&gt;&lt;span style="mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin; mso-bidi-mso-bidi-theme-font:minor-latinfont-family:Calibri;" &gt;&lt;span style="mso-list:Ignore"&gt;2.&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;If it is not accessible, there are some workarounds you can try:&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpMiddle" style="margin-left:90.0pt;mso-add-space: auto;text-indent:-18.0pt;mso-list:l1 level2 lfo3"&gt;&lt;span style="mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin; mso-bidi-mso-bidi-theme-font:minor-latinfont-family:Calibri;" &gt;&lt;span style="mso-list:Ignore"&gt;(1)&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Workaround 1: Make your content provider URL public, for example: https://abcsystems.com:8443/sample-push-initiator &lt;/p&gt;  &lt;p class="MsoListParagraphCxSpMiddle" style="margin-left:90.0pt;mso-add-space: auto;text-indent:-18.0pt;mso-list:l1 level2 lfo3"&gt;&lt;span style="mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin; mso-bidi-mso-bidi-theme-font:minor-latinfont-family:Calibri;" &gt;&lt;span style="mso-list:Ignore"&gt;(2)&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Workaround 2: For development purposes, if your BlackBerry device is registered on BES, you can try the following steps:&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpMiddle" style="margin-left:126.0pt;mso-add-space: auto;text-indent:-126.0pt;mso-text-indent-alt:-9.0pt;mso-list:l1 level3 lfo3"&gt;&lt;span style="mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin; mso-bidi-mso-bidi-theme-font:minor-latinfont-family:Calibri;" &gt;&lt;span style="mso-list:Ignore"&gt;&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;                                                              &lt;/span&gt;i.&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;     &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Step 1: Add the SSL certificate to your MDS following this instruction: &lt;a href="http://www.blackberry.com/btsc/search.do?cmd=displayKC&amp;amp;docType=kc&amp;amp;externalId=KB11623"&gt;http://www.blackberry.com/btsc/search.do?cmd=displayKC&amp;amp;docType=kc&amp;amp;externalId=KB11623&lt;/a&gt;&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpMiddle" style="margin-left:126.0pt;mso-add-space: auto;text-indent:-126.0pt;mso-text-indent-alt:-9.0pt;mso-list:l1 level3 lfo3"&gt;&lt;span style="mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin; mso-bidi-mso-bidi-theme-font:minor-latinfont-family:Calibri;" &gt;&lt;span style="mso-list:Ignore"&gt;&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;                                                             &lt;/span&gt;ii.&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;     &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Step 2: Make sure after the certificate is added to the MDS, you can access the content provider URL from your BlackBerry browser&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpMiddle" style="margin-left:126.0pt;mso-add-space: auto;text-indent:-126.0pt;mso-text-indent-alt:-9.0pt;mso-list:l1 level3 lfo3"&gt;&lt;span style="mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin; mso-bidi-mso-bidi-theme-font:minor-latinfont-family:Calibri;" &gt;&lt;span style="mso-list:Ignore"&gt;&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;                                                            &lt;/span&gt;iii.&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;     &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Step 3: Extract the “sample-push-enabled-app” source jar and create a project with the same source codes under your development environment&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpMiddle" style="margin-left:126.0pt;mso-add-space: auto;text-indent:-126.0pt;mso-text-indent-alt:-9.0pt;mso-list:l1 level3 lfo3"&gt;&lt;span style="mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin; mso-bidi-mso-bidi-theme-font:minor-latinfont-family:Calibri;" &gt;&lt;span style="mso-list:Ignore"&gt;&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;                                                            &lt;/span&gt;iv.&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;     &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Step 4: Change the codes in “PushUtils.java” as follows: &lt;/p&gt;  &lt;p class="MsoListParagraphCxSpMiddle" style="margin-top:0cm;margin-right:0cm; margin-bottom:0cm;margin-left:108.0pt;margin-bottom:.0001pt;mso-add-space:auto; text-indent:18.0pt;line-height:normal;mso-layout-grid-align:none;text-autospace: none"&gt;&lt;span style="font-size:100%;"&gt;&lt;b&gt;&lt;span style="Courier New&amp;quot;;font-family:&amp;quot;;color:#7F0055;"  &gt;private&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="Courier New&amp;quot;;font-family:&amp;quot;;font-size:100%;color:black;"   &gt; &lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;b&gt;&lt;span style="Courier New&amp;quot;;font-family:&amp;quot;;color:#7F0055;"  &gt;static&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="Courier New&amp;quot;;font-family:&amp;quot;;font-size:100%;color:black;"   &gt; String getConnectionSuffix() {&lt;/span&gt;&lt;/p&gt;&lt;span style="font-size:100%;"&gt;  &lt;/span&gt;  &lt;p class="MsoListParagraphCxSpMiddle" style="margin-top:0cm;margin-right:0cm; margin-bottom:0cm;margin-left:108.0pt;margin-bottom:.0001pt;mso-add-space:auto; text-indent:18.0pt;line-height:normal;mso-layout-grid-align:none;text-autospace: none"&gt;&lt;span style="font-size:100%;"&gt;&lt;b&gt;&lt;span style="Courier New&amp;quot;;font-family:&amp;quot;;color:#7F0055;"  &gt;return&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="Courier New&amp;quot;;font-family:&amp;quot;;font-size:100%;color:black;"   &gt; &lt;/span&gt;&lt;span style="Courier New&amp;quot;;font-family:&amp;quot;;font-size:100%;color:#2A00FF;"   &gt;";deviceside=false"&lt;/span&gt;&lt;span style="Courier New&amp;quot;;font-family:&amp;quot;;font-size:100%;color:black;"   &gt;;}&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoListParagraphCxSpMiddle" style="margin: 0cm 0cm 0.0001pt 126pt; line-height: normal; text-align: left;"&gt;&lt;span style="mso-bidi-mso-bidi-theme-font:minor-latin; mso-bidi-font-weight:boldfont-family:Calibri;font-size:100%;"  &gt;Notes: This workaround will make sure you use the MDS to connect the content provider URL which is a local server.&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpLast" style="margin-left: 126pt; text-indent: -126pt;"&gt;&lt;span style="mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin; mso-bidi-mso-bidi-theme-font:minor-latinfont-family:Calibri;font-size:100%;"  &gt;&lt;span style="mso-list:Ignore"&gt;&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;                                                             &lt;/span&gt;v.&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;     &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="line-height: 115%;font-family:Calibri;font-size:100%;"  &gt;Setp 5: Rebuild the sample-push-enabled-app and download it to your BES-enabled BlackBerry device. Configure the settings following:&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoListParagraphCxSpLast" style="margin-left:126.0pt;mso-add-space: auto;text-indent:-126.0pt;mso-text-indent-alt:-9.0pt;mso-list:l1 level3 lfo3"&gt;&lt;span style="font-size:100%;"&gt;&lt;a href="http://docs.blackberry.com/en/developers/deliverables/24182/Install_the_client-side_sample_app_to_device_1015009_11.jsp"&gt;http://docs.blackberry.com/en/developers/deliverables/24182/Install_the_client-side_sample_app_to_device_1015009_11.jsp&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Now you should be able to run the sample-push-initiator on your local server and the sample-push-enabled-app on your device with the push-and-receive ability setup.&lt;/p&gt;&lt;p class="MsoNormal"&gt;Enjoy!&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3495850987092400387-1345120064526217781?l=yingliucatherine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yingliucatherine.blogspot.com/feeds/1345120064526217781/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yingliucatherine.blogspot.com/2011/04/blackberry-bis-push-samples.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3495850987092400387/posts/default/1345120064526217781'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3495850987092400387/posts/default/1345120064526217781'/><link rel='alternate' type='text/html' href='http://yingliucatherine.blogspot.com/2011/04/blackberry-bis-push-samples.html' title='BlackBerry BIS Push Samples'/><author><name>Catherine</name><uri>http://www.blogger.com/profile/03276595344381555760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3495850987092400387.post-8568051014766581851</id><published>2010-12-06T06:53:00.000-08:00</published><updated>2010-12-09T12:27:26.995-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exchange Server'/><category scheme='http://www.blogger.com/atom/ns#' term='BlackBerry Development'/><title type='text'>Synchronize BlackBerry Emails with Exchange Server</title><content type='html'>Lately, I implemented the function that given the native emails on BlackBerry, fetch the email attachments in the email from the Exchange Server.&lt;br /&gt;&lt;br /&gt;Input: Emails w/ attachments on BlackBerry (The email account is on the Exchange Server)&lt;br /&gt;&lt;br /&gt;Output: Actual attachments of the email&lt;br /&gt;&lt;br /&gt;Complexity:&lt;br /&gt;1. The attachments in an email on BlackBerry are not download to the device, therefore there is no good method to get the actual attachments through RIM API.&lt;br /&gt;&lt;br /&gt;2. RIM API provides limited access to the properties of emails, what you can get are basically listed in the link: http://www.blackberry.com/developers/docs/4.6.0api/net/rim/blackberry/api/mail/Message.html&lt;br /&gt;&lt;br /&gt;3. According to different exchange server versions (mainly 2003 and 2007), there are different protocols and require different transformation format. For Exchange 2003, the protocol is WebDAV which stands for Web-based Distributed Authoring and Versioning. The transformation from Exchange Message to the DAV Message that the protocol recognizes (through SQL). For Exchange 2007, the protocol is EWS which stands for Exchange Web Services. The transformation from Exchange Message to the EWS Message that the protocol recognizes (through SOAP and XML).&lt;br /&gt;&lt;br /&gt;Possible Solutions:&lt;br /&gt;Pass in a set of attributes which can be reached from RIM API (not Message ID since that is only good for BlackBerry.) and are also the same with the email record on Exchange Server. Once targeted the correct email, fetch the attachments from the Exchange Server.&lt;br /&gt;&lt;br /&gt;Final Solutions:&lt;br /&gt;Attributes passed in: Subject, Sent Time and From.&lt;br /&gt;&lt;br /&gt;Technical requirements:&lt;br /&gt;1. RIM API&lt;br /&gt;2. Exchange Server and Protocols (both WebDAV and EWS)&lt;br /&gt;&lt;br /&gt;Reference:&lt;br /&gt;1. http://msdn.microsoft.com/en-us/library/bb204119.aspx&lt;br /&gt;2. http://en.wikipedia.org/wiki/WebDAV&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3495850987092400387-8568051014766581851?l=yingliucatherine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yingliucatherine.blogspot.com/feeds/8568051014766581851/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yingliucatherine.blogspot.com/2010/12/synchronize-blackberry-emails-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3495850987092400387/posts/default/8568051014766581851'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3495850987092400387/posts/default/8568051014766581851'/><link rel='alternate' type='text/html' href='http://yingliucatherine.blogspot.com/2010/12/synchronize-blackberry-emails-with.html' title='Synchronize BlackBerry Emails with Exchange Server'/><author><name>Catherine</name><uri>http://www.blogger.com/profile/03276595344381555760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3495850987092400387.post-6281449580020419001</id><published>2010-09-23T17:23:00.001-07:00</published><updated>2011-03-24T06:28:18.129-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Book Reviews'/><title type='text'>Book Review: How to Win Friends and Influence People</title><content type='html'>《How to Win Friends and Influence People》 by Dale Carnegie&lt;br /&gt;&lt;br /&gt;1. The importance of human relationship: "Even in the field of Engineering, about 15 percent of one's financial success is due to one's technical knowledge and about 85 percent is due to skill in human engineering--- to personality and the ability to lead people."&lt;br /&gt;&lt;br /&gt;2. "The person who has technical knowledge plus the ability to express ideas, to assume leadership, and to arouse enthusiasm among people--- that person is headed for higher earning power."&lt;br /&gt;&lt;br /&gt;3. Professor William James of Harvard once said "Compared to what we ought to be, we are only half awake. We are making use of only a small part of our physical and mental resources. Starting the thing broadly, the human individual thus lives far within his limits. He posesses powers of various sorts which he habitually fails to use."&lt;br /&gt;&lt;br /&gt;4. "The great aim of education is not knowledge but action."&lt;br /&gt;&lt;br /&gt;5. Ask yourself on a weekly basis:&lt;br /&gt;"What mistakes did I make that time?"&lt;br /&gt;"What did I do that was right--- and in what way could I have imporved my performance?"&lt;br /&gt;"What lessons can I learn from that experience?"&lt;br /&gt;&lt;br /&gt;6. "Ninety-nine times out of a hundred, people don't criticize themselves for anything, no matter how wrong it may be."&lt;br /&gt;&lt;br /&gt;7. "Let's realize that the person we are going to correct and condemn will probably justify himself or herself, and condemn us in return."&lt;br /&gt;&lt;br /&gt;8. "When dealing with people, let us remember we are not dealing with creatures of logic. We are dealing with creatures of emotion, creatures bristling with predudices and motivated by pride and vanity."&lt;br /&gt;&lt;br /&gt;9. "Instead of condemning people, let's try to understand them. Let's try to figure out why they do what they do."&lt;br /&gt;&lt;br /&gt;10. Sigmund Freud said that "Everything you and I do springs from two motives: the sex urge and the desire to be great."&lt;br /&gt;&lt;br /&gt;11. Lincoln once said "Everybody likes a compliment."&lt;br /&gt;&lt;br /&gt;12. "Don't be afraid of enemies who attack you. Be afraid of the friends who flatter you."&lt;br /&gt;&lt;br /&gt;13. "In our interpersonal relations we should never forget that all our associates are human beings and hunger for appreciation."&lt;br /&gt;&lt;br /&gt;14. "Let's cease thinking of our accomplishments, our wants. Let's try to figure out the other person's good points. Then forget flattery. Give honest, sincere appreciation."&lt;br /&gt;&lt;br /&gt;15. "The only way on earth to influence other people is to talk about what they want and show them how to get it."&lt;br /&gt;&lt;br /&gt;16. "Action springs out of what we fundamentally desire and the best piece of advice which can be given to would-be persuaders, whether in business, in the home, in the school, in politics, is: First, arouse in the other person an eager want. He who can do this has the whole world with him. He who cannot walks a lonely way."&lt;br /&gt;&lt;br /&gt;17. "Tomorrow you may want to persuade somebody to do something. Before you speak, pause and ask yourself: 'How can I make this person want to do it?'"&lt;br /&gt;&lt;br /&gt;18. Henry Ford once said, "If there is any one secret of success, it lies in the ability to get the other person's point of view and see things from that person's angle as well as from your own."&lt;br /&gt;&lt;br /&gt;19. "The world is full of people who are grabbing and self-seeking. So the rare individual who unselfishly tries to serve other has an enormous advantage."&lt;br /&gt;&lt;br /&gt;20. "People who can put themselves in the place of other people, who can understand the workings of their minds, need never worry about what the future has in store for them."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3495850987092400387-6281449580020419001?l=yingliucatherine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yingliucatherine.blogspot.com/feeds/6281449580020419001/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yingliucatherine.blogspot.com/2010/09/book-review-how-to-win-friends-and.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3495850987092400387/posts/default/6281449580020419001'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3495850987092400387/posts/default/6281449580020419001'/><link rel='alternate' type='text/html' href='http://yingliucatherine.blogspot.com/2010/09/book-review-how-to-win-friends-and.html' title='Book Review: How to Win Friends and Influence People'/><author><name>Catherine</name><uri>http://www.blogger.com/profile/03276595344381555760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3495850987092400387.post-5136592175317774255</id><published>2010-09-01T19:02:00.001-07:00</published><updated>2010-09-06T14:05:24.420-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BlackBerry Development'/><title type='text'>What I learned about BB Email Structure lately</title><content type='html'>Lately, I've been fixing a really sneaky bug and today I finally fixed it! It has something to do with the email structure and also the new os version of blackberry 6.&lt;br /&gt;&lt;br /&gt;1. Typical Email Structure of a HTML email&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_tBBHhlCt8lY/TIVWic2nNkI/AAAAAAAABzo/HSm8yDuqS38/s1600/email.jpg"&gt;&lt;img style="cursor: pointer; width: 266px; height: 320px;" src="http://4.bp.blogspot.com/_tBBHhlCt8lY/TIVWic2nNkI/AAAAAAAABzo/HSm8yDuqS38/s320/email.jpg" alt="" id="BLOGGER_PHOTO_ID_5513908468645836354" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2. Timing of the corresponding "text/plain" content being loaded&lt;br /&gt;When the email first comes to the device, if you want to access the content of the email, you need to use Transport.more() to request more information from the server. I notice that for the peer-part of "text/html", there is a "text/plain" part comes with html mimebodypart. However, when you use Transport.more(BodyPart, true) to get the information in the "text/plain" mimebodypart, it will take approximately 5 seconds to load the content to the bodypart. Therefore, in your program, you need to wait longer for the content fetching.&lt;br /&gt;&lt;br /&gt;3. Always deep check the content&lt;br /&gt;Moreover, you need to double check the content when there is some content in the bodypart to make sure the content is not just spaces.&lt;br /&gt;&lt;br /&gt;Reference:&lt;br /&gt;1. How to- Access HTML email messages&lt;br /&gt;http://www.blackberry.com/knowledgecenterpublic/livelink.exe/fetch/2000/348583/800332/800698/How_To_-_Access_HTML_email_messages.html?nodeid=1443037&amp;amp;vernum=0&lt;br /&gt;&lt;br /&gt;2. One useful thread in a BB Forum&lt;br /&gt;&lt;a href="http://supportforums.blackberry.com/t5/Java-Development/Extract-Plain-Text-from-HTML-Email/td-p/184499" target="_blank"&gt;http://supportforums.&lt;wbr&gt;blackberry.com/t5/Java-&lt;wbr&gt;Development/Extract-Plain-&lt;wbr&gt;Text-from-HTML-Email/td-p/&lt;wbr&gt;184499&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3495850987092400387-5136592175317774255?l=yingliucatherine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yingliucatherine.blogspot.com/feeds/5136592175317774255/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yingliucatherine.blogspot.com/2010/09/what-i-learned-about-bb-email-structure.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3495850987092400387/posts/default/5136592175317774255'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3495850987092400387/posts/default/5136592175317774255'/><link rel='alternate' type='text/html' href='http://yingliucatherine.blogspot.com/2010/09/what-i-learned-about-bb-email-structure.html' title='What I learned about BB Email Structure lately'/><author><name>Catherine</name><uri>http://www.blogger.com/profile/03276595344381555760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_tBBHhlCt8lY/TIVWic2nNkI/AAAAAAAABzo/HSm8yDuqS38/s72-c/email.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3495850987092400387.post-37586896422475802</id><published>2010-08-26T18:37:00.000-07:00</published><updated>2010-08-26T18:41:12.089-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Book Reviews'/><title type='text'>Book Review: Love is the killer app</title><content type='html'>Recently, I read the book named Love is the killer app by Tim Sanders. I want to share some notes here:&lt;br /&gt;&lt;br /&gt;The three key components to be a lovecat in bizworld:&lt;br /&gt;1. Expand your knowledge&lt;br /&gt;Aggregation, encoding, processing and application&lt;br /&gt;&lt;br /&gt;2. Expand your network&lt;br /&gt;Collecting, connecting (prepare thyself, swap bizcards, organize, input and follow up) and disappearing&lt;br /&gt;&lt;br /&gt;3. Show your compassion to co-workers&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3495850987092400387-37586896422475802?l=yingliucatherine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yingliucatherine.blogspot.com/feeds/37586896422475802/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yingliucatherine.blogspot.com/2010/08/book-review-love-is-killer-app.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3495850987092400387/posts/default/37586896422475802'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3495850987092400387/posts/default/37586896422475802'/><link rel='alternate' type='text/html' href='http://yingliucatherine.blogspot.com/2010/08/book-review-love-is-killer-app.html' title='Book Review: Love is the killer app'/><author><name>Catherine</name><uri>http://www.blogger.com/profile/03276595344381555760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3495850987092400387.post-5510173118964175673</id><published>2010-08-13T08:11:00.000-07:00</published><updated>2010-08-13T08:32:05.561-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BlackBerry Development'/><title type='text'>Install Updates (OS6.0) on BlackBerry Torch 9800</title><content type='html'>This should apply to any OS version and Phone module generally. However it may have some slight differences for BlackBerry 6.0.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Complexity of the installation: Since I have a beta version of Os 6.0, it behaves unstably. I get an error which is 'App Error 602 reset' and the phone enters to the vicious cycle, which is after resetting, the phone goes back to 'App Error 602 reset' error. More annoyingly, the phone cannot connect to PC reliably since it is with the error. Therefore, it makes the reinstallation more complex. Here is what I did to rescue BlackBerry 6.0:&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Step 1: Wipe the phone via Apploader/loader.exe&lt;/div&gt;&lt;div&gt;The timing of doing this is really vital. Do it when the phone is rebooting but not at its 'Error' phase. Open your command prompt in Windows, type in:&lt;/div&gt;&lt;div&gt;C:\Program Files\Common Files\Research In Motion\Apploader\loader.exe /resettofactory&lt;/div&gt;&lt;div&gt;[Note] Download and install OS6.0 from BlackBerry Website first!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Step 2: Download BlackBerry Desktop Software (new name of Desktop Manager for OS6.0)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Step 3: Connect your device to PC (Windows) and run Desktop Software (Connect the PIN)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Step 4: Desktop Software will detect the updates of OS automatically and install them on your device. The whole installation takes approximately 20 minutes.&lt;/div&gt;&lt;div&gt;[Note] Watch out for the disconnection of your device and the PC. Make the whole process connected.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Hope this helps for the people exploring BlackBerry torch 9800, which is by the way an awesome handheld to have!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3495850987092400387-5510173118964175673?l=yingliucatherine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yingliucatherine.blogspot.com/feeds/5510173118964175673/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yingliucatherine.blogspot.com/2010/08/install-updates-os60-on-blackberry.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3495850987092400387/posts/default/5510173118964175673'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3495850987092400387/posts/default/5510173118964175673'/><link rel='alternate' type='text/html' href='http://yingliucatherine.blogspot.com/2010/08/install-updates-os60-on-blackberry.html' title='Install Updates (OS6.0) on BlackBerry Torch 9800'/><author><name>Catherine</name><uri>http://www.blogger.com/profile/03276595344381555760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3495850987092400387.post-2811552932040794736</id><published>2010-08-13T07:47:00.000-07:00</published><updated>2010-08-13T08:05:13.031-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BlackBerry Development'/><title type='text'>What is new with BlackBerry 6.0</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_tBBHhlCt8lY/TGVcKmUmKtI/AAAAAAAABzE/Nayt3EijtTE/s1600/blackberry-torch-ofc-2-300x339-265x300.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 265px; height: 300px;" src="http://4.bp.blogspot.com/_tBBHhlCt8lY/TGVcKmUmKtI/AAAAAAAABzE/Nayt3EijtTE/s320/blackberry-torch-ofc-2-300x339-265x300.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5504907456685681362" /&gt;&lt;/a&gt;&lt;br /&gt;Aug 2010, RIM launched their new baby- BlackBerry 6.0 Torch 9800 in the US market. I am really lucky to have a chance to play with it and I have to say: Bravo!&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It inherit BlackBerry's robust keypad/Track wheel and in the meantime introduced the new touchpad, which makes BlackBerry 6.0 more competitive with iPhones.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I have to say that a key success of this new phone is the screen. With resolution 360x480, torch displays smoothly and clearly.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Another nice feature is that in the Contacts, BB 6.0 provides the 'Recent Activities' you have with the contact, which informs you about your business with the person.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In addition, BB 9800 separates the SIM card holder and the battery holder, which eases the processes of configurations and installations.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Technically, I believe there is not too much change in RIM API except for the Email interfaces, which is a good piece of news for BlackBerry 3rd party developers since the old apps can be transferred to the new device fairly easily. In all, I will rate torch 9800 as 8.5/10.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3495850987092400387-2811552932040794736?l=yingliucatherine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yingliucatherine.blogspot.com/feeds/2811552932040794736/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yingliucatherine.blogspot.com/2010/08/what-is-new-with-blackberry-60.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3495850987092400387/posts/default/2811552932040794736'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3495850987092400387/posts/default/2811552932040794736'/><link rel='alternate' type='text/html' href='http://yingliucatherine.blogspot.com/2010/08/what-is-new-with-blackberry-60.html' title='What is new with BlackBerry 6.0'/><author><name>Catherine</name><uri>http://www.blogger.com/profile/03276595344381555760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_tBBHhlCt8lY/TGVcKmUmKtI/AAAAAAAABzE/Nayt3EijtTE/s72-c/blackberry-torch-ofc-2-300x339-265x300.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3495850987092400387.post-3342442808374224453</id><published>2010-07-22T10:20:00.000-07:00</published><updated>2010-07-22T10:57:37.294-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>A Useful Thesis Revision Tool: TexDiff</title><content type='html'>TexDiff compares two .tex files by showing the differences in different colors. It is really helpful for tracking the changes during the process of thesis revision. Here is the instruction of installation and usage.&lt;br /&gt;&lt;br /&gt;Step 1: Download and Unzip&lt;br /&gt;(1). Download latest wdiff from the link below:&lt;br /&gt;http://robmar.net/TexDiff/wdiff-0.5g.tar.gz&lt;br /&gt;(2). Unzip: tar -zxvf wdiff-0.5g.tar.gz&lt;br /&gt;&lt;br /&gt;Step 2: Compilation&lt;br /&gt;(1). cd wdiff-0.5g&lt;br /&gt;(2). ./configure&lt;br /&gt;(3). make&lt;br /&gt;(4). sudo make install&lt;br /&gt;&lt;br /&gt;Step 3:&lt;br /&gt;Copy the script texdiff to /usr/local/bin/ (Download texdiff from the link: http://robmar.net/TexDiff/texdiff)&lt;br /&gt;&lt;br /&gt;Step 4: Usage&lt;br /&gt;texdiff sample.tex sample-old.tex sample-diff.tex&lt;br /&gt;&lt;br /&gt;Step 5: Make pdf file out of sample-diff.tex&lt;br /&gt;&lt;br /&gt;REF: http://robmar.net/TexDiff&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3495850987092400387-3342442808374224453?l=yingliucatherine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yingliucatherine.blogspot.com/feeds/3342442808374224453/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yingliucatherine.blogspot.com/2010/07/useful-thesis-revision-tool-texdiff.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3495850987092400387/posts/default/3342442808374224453'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3495850987092400387/posts/default/3342442808374224453'/><link rel='alternate' type='text/html' href='http://yingliucatherine.blogspot.com/2010/07/useful-thesis-revision-tool-texdiff.html' title='A Useful Thesis Revision Tool: TexDiff'/><author><name>Catherine</name><uri>http://www.blogger.com/profile/03276595344381555760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3495850987092400387.post-5382050871829854023</id><published>2010-07-06T15:06:00.000-07:00</published><updated>2010-07-06T15:27:57.927-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BlackBerry Development'/><title type='text'>BlackBerry: Email Bug from RIM</title><content type='html'>I found this interesting bug BB has for versions before 4.6 and here it is:&lt;br /&gt;&lt;br /&gt;There are two possible options in the menu list to delete the address in email address fields. One is "delete field" and the other one is "clear field". "clear field" does not always show up in the menu list depending on how's the address like. If the address is only selectable as ONE whole content instead of as text (which is able to be deleted character by character), the option of "clear field" won't show up.&lt;br /&gt;&lt;br /&gt;The bug happens when users 'delete' the address using 'clear field', what RIM does is, the address won't show in the field, however when the email is sent, the address got clear-fielded is still an address to which the email sent. This bug only happens with "Reply" functions. (RIM's bug!)&lt;br /&gt;&lt;br /&gt;Why it is not noticeable is because that when users type in the addresses, most of the cases, the addresses shown are  selectable only as ONE content. I believe RIM has some secret internal method does that, which is not revealed to 3rd party developers.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3495850987092400387-5382050871829854023?l=yingliucatherine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yingliucatherine.blogspot.com/feeds/5382050871829854023/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yingliucatherine.blogspot.com/2010/07/blackberry-email-bug-from-rim.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3495850987092400387/posts/default/5382050871829854023'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3495850987092400387/posts/default/5382050871829854023'/><link rel='alternate' type='text/html' href='http://yingliucatherine.blogspot.com/2010/07/blackberry-email-bug-from-rim.html' title='BlackBerry: Email Bug from RIM'/><author><name>Catherine</name><uri>http://www.blogger.com/profile/03276595344381555760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3495850987092400387.post-4839853318523429634</id><published>2010-07-03T08:50:00.000-07:00</published><updated>2010-07-03T11:19:02.072-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BlackBerry Development'/><title type='text'>Email Structure in BlackBerry</title><content type='html'>This post will show you the structure of BlackBerry emails.&lt;br /&gt;&lt;br /&gt;1. API: Mulipart-&gt;BodyPart&lt;br /&gt;First, let's take a look at the Email API under net.rim.blackberry.api.mail.Multipart and et.rim.blackberry.api.mail.BodyPart&lt;br /&gt;&lt;br /&gt;These two classes provide the components which consist the emails. An email is a multipart containing multiple bodyparts. It is a tree structure. Each bodypart can contain multipart as well. Therefore if you want to retrieve the information of an email, you need to do it recursively. See reference [1].&lt;br /&gt;&lt;br /&gt;The key subclasses of BodyPart are TextBodyPart, MimeBodyPart and SupportedAttachmentBodyPart. The not so convenient part is that the method of "setContentType(String value)" in Class BodyPart is currently not supported, which means although the 3rd party apps can add bodypart to an email, it cannot sign the specific type to a bodypart (for example, 'text/html' content-type), which constraints the 3rd party apps abilities to control the emails.&lt;br /&gt;&lt;br /&gt;[TextBodyPart]&lt;br /&gt;BodyPart with 'text/plain' content-type. This class is used when creating a multipart message that includes a text/plain part. &lt;br /&gt;&lt;br /&gt;[MimeBodyPart]&lt;br /&gt;This Class represents a MIME body part.&lt;br /&gt;MIME Definition:&lt;br /&gt;The basic Internet e-mail transmission protocol, SMTP, supports only 7-bit ASCII characters. This effectively limits Internet email to messages which, when transmitted, include only the characters used for the English language. MIME defines mechanisms for sending other kinds of information in e-mail, including text in languages other than English using character encodings other than ASCII as well as 8-bit binary content such as files containing images, sounds, movies, and computer programs.&lt;br /&gt;&lt;br /&gt;[SupportedAttachmentBodyPart]&lt;br /&gt;Represents an attachment part that has a corresponding viewer on the handheld, including registered third-party viewers.&lt;br /&gt;&lt;br /&gt;2. Relation with Class net.rim.blackberry.api.mail.Message&lt;br /&gt;In Class Message, there is a method setContent(Object o). Object o can only be String or Multipart. Therefore, the connection between Message and Multipart is: Message.setContent(Multipart).&lt;br /&gt;&lt;br /&gt;3. Notes:&lt;br /&gt;(1). MimeBodyPart does not support signing any content (Method: setContent(Object o)). Therefore, to construct emails, TextBodyPart and SupportedAttachmentBodyPart should be used.&lt;br /&gt;(2). UnsupportedAttachmentBodyPart is not publicly instantiatable.&lt;br /&gt;&lt;br /&gt;3. References:&lt;br /&gt;(1). Retrieve Email Information: &lt;br /&gt;http://rim.lithium.com/t5/Java-Development/Access-HTML-email-messages/ta-p/444941&lt;br /&gt;(2). Attach HTML File to Emails:&lt;br /&gt;http://supportforums.blackberry.com/t5/Java-Development/Create-an-attachment/ta-p/445025&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3495850987092400387-4839853318523429634?l=yingliucatherine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yingliucatherine.blogspot.com/feeds/4839853318523429634/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yingliucatherine.blogspot.com/2010/07/email-structure-in-blackberry.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3495850987092400387/posts/default/4839853318523429634'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3495850987092400387/posts/default/4839853318523429634'/><link rel='alternate' type='text/html' href='http://yingliucatherine.blogspot.com/2010/07/email-structure-in-blackberry.html' title='Email Structure in BlackBerry'/><author><name>Catherine</name><uri>http://www.blogger.com/profile/03276595344381555760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3495850987092400387.post-8474037595710715256</id><published>2010-06-27T07:03:00.000-07:00</published><updated>2010-06-27T07:16:50.800-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Personal Development'/><title type='text'>The Seven Habits of Highly Effective People</title><content type='html'>[by Prof. Stephen Covey]&lt;br /&gt;&lt;br /&gt;Our character is a composite of our habits. Changing habits is hard,but can be done by tremendous commitment. A (good) habit can be definedas the intersection of knowledge, skill and desire. Change is a cycleof being and seeing (visualization)&lt;br /&gt;&lt;br /&gt;Our objective is to move progressively on a maturity continuum fromdependence to independence to interdependence. Although independence isthe current paradigm of our society, we can accomplish much more bycooperation and specialization. However, we must achieve independencebefore we can choose interdependence.&lt;br /&gt;&lt;br /&gt;Habit 1: Be Proactive&lt;br /&gt;&lt;br /&gt;The first and most basic habit of a highly effective person in any environment is the habit of proactivity. Being proactive means that as human beings, we are responsible for our own lives. Our behavior is a function of our decisions, not our conditions. We can subordinate feelings to values. We have the initiative and the responsibility to make things happen.&lt;br /&gt;&lt;br /&gt;Look [at] the word responsibility-response-ability-the ability to choose your responses. Highly proactive people recognize that responsibility. They do not blame circumstances, conditions, or conditioning for their behavior. Their behavior is a product of their own conscious choice, based on values, rather than a product of their conditions, based on feeling. The opposite of proactive is reactive.The spirit of reactive people is the transfer of responsibility. Their language absolves them of responsibility. Proactive people focus their time and energy on their Circle of Influence (things they can control)in lieu of reacting to or worrying about conditions over which they have little or no control (Circle of Concern). In so doing, proactive people use positive energy to influence conditions and increase their Circle of Influence.&lt;br /&gt;&lt;br /&gt;Habit 2: Begin with the End in Mind&lt;br /&gt;&lt;br /&gt;To begin with the end in mind means to begin each day with a clear understanding of your desired direction and destination. By keeping that end in mind you can make certain that whatever you do on any particular day does not violate the criteria you have defined assupremely important, and that each day of your life contributes in a meaningful way to the vision you have of your life as a whole.  &lt;br /&gt;&lt;br /&gt;Begin with the end in mind is based on the principle that all things are created twice. There's a mental or first creation and a physical or second creation. The second, or physical creation, follows from the first, just as a building follows from a blueprint. In our personallives, if we do not develop our own self-awareness and become responsible for first creations, we empower other people and circumstances to shape our lives by default. &lt;br /&gt;&lt;br /&gt;Leadershipis the first creation. Management is the second creation. Management is a bottom line focus: How can I best accomplish certain things? Leadership deals with the top line: What are the things I want to accomplish? In the words of both Peter Drucker and Warren Bennis, "Management is doing things right; leadership is doing the right things." Management is efficiency in climbing the ladder of success; leadership determines whether the ladder is leaning against the rightwall.&lt;br /&gt;&lt;br /&gt;Habit 3: Put First Things First&lt;br /&gt;&lt;br /&gt;What are first things? First things are those things that you, personally, find most worth doing. They move you in the right direction and help you achieve the purpose expressed in your mission statement.&lt;br /&gt;&lt;br /&gt;Put First Things First involves organizing and managing time and events according to the personal priorities established in Habit 2(Begin with the End in Mind). Habit 2 is the first or mental creation. Habit 3, then, is the second,or physical creation. It's the day-in, day-out, moment by moment doing it.&lt;br /&gt;&lt;br /&gt;Habit 4: Think Win-Win&lt;br /&gt;&lt;br /&gt;In relationships and businesses, effectiveness is largely achieved through the cooperative efforts of two or more people. Marriages and other partnerships are interdependent realities, and yet people often approach these relationships with an independent mentality, which is like trying to play golf with a tennis racket-the tool isn't suited to the sport.&lt;br /&gt;&lt;br /&gt;Most of us learn to base our self-worth on comparisons and competition. We think about succeeding in terms of someone else failing. That is, if I win, you lose. Or if you win, I lose. There is only so much pie and if you get a big piece there is less for me. People with this type of Scarcity Mentality find it difficult to share recognition and power, and to be happy for the successes of others, especially those closest to them. &lt;br /&gt;&lt;br /&gt;Win-Win, on the other hand, is based on the paradigm that there is plenty for everybody, that one person's success is not achieved at the expense or exclusion of the success of others. Win-Win sees life as a cooperative, not a competitive arena. Win-Win is a frame of mind and heart that constantly seeks mutual benefit in all human interactions. Win-Win means that agreements or solutions are mutually beneficial and satisfying.&lt;br /&gt;&lt;br /&gt;Habit 5: Seek First to Understand, Then to Be Understood&lt;br /&gt;&lt;br /&gt;Communication is the most important skill in life. We spend most of our waking hours communicating. But consider this: You've spent years learning how to read and write. Years learning how to speak. But what about listening? What training or education have you had that enables you to listen so that you really, deeply understand another human being from that individuals' own frame of reference? &lt;br /&gt;&lt;br /&gt;Seeking first to understand, or diagnosing before you prescribe, is a correct principle manifest in many areas of life. A wise doctor will diagnose before writing a prescription. A good engineer will understand the forces, the stresses at work, before designing the bridge. An effective salesperson first seeks to understand the needs of the customer before offering a product. Similarly, an effective communicator will first seek to understand another's views before seeking to be understood. Until people feel properly diagnosed they will not be open to prescriptions. &lt;br /&gt;&lt;br /&gt;We typically seek first to be understood. Most people do not listen with the intent to understand; they listen with the intent to reply. They're either speaking or preparing to speak. They're filtering everything through their own paradigms, reading their autobiography into otherpeople's lives.&lt;br /&gt;&lt;br /&gt;Habit 6: Synergize&lt;br /&gt;&lt;br /&gt;Synergyis everywhere in nature. The intermingled roots of two plants growing closely together improve the quality of the soil. Two pieces of wood bonded together hold much more than the total of the weight held by each separately. The whole is greater than the sum of its parts. One plus one equals three or more. &lt;br /&gt;&lt;br /&gt;The principle of synergy also holds true in social interactions. Two people, creatively cooperating, will be able to produce far better results than either one could alone. Synergy lets us discover jointly things that we are much less likely to discover by ourselves. It occurs when minds stimulate each other and ideas call forth ideas. I say something that stimulates your mind; you respond with an idea that stimulates mine. I share that new idea with you, and the process repeats itself and even builds. &lt;br /&gt;&lt;br /&gt;Synergy works. It is the crowning achievement of all the previous habits. It is effectiveness in an interdependent reality-it is teamwork, team building, the development of unity and creativity with other human beings. &lt;br /&gt;&lt;br /&gt;Valuing the differences is the essence of synergy-the mental, the emotional,the physiological differences between people. And the key to valuing those differences is to realize that all people see the world, not as it is, but as they are. When we value differences and bring different perspectives together in the spirit of mutual respect, people then feel free to seek the best possible alternative, often the Third Alternative, one that is substantially better than either of the original proposals. Finding a third alternative is not compromise, but represents a Win-win solution for both parties.&lt;br /&gt;&lt;br /&gt;Habit 7: Sharpen the Saw&lt;br /&gt;&lt;br /&gt;Habit 7 is the habit that makes all the others possible. Sharpen the Saw means preserving and enhancing the greatest asset you have-you. It means having a balanced, systematic program for self-renewal in the four areas of our lives: physical, mental, emotional-social, and spiritual. Without this discipline, the body becomes weak, the mind mechanical,the emotions raw, the spirit insensitive, and the person selfish. &lt;br /&gt;&lt;br /&gt;This is the single most powerful investment we can ever make in life-investment in ourselves, in the only instrument we have with which to deal with life and to contribute. Yet when people get busy producing, or sawing, they seldom take time to Sharpen the Saw because maintenance seldom pays dramatic, immediate dividends. &lt;br /&gt;&lt;br /&gt;This daily Private Victory is the key to the development of the Seven Habits, and it's completely within our control. Renewal is the principle and the process that empowers us to move on an upward spiral of growth and change, of continuous improvement.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3495850987092400387-8474037595710715256?l=yingliucatherine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yingliucatherine.blogspot.com/feeds/8474037595710715256/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yingliucatherine.blogspot.com/2010/06/seven-habits-of-highly-effective-people.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3495850987092400387/posts/default/8474037595710715256'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3495850987092400387/posts/default/8474037595710715256'/><link rel='alternate' type='text/html' href='http://yingliucatherine.blogspot.com/2010/06/seven-habits-of-highly-effective-people.html' title='The Seven Habits of Highly Effective People'/><author><name>Catherine</name><uri>http://www.blogger.com/profile/03276595344381555760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3495850987092400387.post-707384357064664148</id><published>2010-06-16T14:37:00.000-07:00</published><updated>2010-06-16T15:37:35.682-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BlackBerry Development'/><title type='text'>Blackberry: Compose Email Programmatically</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;In a 3rd party app for BlackBerry, in some cases, you may want to launch the internal applications like Emails, SMS, AddressBook, etc. in the running process of your 3rd party app. There are two procedures I tried, in which the first one works (High Five to BlackBerry API) and the second one need to be hacked more (an interesting area to explore when you want some fun). In this article, we will make an example of getting access to Message Apps.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;1. The Bright Road&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;BlackBerry API provides the class Invoke (in package net.rim.blackberry.api.invoke) which a&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;llows third-party applications to remotely invoke internal applications. The way how to use it is as follows:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Under Class Invoke, there is a method:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;pre&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;public static void &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;invokeApplication&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/pre&gt;&lt;pre&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;(int appType,applicationarguments args)&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;in this method, the parameter int appType has the following options:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;APP_TYPE_ADDRESSBOOK&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;APP_TYPE_BLUETOOTH_&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;CONFIG&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;meta charset="utf-8"&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;APP_TYPE_CALCULATOR&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;APP_TYPE_CALENDAR&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;APP_TYPE_CAMERA&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;APP_TYPE_MAPS&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;APP_TYPE_MEMOPAD&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;APP_TYPE_MESSAGES&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;APP_TYPE_PHONE&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;APP_TYPE_SEARCH&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;APP_TYPE_TASKS&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="  ;font-family:Verdana, Arial, sans-serif;font-size:14px;"&gt;&lt;span class="Apple-style-span"   style="  ;font-family:Georgia, serif;font-size:16px;"&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Here we use APP_TYPE_MESSAGES and an instance of MessageArguments class as parameters in this method.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;What you need to do is, in your app procedure, you need to write this code in invokeLater(). Here is an example:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;UiApplication.getUiApplication.invokeLater(new Runnable()&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;   { &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;        public void execute(){&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;        Invoke.invokeApplication&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;(Invoke.APP_TYPE_MESSAGES, new MessageArguments(...));&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;   }&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;});&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;[References]&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;http://www.blackberry.com/developers/docs/5.0.0api/net/rim/&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;blackberry/api/&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: arial; font-size: medium; "&gt;invoke/package-summary.html&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;2. The Dark but Adventurous Road &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;While in the Message App, write this code:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;String URL = ApplicationDescriptor.currentApplicationDescriptor.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;getModuleName+"?"+"saved";&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;ApplicationManager.getApplicationManager.launch(URL)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;So far, what I know about the parameters in Message apps are 'saved' (which lead you to the saved messages folder), 'search' and 'searchinit'. I believe there are some non-revealed args like 'compose', 'reply', etc. to be found!&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;[Reference]&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;(1). ApplicationDescriptor:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;http://www.blackberry.com/developers/docs/4.6.0api/net/rim/&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;device/api/system/&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;ApplicationDescriptor.html&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;(2). ApplicationManager:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;http://www.blackberry.com/developers/docs/4.6.0api/net/rim/&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;device/api/system/&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;ApplicationManager.html&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Hack it! Enjoy it!&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3495850987092400387-707384357064664148?l=yingliucatherine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yingliucatherine.blogspot.com/feeds/707384357064664148/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yingliucatherine.blogspot.com/2010/06/blackberry-compose-email.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3495850987092400387/posts/default/707384357064664148'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3495850987092400387/posts/default/707384357064664148'/><link rel='alternate' type='text/html' href='http://yingliucatherine.blogspot.com/2010/06/blackberry-compose-email.html' title='Blackberry: Compose Email Programmatically'/><author><name>Catherine</name><uri>http://www.blogger.com/profile/03276595344381555760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3495850987092400387.post-6588471112130206914</id><published>2010-06-12T12:31:00.000-07:00</published><updated>2010-06-12T17:54:40.814-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BlackBerry Development'/><title type='text'>BlackBerry Emails: Detect Email Contents in Apps</title><content type='html'>In your BlackBerry applications, sometimes you may want to 'intrude' on users' emails. For example, you may want to check the users' typings of keywords in the emails to trigger some feature you designed. Here is the way to get the email content in your application.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;[Procedure]&lt;/div&gt;&lt;div&gt;Step 1: Create ViewListenerExtended and add it to Session&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;You need a ViewListenerExtended to listen the actions of 'Open', 'Close', 'Compose', 'Reply' and 'Forward' Emails. Here, ViewListenerExtended is an interface, you need to override the methods. For example, if you want to detect the moment when the user is composing the email, you need to override the method 'void newMessage (MessageEvent e)'. See Step 2.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Additionally, use Session.addViewListener([the listener you created]) to add the ViewListener in to the application.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Step 2:  Override the methods in ViewListenerExtended&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In the methods, if you want to get to the email contents, you need to find the manager which contains the email TextField. Here are the sub-steps you need to follow:&lt;/div&gt;&lt;div&gt;(1). Get the Current Email Screen&lt;/div&gt;&lt;div&gt;//Screen Type: net.rim.device.apps.internal.blackberryemail.email.EmailEditorScreen&lt;/div&gt;&lt;div&gt;Screen currentScreen = UiApplication.getUiApplication().getActiveScreen()&lt;/div&gt;&lt;div&gt;(2). Get the VerticalFieldManager from the Email Screen&lt;/div&gt;&lt;div&gt;//Manager Type: &lt;/div&gt;&lt;div&gt;net.rim.device.apps.internal.blackberryemail.email.EmailEditorScreen&lt;br /&gt;$BodyVerticalFieldManager&lt;/div&gt;&lt;div&gt;VerticalFieldManager bodyManager = (VerticalFieldManager) currentScreen.getField(i);&lt;/div&gt;&lt;div&gt;(3). Get the Email TextField from the Manager&lt;/div&gt;&lt;div&gt;//TextField Type: net.rim.device.api.ui.component.ActiveAutoTextEditField&lt;/div&gt;&lt;div&gt;emailTextField = (ActiveAutoTextEditField) bodyManager.getField(j);&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Step 3: Add FieldChangeListener on Email Text Field to detect the changes in Emails&lt;/div&gt;&lt;div&gt;(1). Create class to implement FieldChangeListener&lt;/div&gt;&lt;div&gt;(2). Override method 'fieldChanged' in your class&lt;/div&gt;&lt;div&gt;(3). Add your class to Email Text Field you got from Step 2.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;You should be able to detect the email contents and trigger your desired features now. Enjoy!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3495850987092400387-6588471112130206914?l=yingliucatherine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yingliucatherine.blogspot.com/feeds/6588471112130206914/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yingliucatherine.blogspot.com/2010/06/blackberry-emails-detect-email-contents.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3495850987092400387/posts/default/6588471112130206914'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3495850987092400387/posts/default/6588471112130206914'/><link rel='alternate' type='text/html' href='http://yingliucatherine.blogspot.com/2010/06/blackberry-emails-detect-email-contents.html' title='BlackBerry Emails: Detect Email Contents in Apps'/><author><name>Catherine</name><uri>http://www.blogger.com/profile/03276595344381555760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3495850987092400387.post-4433198616463011859</id><published>2010-06-07T16:56:00.000-07:00</published><updated>2010-06-16T15:38:35.479-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BlackBerry Development'/><title type='text'>BlackBerry API: ApplicationMessageFolder</title><content type='html'>&lt;div&gt;BlackBerry ApplicationMessageFolder&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;From BlackBerry JDE API 4.6.0, BlackBerry applications can create custom messages and folders that are visible in the message list. An application can create an ApplicationMessageFolder that contains messages that the application creates. When an application adds an ApplicationMessage to a folder, the folder appears in the message list. A BlackBerry device user can open and view the custom message in a screen of the application that contains contextual information for the message.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Key Steps of Using Application Folder:&lt;/div&gt;&lt;div&gt;1. Register Folder&lt;/div&gt;&lt;div&gt;Class: ApplicationMessageFolderRegistry&lt;/div&gt;&lt;div&gt;In this class, call the method: &lt;/div&gt;&lt;div&gt;registerFolder(long folderId, String folderName, ReadableList collection)&lt;/div&gt;&lt;div&gt;to register a folder. The tricky part is the ReadableList collection. Since ReadableList is an interface which is implemented by UnsortedReadableList class, so here, it is safe to use UnsortedReadableList to store the ApplicationMessages.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Also a note here is, if you store the ApplicationMessages in a Vector, here you need to call:&lt;/div&gt;&lt;div&gt;UnsortedReadableList.loadFrom(Vector)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2. Implement Interface ApplicationMessage&lt;/div&gt;&lt;div&gt;long timestamp&lt;/div&gt;&lt;div&gt;String contact &lt;/div&gt;&lt;div&gt;String subject&lt;/div&gt;&lt;div&gt;int type (optional)&lt;/div&gt;&lt;div&gt;int status (optional)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2. Add/Remove ApplicationMessage to/from ApplicationFolder&lt;/div&gt;&lt;div&gt;In the class of ApplicationMessageFolder, there are two useful methods:&lt;/div&gt;&lt;div&gt;fireElementAdded(ApplicationMessage msg)&lt;/div&gt;&lt;div&gt;fireElementRemoved(ApplicationMessage msg)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;3. Customize MenuItems for ApplicationMessage&lt;/div&gt;&lt;div&gt;The class of ApplicationMenuItem ensures us to create our own menu items. What we need to do is to inherit the constructor from super(int), in which the 'int' indicates the position of the item in the menu.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Interestingly, the place to register the menu items is not the ApplicationMessageFolder or the ApplicationMessage, but ApplicationMessageFolderRegistry. The method is:&lt;/div&gt;&lt;div&gt;registerMessageMenuItems(int type, int status, ApplicationMenuItem [] menuItems)&lt;/div&gt;&lt;div&gt;Here the type and status are referred to the specific type ApplicationMessage, For example, incoming message type can have View and Reply actions while outgoing message can have View action only.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;4. Run(Object o) method in ApplicationMenuItem&lt;/div&gt;&lt;div&gt;If you register the ApplicationMenuItem from Step 3, then the Object o in method Run(Object o) is the instance of the selected (focused) ApplicationMessage, which you can get the information from.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Good Reference:&lt;/div&gt;&lt;div&gt;http://rim.lithium.com/t5/Product-Management-The/&lt;/div&gt;&lt;div&gt;Discussion-Application-Messages-API/m-p/75783&lt;/div&gt;&lt;div&gt;ApplicationMenuItem: &lt;/div&gt;&lt;div&gt;http://www.blackberry.com/developers/docs/4.6.0api/net/rim/&lt;/div&gt;&lt;div&gt;blackberry/api/menuitem/ApplicationMenuItem.html&lt;/div&gt;&lt;div&gt;ApplicationMessageFolder:&lt;/div&gt;&lt;div&gt;http://www.blackberry.com/developers/docs/4.6.0api/net/rim/&lt;/div&gt;&lt;div&gt;blackberry/api/messagelist/ApplicationMessageFolder.html&lt;/div&gt;&lt;div&gt;ApplicationMessageFolderRegistry:&lt;/div&gt;&lt;div&gt;http://www.blackberry.com/developers/docs/4.6.0api/net/rim/&lt;/div&gt;&lt;div&gt;blackberry/api/messagelist/ApplicationMessageFolderRegistry.html&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3495850987092400387-4433198616463011859?l=yingliucatherine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yingliucatherine.blogspot.com/feeds/4433198616463011859/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yingliucatherine.blogspot.com/2010/06/blackberry-api-applicationmessagefolder.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3495850987092400387/posts/default/4433198616463011859'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3495850987092400387/posts/default/4433198616463011859'/><link rel='alternate' type='text/html' href='http://yingliucatherine.blogspot.com/2010/06/blackberry-api-applicationmessagefolder.html' title='BlackBerry API: ApplicationMessageFolder'/><author><name>Catherine</name><uri>http://www.blogger.com/profile/03276595344381555760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3495850987092400387.post-7812544397167478720</id><published>2010-06-05T07:36:00.000-07:00</published><updated>2010-06-05T07:47:10.448-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BlackBerry Development'/><title type='text'>Run Two BlackBerry Simulators to Send and Receive SMS</title><content type='html'>If you are using ANT tools for compiling your Blackberry apps like me, then this question may pop up to your head before: How to configure .XML file to run multiple simulators to test SMS?&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This is actually really simple. In your compile file (.xml), in the section of 'run simulator' (path of one simulator), set the following parameter as:&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Lucida Grande', verdana, arial, helvetica, sans-serif; font-size: 12px; color: rgb(72, 72, 72); "&gt;/sms-source-port=5000 /sms-destination-port=5001 /phone-number=18881234567 /pin=0x2100000B&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Lucida Grande', verdana, arial, helvetica, sans-serif; font-size: 12px; color: rgb(72, 72, 72); "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"    style="font-family:'Lucida Grande', verdana, arial, helvetica, sans-serif;font-size:100%;color:#484848;"&gt;&lt;span class="Apple-style-span" style="font-size: 12px;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: Georgia, serif; font-size: 16px; "&gt;in the section of 'run simulator2' (path of the other simulator), set the following parameter as:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"    style="font-family:'Lucida Grande', verdana, arial, helvetica, sans-serif;font-size:100%;color:#484848;"&gt;&lt;span class="Apple-style-span" style="font-size: 12px;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: Georgia, serif; font-size: 16px; "&gt;&lt;span class="Apple-style-span" style="font-family: 'Lucida Grande', verdana, arial, helvetica, sans-serif; font-size: 12px; color: rgb(72, 72, 72); "&gt;/sms-source-port=5001 /sms-destination-port=5000 /phone-number=18881234568 /pin=0x2100000B&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"    style="font-family:'Lucida Grande', verdana, arial, helvetica, sans-serif;font-size:100%;color:#484848;"&gt;&lt;span class="Apple-style-span" style="font-size: 12px;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: Georgia, serif; font-size: 16px; "&gt;&lt;span class="Apple-style-span" style="font-family: 'Lucida Grande', verdana, arial, helvetica, sans-serif; font-size: 12px; color: rgb(72, 72, 72); "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"    style="font-family:'Lucida Grande', verdana, arial, helvetica, sans-serif;font-size:100%;color:#484848;"&gt;&lt;span class="Apple-style-span" style="font-size: 12px;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: Georgia, serif; font-size: 16px; "&gt;Notice here that the two simulators (fledge.exe) should be in different directories. After these settings, you should be able to run two simulators and send SMS to each other.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"    style="font-family:'Lucida Grande', verdana, arial, helvetica, sans-serif;font-size:100%;color:#484848;"&gt;&lt;span class="Apple-style-span" style="font-size: 12px;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: Georgia, serif; font-size: 16px; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"    style="font-family:'Lucida Grande', verdana, arial, helvetica, sans-serif;font-size:100%;color:#484848;"&gt;&lt;span class="Apple-style-span" style="font-size: 12px;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: Georgia, serif; font-size: 16px; "&gt;However, I found that BlackBerry simulators are not very reliable on tracking the outbound SMS, so I suggest that always be ready to use real device for testing although that may take longer.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"    style="font-family:'Lucida Grande', verdana, arial, helvetica, sans-serif;font-size:100%;color:#484848;"&gt;&lt;span class="Apple-style-span" style="font-size: 12px;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: Georgia, serif; font-size: 16px; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"    style="font-family:'Lucida Grande', verdana, arial, helvetica, sans-serif;font-size:100%;color:#484848;"&gt;&lt;span class="Apple-style-span" style="font-size: 12px;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: Georgia, serif; font-size: 16px; "&gt;Cheers!&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3495850987092400387-7812544397167478720?l=yingliucatherine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yingliucatherine.blogspot.com/feeds/7812544397167478720/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yingliucatherine.blogspot.com/2010/06/run-two-blackberry-simulators-to-send.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3495850987092400387/posts/default/7812544397167478720'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3495850987092400387/posts/default/7812544397167478720'/><link rel='alternate' type='text/html' href='http://yingliucatherine.blogspot.com/2010/06/run-two-blackberry-simulators-to-send.html' title='Run Two BlackBerry Simulators to Send and Receive SMS'/><author><name>Catherine</name><uri>http://www.blogger.com/profile/03276595344381555760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3495850987092400387.post-193464570480198246</id><published>2010-05-21T14:56:00.000-07:00</published><updated>2010-05-21T15:11:13.337-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Fullscreen for Linux guest OS on VirtualBox</title><content type='html'>&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;There is a common problem that happens while running Linux guest OS on VirtualBox3.1.6 using Mac OS. The problem is: the Linux guest OS is not full screened on PC. To solve this problem, you need to download guest-additions on VirtualBox website. Download the guest-additions given your version of VirtualBox from this link:&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;download.virtualbox.org/virtualbox&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;a href="http://download.virtualbox.org/virtualbox/" target="_blank" title="VirtualBox download page" style="color: rgb(69, 138, 186); text-decoration: none; "&gt;&lt;/a&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman', serif;"&gt;&lt;span class="Apple-style-span" style=" line-height: 21px;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Install the iso file on the Linux guest OS and restart your guest OS after the installation. Once restarted, go to System-&gt;Preferences-&gt;Monitors. Change the monitor to 9:16. The guest screen now is full sized.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3495850987092400387-193464570480198246?l=yingliucatherine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yingliucatherine.blogspot.com/feeds/193464570480198246/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yingliucatherine.blogspot.com/2010/05/fullscreen-for-guest-on-virtualbox.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3495850987092400387/posts/default/193464570480198246'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3495850987092400387/posts/default/193464570480198246'/><link rel='alternate' type='text/html' href='http://yingliucatherine.blogspot.com/2010/05/fullscreen-for-guest-on-virtualbox.html' title='Fullscreen for Linux guest OS on VirtualBox'/><author><name>Catherine</name><uri>http://www.blogger.com/profile/03276595344381555760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3495850987092400387.post-9205422182319385155</id><published>2010-05-17T20:00:00.000-07:00</published><updated>2010-05-17T20:02:10.431-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Development'/><title type='text'>How to disable CheckboxField</title><content type='html'>Lately, I came across the question: How to disable CheckboxField in BlackBerry JDE. Here is the solution:&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Package net.rim.device.api.ui.component &lt;/h2&gt;&lt;br /&gt;CheckboxField.setEditable(false)!!&lt;br /&gt;&lt;br /&gt;There we go~&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3495850987092400387-9205422182319385155?l=yingliucatherine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yingliucatherine.blogspot.com/feeds/9205422182319385155/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yingliucatherine.blogspot.com/2010/05/how-to-disable-checkboxfield.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3495850987092400387/posts/default/9205422182319385155'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3495850987092400387/posts/default/9205422182319385155'/><link rel='alternate' type='text/html' href='http://yingliucatherine.blogspot.com/2010/05/how-to-disable-checkboxfield.html' title='How to disable CheckboxField'/><author><name>Catherine</name><uri>http://www.blogger.com/profile/03276595344381555760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3495850987092400387.post-4510604954408631565</id><published>2010-05-15T09:40:00.000-07:00</published><updated>2010-05-15T09:49:52.862-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Weird Problem of Hyperref and Includegraphics</title><content type='html'>Lately, I came across a weird problem when writing my master thesis, which is the use of hyperref and \includegraphics.&lt;br /&gt;&lt;br /&gt;The problem is described as followings:&lt;br /&gt;When I use the package of hyperref and include .eps figures in my sub-files under the master.tex file, Latex gives me the error: File "filename" not found. Apparently, the .eps files I included are under the same directory as master.tex. So that won't be the reason why Latex could not find .eps.&lt;br /&gt;&lt;br /&gt;The reason is that pdftex won't recognize .eps. The solution is the usage of package "epstopdf". Download the package (.zip file) from http://www.ctan.org/tex-archive/support/epstopdf/&lt;br /&gt;&lt;br /&gt;Unzip it and run in terminal "epstopdf filename.eps" under the directory of .eps files and the corresponding .pdf files will be generated. In your sub-file, instead of include .eps files, include .pdf files. The latex will then run perfectly.&lt;br /&gt;&lt;br /&gt;Hope this helps!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3495850987092400387-4510604954408631565?l=yingliucatherine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yingliucatherine.blogspot.com/feeds/4510604954408631565/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yingliucatherine.blogspot.com/2010/05/weird-problem-of-hyperref-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3495850987092400387/posts/default/4510604954408631565'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3495850987092400387/posts/default/4510604954408631565'/><link rel='alternate' type='text/html' href='http://yingliucatherine.blogspot.com/2010/05/weird-problem-of-hyperref-and.html' title='Weird Problem of Hyperref and Includegraphics'/><author><name>Catherine</name><uri>http://www.blogger.com/profile/03276595344381555760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3495850987092400387.post-1030529858233702810</id><published>2010-05-08T06:40:00.000-07:00</published><updated>2010-05-08T06:55:19.401-07:00</updated><title type='text'>A Useful Spell-Check Tool: Ispell</title><content type='html'>Ispell is a spell-checking program available for many Unix implementations. I use this program for spell-checking my Master thesis. Now I will show you how to install ispell in Unix/Linux and how to use it, more importantly, how useful it is.&lt;br /&gt;&lt;br /&gt;Installation:&lt;br /&gt;Step 1: Download Ispell from http://www.lasr.cs.ucla.edu/geoff/ispell.html&lt;br /&gt;Step 2: gunzip ispell-3.3.xx.tar.gz&lt;br /&gt;Step 3: tar -xvf ispell-3.3.xx.tar&lt;br /&gt;Step 4: cd ispell-3.3.xx&lt;br /&gt;Step 5: Copy one of the sample local.h files to local.h:&lt;br /&gt;        cp local.h.bsd local.h&lt;br /&gt;        cp local.h.cygwin local.h&lt;br /&gt;        cp local.h.linux local.h&lt;br /&gt;        cp local.h.macos local.h&lt;br /&gt;        cp local.h.solaris local.h&lt;br /&gt;        or&lt;br /&gt;        cp local.h.generic local.h&lt;br /&gt;Step 6:&lt;br /&gt;        If you used the generic local.h file and are using a&lt;br /&gt;        USG-style system (Linux, IRIX, HP-UX, Solaris, etc):&lt;br /&gt;        Edit local.h and change:&lt;br /&gt;        #undef USG&lt;br /&gt;        to:&lt;br /&gt;        #define USG&lt;br /&gt;Step 7: make all&lt;br /&gt;        If you get compile errors in term.c, do step 6 (or undo it&lt;br /&gt;        if you already did it).&lt;br /&gt;Step 8: make install&lt;br /&gt;&lt;br /&gt;Note:&lt;br /&gt;1. Before installation, you may need to install the compiling tools. If you get the error at Step 7 as: 'make: yacc: Command not found', you will need to install bison, which is a parser generator for GNU Project. Write command like: apt-get install bison&lt;br /&gt;2. Since local.h is a system Read-Only file. You may need to change the permission of local.h in order to edit the file at Step 6. The command for changing permission is:&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;chmod a=rwx file&lt;br /&gt;&lt;/pre&gt;&lt;/blockquote&gt; &lt;p&gt; (turns on read, write, and execute permissions, and turns off the hidden, archive, and system attributes.)&lt;/p&gt;&lt;p&gt;How to use ispell after Installation?&lt;/p&gt;&lt;p&gt;To use it, at your Unix/Linux shell prompt, enter:  &lt;span xi="http://www.w3.org/2001/XInclude" class="example"&gt;  ispell filename&lt;/span&gt;  &lt;/p&gt;&lt;p&gt; Replace &lt;code&gt;filename&lt;/code&gt; with the name of the file you wish to check.&lt;/p&gt;&lt;p&gt;For my case, I use .tex file for spell-checking and it works perfectly! It saves a lot of time on the writing! Enjoy!&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3495850987092400387-1030529858233702810?l=yingliucatherine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yingliucatherine.blogspot.com/feeds/1030529858233702810/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yingliucatherine.blogspot.com/2010/05/useful-spell-check-tool-ispell.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3495850987092400387/posts/default/1030529858233702810'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3495850987092400387/posts/default/1030529858233702810'/><link rel='alternate' type='text/html' href='http://yingliucatherine.blogspot.com/2010/05/useful-spell-check-tool-ispell.html' title='A Useful Spell-Check Tool: Ispell'/><author><name>Catherine</name><uri>http://www.blogger.com/profile/03276595344381555760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3495850987092400387.post-8686827349979022905</id><published>2010-04-23T13:34:00.000-07:00</published><updated>2010-04-23T13:48:47.505-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Re-install Ubuntu and Kile</title><content type='html'>Last week, I did some changes to my Ubuntu 9.04 OS (Installed some packages which affect the system's performances.) and Ubuntu began to act wierdly. So I decide to re-install Ubuntu and share my installation procedure here.&lt;br /&gt;&lt;br /&gt;Step 1: In Windows system, insert the Ubuntu 9.04 installation CD (You can download from http://www.ubuntu.com/getubuntu/download).&lt;br /&gt;&lt;br /&gt;Step 2: Restart the PC and choose Ubuntu system to get in.&lt;br /&gt;&lt;br /&gt;Step 3: WAIT for installing (Fairly easy, just find sth to do while waiting! lol)&lt;br /&gt;&lt;br /&gt;Step 4: Install any application on Ubuntu and you are good to go.&lt;br /&gt;&lt;br /&gt;However, I am right now using Latex for thesis writing. So I need to install Kile. I found the installation of Kile is a little tricky, especially its configuration part. So here is the procedure I install and configure Kile:&lt;br /&gt;&lt;br /&gt;Step 1: Applications-&gt;Add/Remove-&gt;Search for "Kile" application&lt;br /&gt;&lt;br /&gt;Step 2: Install Kile and wait for its running, also after the installation, the system will run "Update Manager" automatically. This step will take a while, for like 30 minutes.&lt;br /&gt;&lt;br /&gt;Step 3: Restart Ubuntu, your Kile is installed&lt;br /&gt;&lt;br /&gt;Step 4: Get the nessasary packages for Latex&lt;br /&gt;Open terminal and type in:&lt;br /&gt;sudo apt-get install latex-beamer texlive texlive-fonts-extra&lt;br /&gt;texlive-latex-recommended texlive-pstricks texlive-science&lt;br /&gt;texlive-latex-extra texlive-publishers texlive-font-utils xfig ipe&lt;br /&gt;kile texlive-math-extra texlive-generic-extra texlive-bibtex-extra&lt;br /&gt;&lt;br /&gt;Step 5: Open Kile and Configure it&lt;br /&gt;1. Settings-&gt;Configure Kile-&gt;Build-&gt;Select tools-&gt;ViewPS&lt;br /&gt;add new configuration "evince"&lt;br /&gt;change the command to "evince"&lt;br /&gt;2. Settings-&gt;Configure Kile-&gt;Build-&gt;Select tools-&gt;ViewPDF&lt;br /&gt;add new configuration "evince"&lt;br /&gt;change the command to "evince"&lt;br /&gt;3.Settings-&gt;Configure Kile-&gt;Build-&gt;Select tools-&gt;QuickBuild&lt;br /&gt;Select "Latex+DVItoPS+PStoPDF+ViewPDF"&lt;br /&gt;&lt;br /&gt;You are good to go!!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3495850987092400387-8686827349979022905?l=yingliucatherine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yingliucatherine.blogspot.com/feeds/8686827349979022905/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yingliucatherine.blogspot.com/2010/04/re-install-ubuntu-and-kile.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3495850987092400387/posts/default/8686827349979022905'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3495850987092400387/posts/default/8686827349979022905'/><link rel='alternate' type='text/html' href='http://yingliucatherine.blogspot.com/2010/04/re-install-ubuntu-and-kile.html' title='Re-install Ubuntu and Kile'/><author><name>Catherine</name><uri>http://www.blogger.com/profile/03276595344381555760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3495850987092400387.post-5532942599773993364</id><published>2010-04-16T07:10:00.000-07:00</published><updated>2010-04-16T07:26:46.013-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>How to install Adobe Flash Player 10 on Ubuntu Linux</title><content type='html'>Here is a simply way operated on terminal to install Flash 10:&lt;br /&gt;&lt;br /&gt;Step 1: Download getlibs from http://ubuntuforums.org/showthread.php?t=474790 and install_flsh_player_10_linux.tar.gz from Adobe website&lt;br /&gt;Note: save them on Desktop&lt;br /&gt;&lt;br /&gt;Step 2: Remove old plugins&lt;br /&gt;&lt;br /&gt;&lt;pre class="alt2" dir="ltr" style="border: 1px inset ; margin: 0px; padding: 6px; overflow: auto; width: 640px; height: 162px; text-align: left;"&gt;sudo apt-get -y purge nspluginwrapper&lt;br /&gt;sudo apt-get -y purge mozilla-plugin-gnash&lt;br /&gt;sudo apt-get -y purge swfdec-mozilla&lt;br /&gt;sudo rm -rfd /usr/lib/nspluginwrapper&lt;br /&gt;sudo rm -f /usr/lib/firefox-addons/plugins/libflashplayer.so&lt;br /&gt;sudo rm -f /usr/lib/mozilla/plugins/flashplugin-alternative.so&lt;br /&gt;sudo apt-get purge flashplugin-nonfree&lt;br /&gt;sudo rm -f /usr/lib/firefox-addons/plugins/libflashplayer.so&lt;br /&gt;sudo rm -f&lt;br /&gt;/usr/lib/nspluginwrapper/plugins/npwrapper.libflashplayer.so&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Step 3: Install getlibs&lt;br /&gt;&lt;pre class="alt2" dir="ltr" style="border: 1px inset ; margin: 0px; padding: 6px; overflow: auto; width: 640px; height: 114px; text-align: left;"&gt;cd ~/Desktop&lt;br /&gt;sudo apt-get -y install nspluginwrapper&lt;br /&gt;sudo dpkg -i getlibs-all.deb&lt;br /&gt;sudo getlibs -p libcurl3&lt;br /&gt;sudo getlibs -p libnss3-1d&lt;br /&gt;sudo getlibs -p libnspr4-0d&lt;/pre&gt;&lt;br /&gt;Step 4: Install Flash plugin&lt;br /&gt;&lt;pre class="alt2" dir="ltr" style="border: 1px inset ; margin: 0px; padding: 6px; overflow: auto; width: 640px; height: 50px; text-align: left;"&gt;tar -xzvf install_flash_player_10_linux.tar.gz&lt;br /&gt;sudo mv -f ~/Desktop/libflashplayer.so&lt;br /&gt;/usr/lib/firefox-addons/plugins/&lt;/pre&gt;&lt;br /&gt;Step 5: Wrap and Link&lt;br /&gt;&lt;pre class="alt2" dir="ltr" style="border: 1px inset ; margin: 0px; padding: 6px; overflow: auto; width: 640px; height: 50px; text-align: left;"&gt;sudo nspluginwrapper -i /usr/lib/firefox-addons/plugins/libflashplayer.so&lt;br /&gt;sudo ln -s /usr/lib/nspluginwrapper/plugins/npwrapper.libflashplayer.so&lt;br /&gt;/usr/lib/firefox-addons/plugins/&lt;/pre&gt;&lt;br /&gt;Step 6: Restart browser and you are good to go!&lt;br /&gt;&lt;br /&gt;Reference: http://ubuntuforums.org/showthread.php?t=772490&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3495850987092400387-5532942599773993364?l=yingliucatherine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yingliucatherine.blogspot.com/feeds/5532942599773993364/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yingliucatherine.blogspot.com/2010/04/how-to-install-adobe-flash-player-10-on.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3495850987092400387/posts/default/5532942599773993364'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3495850987092400387/posts/default/5532942599773993364'/><link rel='alternate' type='text/html' href='http://yingliucatherine.blogspot.com/2010/04/how-to-install-adobe-flash-player-10-on.html' title='How to install Adobe Flash Player 10 on Ubuntu Linux'/><author><name>Catherine</name><uri>http://www.blogger.com/profile/03276595344381555760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3495850987092400387.post-7176086187026730874</id><published>2010-04-15T09:49:00.000-07:00</published><updated>2010-04-15T09:52:17.645-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jobs'/><title type='text'>First blog</title><content type='html'>This is my first technical blog. Things get a little crazy but fun lately. I got my new job at Fixmo Inc. in Toronto and I cannot wait to join the team and explore the awesome area of software developing!&lt;br /&gt;&lt;br /&gt;Good luck Catherine!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3495850987092400387-7176086187026730874?l=yingliucatherine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yingliucatherine.blogspot.com/feeds/7176086187026730874/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yingliucatherine.blogspot.com/2010/04/first-blog.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3495850987092400387/posts/default/7176086187026730874'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3495850987092400387/posts/default/7176086187026730874'/><link rel='alternate' type='text/html' href='http://yingliucatherine.blogspot.com/2010/04/first-blog.html' title='First blog'/><author><name>Catherine</name><uri>http://www.blogger.com/profile/03276595344381555760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
