<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>MarkSzulc.com &#187; Twitter</title>
	<atom:link href="http://www.markszulc.com/blog/tag/twitter/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.markszulc.com/blog</link>
	<description>Mark Szulc&#039;s Personal Blog on Tech, Travel &#38; Adobe Solutions including Adobe Acrobat, Connect Pro, LiveCycle ES, CQ5, Omniture &#38; Digital Marketing Suite</description>
	<lastBuildDate>Tue, 31 Jan 2012 00:36:43 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Twitter Component v2.0 for Adobe LiveCycle ES2 released!</title>
		<link>http://www.markszulc.com/blog/2010/11/15/twitter-component-v2-0-for-adobe-livecycle-es2-released/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=twitter-component-v2-0-for-adobe-livecycle-es2-released</link>
		<comments>http://www.markszulc.com/blog/2010/11/15/twitter-component-v2-0-for-adobe-livecycle-es2-released/#comments</comments>
		<pubDate>Mon, 15 Nov 2010 11:36:44 +0000</pubDate>
		<dc:creator>Mark Szulc</dc:creator>
				<category><![CDATA[Adobe]]></category>
		<category><![CDATA[LiveCycle]]></category>
		<category><![CDATA[Custom Component]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Scribe]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://www.markszulc.com/blog/?p=1232</guid>
		<description><![CDATA[About 3 years ago I wrote my first custom component for Adobe LiveCycle ES, a Twitter client, that allowed you to Tweet as part of a process orchestration. I&#8217;ve seen it crop up in quite a few demonstrations over time and find it to be a good example of how extensible Livecycle ES is. Until [...]]]></description>
			<content:encoded><![CDATA[<p style="float:right; margin:0 0 10px 15px; width:240px;">
		<img src="http://www.markszulc.com/blog/wp-content/uploads/2010/11/TwitterComponent1.jpg" width="240" />
		</p><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.markszulc.com%2Fblog%2F2010%2F11%2F15%2Ftwitter-component-v2-0-for-adobe-livecycle-es2-released%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.markszulc.com%2Fblog%2F2010%2F11%2F15%2Ftwitter-component-v2-0-for-adobe-livecycle-es2-released%2F&amp;source=mszulc&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>About 3 years ago I wrote my first custom component for Adobe LiveCycle ES, a Twitter client, that allowed you to Tweet as part of a process orchestration. I&#8217;ve seen it crop up in quite a few demonstrations over time and find it to be a good example of how extensible Livecycle ES is. Until it broke. or rather, Twitter changed their authentication system to require oAuth, causing me to finally update the 3 year old code.</p>
<p>Times have changed for component development with LiveCycle. When I built the first version it involved manual creation of config file. Life is easy with the new <a href="http://labs.adobe.com/technologies/lcwcdtool/">LiveCycle Workbench ES Component Development Tool</a> on Adobe Labs.</p>
<p><strong>Here is the process I followed (Step 1-8 took less than 2 hours)</strong></p>
<ol>
<li>Open Eclipse</li>
<li>Stare at the screen for a minute</li>
<li>Google &#8220;Twitter oAuth Java&#8221;</li>
<li>Found &#8220;<a href="https://github.com/fernandezpablo85/scribe-java">Scribe</a>&#8221; and downloaded the library</li>
<li>Ran the sample Java code within Eclipse and confirmed it worked</li>
<li>Ran the LiveCycle Component Development Tool and created the wrapper project</li>
<li>&#8220;Stole&#8221; pieces of the Scribe sample code for the Livecycle component.</li>
<li>Deployed and tested the component in a process (it actually worked first go! Gasp!)</li>
<li>Wrote some documentation -&gt; <a href="http://www.markszulc.com/blog/twitter-component-for-adobe-livecycle-es2-5/">http://www.markszulc.com/blog/twitter-component-for-adobe-livecycle-es2-5/</a></li>
</ol>
<p>Most of the time was spent futzing around trying to understand oAuth 2.0, so hopefully my docs above will make it easy to get the component up and running. The actual LiveCycle work took very little time.</p>
<p><strong>Still to do</strong></p>
<ol>
<li>Better error handling &#8211; Twitter codes are returned, but I&#8217;m assuming internet connectivity :-/</li>
<li>More operations eg. direct tweet, reply etc</li>
<li>Consider making a Facebook &amp; Foursquare version</li>
</ol>
<p>Any feature requests? If you use it (even for a demo) let me know!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.markszulc.com/blog/2010/11/15/twitter-component-v2-0-for-adobe-livecycle-es2-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Building a controlled Twitter solution using Adobe LiveCycle ES</title>
		<link>http://www.markszulc.com/blog/2010/01/24/building-a-controlled-twitter-solution-using-adobe-livecycle-es/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=building-a-controlled-twitter-solution-using-adobe-livecycle-es</link>
		<comments>http://www.markszulc.com/blog/2010/01/24/building-a-controlled-twitter-solution-using-adobe-livecycle-es/#comments</comments>
		<pubDate>Mon, 25 Jan 2010 00:46:30 +0000</pubDate>
		<dc:creator>Mark Szulc</dc:creator>
				<category><![CDATA[Adobe]]></category>
		<category><![CDATA[LiveCycle]]></category>
		<category><![CDATA[Flash Builder]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://www.markszulc.com/blog/?p=709</guid>
		<description><![CDATA[My colleagues from Adobe&#8217;s Benelux technical team have come up with another great use case for my custom LiveCycle ES Twitter Component I built some time ago. Anyone with a corporate shared Twitter account will understand the conflict between being open and allowing anyone to post a tweet vs making sure that only correct public [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.markszulc.com%2Fblog%2F2010%2F01%2F24%2Fbuilding-a-controlled-twitter-solution-using-adobe-livecycle-es%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.markszulc.com%2Fblog%2F2010%2F01%2F24%2Fbuilding-a-controlled-twitter-solution-using-adobe-livecycle-es%2F&amp;source=mszulc&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>My colleagues from <a href="http://www.drflex.eu/2010/01/building-a-controlled-twitter-solution-using-adobe-livecycle-es-part1/">Adobe&#8217;s Benelux technical team</a> have come up with  another great use case for<a href="http://www.markszulc.com/blog/2007/11/24/twitter-component-for-livecycle-es/"> my custom LiveCycle ES Twitter Component</a> I  built some time ago.</p>
<p>Anyone with a corporate shared Twitter  account will understand the conflict between being open and allowing  anyone to post a tweet vs making sure that only correct public  information is exposed. This solution built out using Adobe LiveCycle ES  &amp; Flash Builder is one way of solving this issue.</p>
<p><strong>Part 1 &#8211; Build a controlled tweet solution</strong><br />
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="400" height="225" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=8886180&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="400" height="225" src="http://vimeo.com/moogaloop.swf?clip_id=8886180&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p><a href="http://vimeo.com/8886180">Building a controlled Twitter solution using Adobe LiveCycle ES (part1)</a> from <a href="http://vimeo.com/drlivecycle">Dr LiveCycle</a> on <a href="http://vimeo.com">Vimeo</a>. Part 1 of a video that demonstrates how you can use LiveCycle ES  to build a process<span id="more-709"></span> and an AIR application to publish tweets to a  corporate Twitter account where you have control on what&#8217;s published or  not</p>
<p><strong>Part 2 &#8211; Build a Tweet Archive</strong><br />
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="400" height="225" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=8886413&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="400" height="225" src="http://vimeo.com/moogaloop.swf?clip_id=8886413&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p><a href="http://vimeo.com/8886413">Building a controlled Twitter solution using Adobe LiveCycle ES (part2)</a> from <a href="http://vimeo.com/drlivecycle">Dr LiveCycle</a> on <a href="http://vimeo.com">Vimeo</a>. Part 2 of a video demonstrates how you can use LiveCycle ES  to build a process and an AIR application to publish tweets to a  corporate Twitter account where you have control on what&#8217;s published or  not. In this part you will see how to archive all tweets in a PDF/A  format within LiveCycle Content Services.</p>
<p><em>Note: I&#8217;m not sure why there is no sound!</em></p>
<p>This sample is just another great example of how Adobe LiveCycle can be used to facilitate the many channels of communication with customers!<em><br />
</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.markszulc.com/blog/2010/01/24/building-a-controlled-twitter-solution-using-adobe-livecycle-es/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Twitter Component for LiveCycle ES</title>
		<link>http://www.markszulc.com/blog/2007/11/24/twitter-component-for-livecycle-es/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=twitter-component-for-livecycle-es</link>
		<comments>http://www.markszulc.com/blog/2007/11/24/twitter-component-for-livecycle-es/#comments</comments>
		<pubDate>Sat, 24 Nov 2007 09:51:15 +0000</pubDate>
		<dc:creator>Mark Szulc</dc:creator>
				<category><![CDATA[Adobe]]></category>
		<category><![CDATA[LiveCycle]]></category>
		<category><![CDATA[Custom Component]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://www.markszulc.com/blog/2007/11/24/twitter-component-for-livecycle-es/</guid>
		<description><![CDATA[After reading a couple of great articles recently I thought I&#8217;d give writing a component (or DSC &#8211; Document Service Component) for LiveCycle ES a go. For inspiration I read Mike Hodgson&#8217;s Devnet walkthrough article on how to build a component and Christoph Room&#8217;s sample for integrating LiveCycle ES with Adobe Share. Since using the [...]]]></description>
			<content:encoded><![CDATA[<p style="float:right; margin:0 0 10px 15px; width:240px;">
		<img src="http://www.markszulc.com/blog/wp-content/uploads/2007/11/twitterpanel.gif" width="240" />
		</p><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.markszulc.com%2Fblog%2F2007%2F11%2F24%2Ftwitter-component-for-livecycle-es%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.markszulc.com%2Fblog%2F2007%2F11%2F24%2Ftwitter-component-for-livecycle-es%2F&amp;source=mszulc&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>After reading a couple of great articles recently I thought I&#8217;d give writing a component (or DSC &#8211; Document Service Component) for LiveCycle ES a go. For inspiration I read  <a href="http://www.adobe.com/devnet/livecycle/articles/dsc_development.html">Mike Hodgson&#8217;s Devnet walkthrough article on how to build a component</a> and <a href="http://christophrooms.com/2007/10/25/adobe-share-livecycle-es-custom-component/">Christoph Room&#8217;s sample for integrating LiveCycle ES with Adobe Share</a>.</p>
<p><img src="http://66.147.244.84/~markszul/blog/wp-content/uploads/2007/11/twittercomponent.gif" alt="Twitter Component for LiveCycle ES" /></p>
<p>Since using the Twitter API has become the modern day &#8220;Hello World&#8221; I decided to give it a shot. After googling for 5 minutes I found the <a href="http://thinktankmaths.co.uk/java-twitter">Think Tank Twitter java interface</a>.  A few lines of code and I had my class written ready for LiveCycle integration;<span id="more-294"></span></p>
<p><code>package com.markszulc.lc;<br />
import thinktank.twitter.Twitter;<br />
public class TwitterComponent {<br />
public void UpdateTwitter(String accountid, String password, String tweet){<br />
// Make a Twitter object<br />
System.out.println("****** Updating Twitter!!");<br />
System.out.println("AccountID: " + accountid);<br />
Twitter twitter = new Twitter(accountid,password);<br />
// Set my status<br />
twitter.updateStatus(tweet);<br />
}<br />
}</code></p>
<p>I then quickly put together the XML component descriptor that tells LiveCycle ES what properties to display in the panel and how to invoke the class, compile and I was done.. all up less than 1 hour from idea to implementation!</p>
<p><img src="http://66.147.244.84/~markszul/blog/wp-content/uploads/2007/11/twitterpanel.gif" alt="Twitter Component Properties" /></p>
<p>Now anyone can invoke Twitter just by setting a couple of properties!!</p>
<p>Download the Twitter Component for LiveCycle ES here: <a title="twittercomponent10.zip" href="http://66.147.244.84/~markszul/blog/wp-content/uploads/2007/11/twittercomponent10.zip">twittercomponent10.zip</a></p>
<p>Next stop is to work out how to expose exception handling.. stay tuned for version 1.1..</p>
]]></content:encoded>
			<wfw:commentRss>http://www.markszulc.com/blog/2007/11/24/twitter-component-for-livecycle-es/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>

