<?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>Ghosted Notes &#187; Adobe</title>
	<atom:link href="http://ghostednotes.com/category/adobe/feed" rel="self" type="application/rss+xml" />
	<link>http://ghostednotes.com</link>
	<description>The writings of a technology ronin</description>
	<lastBuildDate>Thu, 05 Aug 2010 19:18:12 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Using Neo4j Graph Databases With ColdFusion</title>
		<link>http://ghostednotes.com/2010/04/29/using-neo4j-graph-databases-with-coldfusion</link>
		<comments>http://ghostednotes.com/2010/04/29/using-neo4j-graph-databases-with-coldfusion#comments</comments>
		<pubDate>Thu, 29 Apr 2010 21:56:31 +0000</pubDate>
		<dc:creator>Brian Panulla</dc:creator>
				<category><![CDATA[Adobe]]></category>
		<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[Semantic Web]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[neo4j]]></category>

		<guid isPermaLink="false">http://ghostednotes.com/?p=135</guid>
		<description><![CDATA[After last week,  I decided to put off picking a new frontend platform for my Semantic  Web rubric project and focus a bit on the server backend.
Since this is just a proof-of-concept project at this point I can afford to take some risks in  choosing technologies. I&#8217;ve been following the developments  [...]]]></description>
			<content:encoded><![CDATA[<p>After <a href="/2010/04/21/losing-my-religion" target="_blank">last week</a>,  I decided to put off picking a new frontend platform for my Semantic  Web rubric project and focus a bit on the server backend.</p>
<p>Since this is just a proof-of-concept project at this point I can afford to take some risks in  choosing technologies. I&#8217;ve been following the developments  around using <a href="http://en.wikipedia.org/wiki/Graph_database" target="_blank"><em>graph databases</em></a> for storing data, especially for Semantic Web applications. One project that kept coming up was <a href="http://neo4j.org/" target="_blank">Neo4j</a>, a graph database engine built in Java. I figured now was a good time to try it out. My server-side logic is built in <a href="http://en.wikipedia.org/wiki/ColdFusion" target="_blank">ColdFusion</a>, and integrating open source Java projects like Neo4j into CF applications is generally a snap.</p>
<p>Aside from one hiccup, porting Neo4j&#8217;s <a href="http://wiki.neo4j.org/content/Getting_Started_In_One_Minute_Guide" target="_blank">1-minute Java &#8220;Hello World&#8221; example</a> to CFML proved to be fairly straightforward. The process I used to get this working is detailed below. I&#8217;d suggest that you skim over the <a href="http://wiki.neo4j.org/content/Getting_Started_In_One_Minute_Guide" target="_blank">Java example</a> before continuing &#8211; I&#8217;m sure I left out some of the exposition.</p>
<p>First add the Neo4j Jar files to the ColdFusion server:</p>
<ul>
<li>Download the Neo4j &#8220;Apoc&#8221; distribution and unpack it somewhere convenient. I&#8217;m using Mac OS X, so I put things like this in <strong>~/lib/neo4j-apoc-1.0</strong></li>
<li>Add the Neo4j JAR files to the ColdFusion classpath. Log into your ColdFusion Administrator, and select <strong>Server Settings -&gt; Java and JVM</strong>. Enter the path to the <strong>lib</strong> folder in your Neo4j distribution in <strong>ColdFusion Class Path<br />
</strong></li>
<li>Restart your ColdFusion server. If you&#8217;re at all nervous, log back in to the ColdFusion Administrator and verify that the Neo4j jars are indeed listed on your classpath.</li>
</ul>
<p>Once this is complete, you can initialize a new database for your ColdFusion app. Decide where you want the CF server to create the Neo4j data files and pass that to the object&#8217;s init() method. I put mine in a folder under /tmp on Mac OS X.</p>
<pre>&lt;cfset dbroot = "/tmp/neo4jtest/" /&gt;

&lt;cfset graphDb = createObject('java',
                  "org.neo4j.kernel.EmbeddedGraphDatabase") /&gt;
&lt;cfset graphDb.init(dbroot &amp; "var/graphdb") /&gt;</pre>
<p><em>[Aside for non-ColdFusion folks: CF doesn't instantiate Java objects quite how you'd expect. The call to CreateObject() just gets a handle on the class itself. Calling init() on the resulting handle actually instantiates the class via the appropriate constructor.]</em></p>
<p>Just as in the Java example, it&#8217;s good to surround your connection with a try/catch block that will close your database connection if you throw an error. As I was working with Neo4j I would periodically lock up my database and not be able to connect without restarting CF. Adding a CFTRY/CFCATCH block cleared this right up.</p>
<pre>&lt;cftry&gt;
   &lt;cfset tx = graphDb.beginTx() /&gt;

   &lt;cfscript&gt;
     tx.success();
     WriteOutput("Success.");
   &lt;/cfscript&gt;

   &lt;cfset tx.finish() /&gt;

  &lt;cfcatch type="any"&gt;
     &lt;cfset graphDb.shutdown() /&gt;
     &lt;cfdump var="#cfcatch#"&gt;
   &lt;/cfcatch&gt;
&lt;/cftry&gt;

&lt;cfset graphDb.shutdown() /&gt;
</pre>
<p>Where things got really sticky was the use of Java enumerations to declare the available relationship types for the graph:</p>
<pre> /* Java code */
 public enum  MyRelationshipTypes implements RelationshipType
 {
    KNOWS
 }
</pre>
<p>To my knowledge there&#8217;s no way to declare something like this in standard CFML. I likely could have wrapped this in a Java class of some sort and loaded it through CreateObject(), but that wouldn&#8217;t have been true to the spirit of ColdFusion. So I dug around in the Neo4j docs and found an answer: relationships can be created dynamically at runtime from a static method on the class <strong>org.neo4j.graphdb.DynamicRelationshipType</strong>. I created an instance of DynamicRelationshipType for the &#8220;KNOWS&#8221; relationship and loaded it into a Struct, anticipating caching them in Application scope for a real application.</p>
<pre> relationship = CreateObject("java",
                             "org.neo4j.graphdb.DynamicRelationshipType");
 MyRelationshipTypes = structNew();
 MyRelationshipTypes.KNOWS = relationship.withName( "KNOWS" );
</pre>
<p>It might be interesting to see if these relationship enumerations could be generated and compiled by something like <a href="http://javaloader.riaforge.org/" target="_blank">JavaLoader</a>. I&#8217;m not yet aware of any downsides with dynamic relationships besides the obvious lack of compile-time checking.</p>
<p>The rest of the exercise follows without any real suprises:</p>
<pre> firstNode = graphDb.createNode();
 secondNode = graphDb.createNode();
 relationship = firstNode.createRelationshipTo( secondNode,
                                         MyRelationshipTypes.KNOWS );

 firstNode.setProperty( "message", "Hello, " );
 secondNode.setProperty( "message", "world!" );
 relationship.setProperty( "message", "brave Neo4j " );

 WriteOutput( firstNode.getProperty( "message" ) );
 WriteOutput( relationship.getProperty( "message" ) );
 WriteOutput( secondNode.getProperty( "message" ) );
</pre>
<p>And there you have it! A quick and dirty Neo4j application built with CFML.</p>
<p>I&#8217;ve put a little work into developing a Neo4j helper class that hides some of these warts in a nice clean CFC. As soon as I can get eGit to behave I&#8217;ll <a href="http://github.com/bpanulla/cf_neo4j" target="_blank">post the files on GitHub</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://ghostednotes.com/2010/04/29/using-neo4j-graph-databases-with-coldfusion/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Losing my religion</title>
		<link>http://ghostednotes.com/2010/04/21/losing-my-religion</link>
		<comments>http://ghostednotes.com/2010/04/21/losing-my-religion#comments</comments>
		<pubDate>Wed, 21 Apr 2010 16:01:44 +0000</pubDate>
		<dc:creator>Brian Panulla</dc:creator>
				<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[ipad]]></category>

		<guid isPermaLink="false">http://ghostednotes.com/?p=130</guid>
		<description><![CDATA[So I ordered an iPad because I want to build things for it. My first project was going to be a port of the Rubricator concept &#8212; the larger screen and interest of the education community made this seem like a good fit for an iPad application.
Unfortunately, I made a crazy choice in February and [...]]]></description>
			<content:encoded><![CDATA[<p>So I ordered an iPad because <a href="/2010/04/07/hey-ipad-twitter-called-and-it-wants-its-haters-back">I want to build things for it</a>. My first project was going to be a <a href="/2010/03/02/towards-an-open-rubric-part-two">port of the Rubricator concept</a> &#8212; the larger screen and interest of the education community made this seem like a good fit for an iPad application.</p>
<p>Unfortunately, I made a crazy choice in February and started down the path of the <a href="http://www.mikechambers.com/blog/2009/10/05/building-applications-for-the-iphone-with-flash/comment-page-2/#comment-17044" target="_blank">Flash CS5 Packager for iPhone</a> rather than commit to the straight-up Apple toolchain I&#8217;d been dabbling with for the last year and a half. Why Flash? I was hoping I&#8217;d be able to use at least some of my Flex expertise &#8211; full-blown Flex components weren&#8217;t supported, but ActionScript techniques translate readily back to plain old Flash. This would also give me a chance to experiment with a lightweight AS-only component set (<a href="http://www.minimalcomps.com/" target="_blank">minimalcomps</a>) and an interesting Dependency Injection framework I&#8217;d been hearing a lot about (<a href="http://www.robotlegs.org/" target="_blank">Robotlegs</a>).</p>
<p>Not only was this process awkward, the my first cracks at the app itself was painfully slow. It was obvious that the techniques I&#8217;d developed for Web and desktop application development were not going to be enough to make a reasonable iPhone app, even with a good UI concept. I was beginning to see the dark at the end of the tunnel for this pet project of mine.</p>
<p>But then disaster &#8211; <a href="http://daringfireball.net/2010/04/iphone_agreement_bans_flash_compiler" target="_blank">Apple pulled the rug out</a> from under the entire Packager for iPhone concept, taking their ball and going home. Boy howdy,<em> I loved middle school</em>. It took a few weeks, but yesterday <a href="http://www.mikechambers.com/blog/2010/04/20/on-adobe-flash-cs5-and-iphone-applications/" target="_self">Adobe finally cried uncle</a> and the proprietary software apologist in me died a little. The two companies that saw me through Microsoft&#8217;s bungled hegemony over the Web are now taking shots at each other. <em>Can&#8217;t mommy and daddy just get along?</em></p>
<p>So where do I go now? Do I succumb to Apple&#8217;s strong arm tactics and commit to the platform in the way they so desperately want? Do I ditch Apple and run <a href="http://dev.chromium.org/chromium-os/user-experience/form-factors/tablet">careening for Google and Android</a>?  Or do I run to something like<a href="http://www.nitobi.com/products/phonegap/" target="_blank"> PhoneGap</a>, which promises a more open way to develop apps with JavaScript and Web standards.</p>
<p>Anybody wanna buy an iPad, slightly smudged?</p>
]]></content:encoded>
			<wfw:commentRss>http://ghostednotes.com/2010/04/21/losing-my-religion/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Hey iPad &#8211; Twitter called and it wants its haters back</title>
		<link>http://ghostednotes.com/2010/04/07/hey-ipad-twitter-called-and-it-wants-its-haters-back</link>
		<comments>http://ghostednotes.com/2010/04/07/hey-ipad-twitter-called-and-it-wants-its-haters-back#comments</comments>
		<pubDate>Wed, 07 Apr 2010 15:39:37 +0000</pubDate>
		<dc:creator>Brian Panulla</dc:creator>
				<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://ghostednotes.com/?p=109</guid>
		<description><![CDATA[I&#8217;ve spent the last few days playing with my new iPad. I don&#8217;t really think of myself as an Apple fanboy, but evidence might be starting to mount. I originally wanted an iPad for application testing &#8211; I&#8217;m working on a few projects that would benefit from ultra-mobility and reasonable screen size.
To me this is [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve spent the last few days playing with my new iPad. I don&#8217;t really think of myself as an Apple fanboy, but evidence might be starting to mount. I originally wanted an iPad for application testing &#8211; I&#8217;m working on a few projects that would benefit from ultra-mobility and reasonable screen size.</p>
<p>To me this is a whole new category of device, and I wanted to get a real feel for what this thing was all about. I already have or use the devices around the niche the iPad appears to be destined for &#8211; the MacBook, the iPhone, netbook &#8211; but I really did see this as Something Completely Different. I desperately wanted to like the Windows Tablet; I&#8217;d been an early Palm user (III/V/m105) and I tried two early generations (a Compaq TC1000 and a Toshiba M205). I  carried them from meeting to class to meeting, but it never clicked. I saw the potential, but the experience was truly lacking for me.</p>
<p>Yes, I am still ticked off that there&#8217;s no Flash &#8211; I enjoy building apps in Flex and AIR. I&#8217;m even more disappointed that Apple appears to have removed the blue brick icon when a<a href="http://boingboing.net/2010/01/29/the-ipad-get-used-to.html" target="_blank"> missing plugin is needed for page content</a>. I have yet to see one in Safari when browsing Web sites. This was serving as an <a href="http://www.zazzle.com/blue_brick_sticker-217234315849242333" target="_blank">ensign for the Flash community</a>.  If Apple has indeed removed this emblem, perhaps Flash developers should put that icon in the<a href="http://ghostednotes.com/2006/05/23/Eolas-js-fix-for-Flash-Navigation" target="_self"> alternate content area of the embed/object tag</a>. [<em>Update 4/13/10: Someone has<a href="http://www.gskinner.com/blog/archives/2010/04/return_of_the_b.html" target="_blank"> done precisely that</a></em>]</p>
<p>But the real amazing thing to me has been all the vitriol about the iPad &#8211; it&#8217;s like the usual unsocialized nonsense of Slashdot has exploded all over the Web. It frankly reminds me of the early days of Twitter &#8211; &#8220;Why would anyone want to know what I had for breakfast?&#8221; was the usual slant. And that showed that they didn&#8217;t *get it*</p>
<p>I also feel the same sort of guarded optimism as I did with Twitter &#8211; something&#8217;s <em>different</em> here. Now that folks with an inclination to develop have the actual devices, <em>There Will Be Code</em>. And from that code will come new kinds of applications and uses that we have only begun to consider.</p>
]]></content:encoded>
			<wfw:commentRss>http://ghostednotes.com/2010/04/07/hey-ipad-twitter-called-and-it-wants-its-haters-back/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>FlexBuilder 3 for academia</title>
		<link>http://ghostednotes.com/2008/03/05/FlexBuilder-3-for-academia</link>
		<comments>http://ghostednotes.com/2008/03/05/FlexBuilder-3-for-academia#comments</comments>
		<pubDate>Wed, 05 Mar 2008 13:03:00 +0000</pubDate>
		<dc:creator>Brian Panulla</dc:creator>
				<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://ghostednotes.com/2008/03/05/FlexBuilder-3-for-academia</guid>
		<description><![CDATA[Since FlexBuilder 3 was released last week, I decided to hunt around for the &#8216;free to academics&#8217; offer and see if it applies to FlexBuilder 3. Here&#8217;s where it lives now:

http://www.flexregistration.com/

Interesting things to note:


It apparently does apply to staff too (woo!)
You can request more than one license if you&#8217;re using it for a class or [...]]]></description>
			<content:encoded><![CDATA[<p>Since FlexBuilder 3 was released last week, I decided to hunt around for the <a href="http://www.networkworld.com/news/2007/102407-adobe-makes-flex-builder-free.html">&#8216;free to academics&#8217;</a> offer and see if it applies to FlexBuilder 3. Here&#8217;s where it lives now:</p>
<blockquote><p>
<a href="http://www.flexregistration.com/">http://www.flexregistration.com/</a>
</p></blockquote>
<p>Interesting things to note:
</p>
<ol>
<li>It apparently does apply to staff too (woo!)</li>
<li>You can request more than one license if you&#8217;re using it for a class or a lab. That will be a real time-saver.</li>
<li>You have to scan your ID and submit it with the form. Uhh&#8230; scan? paper? I don&#8217;t have a scanner hooked up anywhere, so I took a photo of my ID with the iSight on MacBook Pro and tried that, thumb included free of charge.</li>
</ol>
<p>The action page tells you to allow a few weeks for processing the request, but mine was approved the next day&#8230;. that&#8217;s service!</p>
]]></content:encoded>
			<wfw:commentRss>http://ghostednotes.com/2008/03/05/FlexBuilder-3-for-academia/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Problems (and a Few Solutions) Installing Adobe CS3</title>
		<link>http://ghostednotes.com/2007/08/15/Problems-and-a-Few-Solutions-Installing-Adobe-CS3</link>
		<comments>http://ghostednotes.com/2007/08/15/Problems-and-a-Few-Solutions-Installing-Adobe-CS3#comments</comments>
		<pubDate>Wed, 15 Aug 2007 15:08:00 +0000</pubDate>
		<dc:creator>Brian Panulla</dc:creator>
				<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Macintosh]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://ghostednotes.com/2007/08/15/Problems-and-a-Few-Solutions-Installing-Adobe-CS3</guid>
		<description><![CDATA[So we got our media for Adobe Creative Suite 3 last week, and I&#8217;ve been fighting with the installs on various systems for the last few days. Some notes from the battlefield:
That popping sound you heard was sudden obsolescence
Adobe Premiere Pro and Soundbooth are only supported on multicore Intel Macs. So much for our &#8220;multimedia [...]]]></description>
			<content:encoded><![CDATA[<p>So we got our media for Adobe Creative Suite 3 last week, and I&#8217;ve been fighting with the installs on various systems for the last few days. Some notes from the battlefield:</p>
<h2>That popping sound you heard was sudden obsolescence</h2>
<p>Adobe Premiere Pro and Soundbooth are only supported on multicore Intel Macs. So much for our &#8220;multimedia lab&#8221; of 2GHz Dual G5 PowerMacs.</p>
<h2>You want <em>how much RAM and disk space</em>?</h2>
<p>Be prepared to clean up your hard disks, especially on notebooks &#8212; CS3 Master want&#8217;s almost 20GB of disk space to install. Web Premium for Windows also complained on our XP systems, which have only 512MB of RAM. I can&#8217;t really fault them for that, though&#8230; XP alone takes that much RAM to function. <img src='http://ghostednotes.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<h2>Blank Popup Window on Mac Pro Install</h2>
<p>I fought with installing Master Collection on my Mac Pro for a few days. The install would get to the end of disc 1 and pop up a blank alert box, mutely asking me to put in the second disc. There were no buttons to click on, and nothing I did could get the install to continue. I had to force-quite the Setup app and clean up my system.</p>
<p>I was eventually able to complete the install by copying the contents of all four discs to a single &#8220;payload&#8221; folder on my hard disk and running the install from there, <a href="http://www.adobeforums.com/cgi-bin/webx/.3bc4a0e3/8" target="_blank">as described here</a>.</p>
<p>Turns out the culprit may have been <a href="http://www.adobeforums.com/cgi-bin/webx/.3bc478ca/3" target="_blank">the Safari 3 beta</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://ghostednotes.com/2007/08/15/Problems-and-a-Few-Solutions-Installing-Adobe-CS3/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>News flash: Adobe to release Flex as open source</title>
		<link>http://ghostednotes.com/2007/04/26/News-flash-Adobe-to-release-Flex-as-open-source</link>
		<comments>http://ghostednotes.com/2007/04/26/News-flash-Adobe-to-release-Flex-as-open-source#comments</comments>
		<pubDate>Thu, 26 Apr 2007 16:04:00 +0000</pubDate>
		<dc:creator>Brian Panulla</dc:creator>
				<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://ghostednotes.com/2007/04/26/News-flash-Adobe-to-release-Flex-as-open-source</guid>
		<description><![CDATA[Adobe is announcing plans to open source Flex under the Mozilla Public License (MPL).
More information is available on Adobe Labs.
]]></description>
			<content:encoded><![CDATA[<p>Adobe is announcing plans to open source Flex under the Mozilla Public License (MPL).</p>
<p>More information is available on <a target="_blank" href="http://labs.adobe.com/wiki/index.php/Flex:Open_Source">Adobe Labs</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://ghostednotes.com/2007/04/26/News-flash-Adobe-to-release-Flex-as-open-source/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
