<?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>Web Design &#38; Marketing - Medina, Cleveland, Akron Ohio &#124; ETHODE &#187; APIs</title>
	<atom:link href="http://www.ethode.com/category/blog/development/apis/feed" rel="self" type="application/rss+xml" />
	<link>http://www.ethode.com</link>
	<description>You&#039;re source for Development and Design in North East Ohio</description>
	<lastBuildDate>Mon, 23 Jan 2012 18:52:13 +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>Out with (JSON Serializer) and In With GSON</title>
		<link>http://www.ethode.com/267/out-with-and-in-with-gson</link>
		<comments>http://www.ethode.com/267/out-with-and-in-with-gson#comments</comments>
		<pubDate>Wed, 01 Sep 2010 16:59:55 +0000</pubDate>
		<dc:creator>Joshua</dc:creator>
				<category><![CDATA[APIs]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Spring MVC]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[FlexJson]]></category>
		<category><![CDATA[Gson]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[REST API]]></category>
		<category><![CDATA[RESTful]]></category>

		<guid isPermaLink="false">http://www.ethode.com/?p=267</guid>
		<description><![CDATA[Using JSON in a RESTful API?  Having trouble finding a good JSON serializer?  Stop using what ever it is you're using and check out this article!]]></description>
			<content:encoded><![CDATA[<p>So as many of you know, we worth a lot with <a title="Spring MVC - By SpringSource" href="http://www.springsource.com" target="_blank">Spring MVC</a> (2.5 and up) and utilize the RESTful-ness of Spring quite often.  Many times we have also needed to simply respond with JSON for AJAX calls and remote calls.  For this, <a title="FlexJSON Home" href="http://flexjson.sourceforge.net/" target="_blank">FlexJson</a> works pretty well.  I haven&#8217;t had much to complain about until I ran into a limitation this week.</p>
<p>Apparently <a title="FlexJSON" href="http://flexjson.sourceforge.net/" target="_blank">FlexJson</a> doesn&#8217;t really handle next objects or List&lt;&gt;&#8217;s very well.  Matter of fact I found it almost impossible to get the result I was looking for even after using their &#8220;include()&#8221; method to added in different object properties.</p>
<p>After toying around in a couple forums I finally stumbled upon someone mentioning <a title="GSON Library Home" href="http://code.google.com/p/google-gson/" target="_blank">Gson</a>.  <a title="GSON Library" href="http://code.google.com/p/google-gson/" target="_blank">Gson</a> is now my favorite thing for this week <img src='http://www.ethode.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> !!!</p>
<p>Implementing GSON was simple.</p>
<p>// Initialize Gson<br />
Gson serializer = new Gson();<br />
// Serialize almost any object.. POOF, done!<br />
String jsonString = serializer.toJson(object);</p>
<p>Simple huh?  Have fun with Gson, and comment any tips or tricks you have for Json API&#8217;s!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ethode.com/267/out-with-and-in-with-gson/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installing dotCMS 1.9 In the Cloud</title>
		<link>http://www.ethode.com/108/installing-dotcms-1-9-in-the-cloud</link>
		<comments>http://www.ethode.com/108/installing-dotcms-1-9-in-the-cloud#comments</comments>
		<pubDate>Tue, 29 Jun 2010 12:54:39 +0000</pubDate>
		<dc:creator>Joshua</dc:creator>
				<category><![CDATA[APIs]]></category>
		<category><![CDATA[CMS Products]]></category>
		<category><![CDATA[dotCMS 1.9]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[CMS]]></category>
		<category><![CDATA[dotCMS]]></category>
		<category><![CDATA[dotCMS in Cloud]]></category>
		<category><![CDATA[JDK 5]]></category>
		<category><![CDATA[LiquidWeb]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Storm on Demand]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.ethode.com/?p=108</guid>
		<description><![CDATA[As some of you already know, ETHODE has chosen <a title="dotCMS" href="http://www.dotcms.org" target="_blank">dotCMS 1.9</a> for their next CMS build out.  I have a couple post prior explaining why but this post will focus on getting the system setup using Storm On Demand (Cloud, not Baremetal Servers) which is a service from <a href="http://www.liquidweb.com/?rid=ethode">LiquidWeb</a>.]]></description>
			<content:encoded><![CDATA[<p>As some of you already know, ETHODE has chosen <a title="dotCMS" href="http://www.dotcms.org" target="_blank">dotCMS 1.9</a> for their next CMS build out.  I have a couple post prior explaining why but this post will focus on getting the system setup using Storm On Demand (Cloud, not Baremetal Servers) which is a service from <a href="http://www.liquidweb.com/?rid=ethode">LiquidWeb</a>.</p>
<p><strong>Server Packages &amp; Setup</strong></p>
<ul>
<li><a title="Ubuntu Linux" href="http://www.ubuntu.com" target="_blank">Ubuntu 9.0.4 x86_64</a></li>
<li><a title="dotCMS Opensource CMS written in java" href="http://www.dotcms.org" target="_blank">dotCMS 1.9</a></li>
<li><a title="Java JDK 5 (1.5.0)" href="http://java.sun.com/javase/downloads/index_jdk5.jsp" target="_blank">java jdk 5 (1.5.0)</a> (dotCMS doesn&#8217;t work with 1.6.0 which is jdk 6)</li>
<li><a title="MySQL openSource Database" href="http://www.mysql.com" target="_blank">MySQL 5.0</a> (dotCMS Support MySQL, MS SQL, Postgres and Oracle)</li>
</ul>
<p><strong>Step 1) Setup Server</strong></p>
<p>For me, like stated, I am using Storm On Demand servers, thus I basically login to my control panel and I create a new instance. This server takes just a couple minutes to build and then I&#8217;m ready to go.  The password is set to the account strong password used when creating your control panel login.  So you can ssh into your machine using that password and the root username.</p>
<p>The first thing I always like to do with a new instance is run a full system update using APT.</p>
<pre>apt-get update</pre>
<p><strong>Step 1-a) Java JDK</strong></p>
<p>Then once everything is update install the 1.5 jdk (now all number is single, so look for JDK for J2SE 5, instead of 1.5, which is need for dotCMS to run (not compatible with 1.6).  You can use the <a title="IBM JDK implementation" href="https://www.ibm.com/developerworks/java/jdk/" target="_blank">IBM</a>, Sun or <a title="openJDK" href="http://openjdk.java.net/" target="_blank">openJDK </a>version.  Doesn&#8217;t make a difference, but Ubuntu allows you to use openJDK and Sun&#8217;s JDK right from APT.</p>
<p><span style="font-family: monospace;">apt-get install sun-java5-jdk</span></p>
<p>Once the jdk is installed you&#8217;re almost ready to go.</p>
<p>Now make sure that the JAVA_HOME path is set.  You can try the command &#8220;export $JAVA_HOME&#8221; and if nothing comes out, then you&#8217;ll need to set it.</p>
<div id="_mcePaste">One way that you can set your JAVA_HOME variable and add to your PATH, is be doing the folowing.  As &#8216;sudo&#8217; open up /etc/bash.bashrc and add the following to the end of the file.  NOTE: Set the java path to whatever the actual path is on your environment if it does not match /usr/lib/jvm/java</div>
<div id="_mcePaste">JAVA_HOME=/usr/lib/jvm/java</div>
<div id="_mcePaste">export JAVA_HOME</div>
<div id="_mcePaste">PATH=$PATH:$JAVA_HOME/bin</div>
<div id="_mcePaste">export PATH</div>
<p>Next, save the file and in some cases you might have to restart your sshd daemon.</p>
<pre>/etc/init.d/sshd restart</pre>
<p><strong>Step 1-b) MySQL</strong></p>
<p>Make sure MySQL is installed.  You can simple try &#8220;/etc/init.d/mysql restart&#8221; to see if the server exists.. Yes yes I know some of you are already yelling at me to just use the version check command.. But, sometimes, this command just slips off of the fingers quicker haha.  I do a lot of restarting of daemons, it&#8217;s like second nature, and besides this is a new server install, there isn&#8217;t anything live using MySQL yet.  If this server wasn&#8217;t a new instance, please be aware this is dumb, and shouldn&#8217;t be used.</p>
<p>Just in case you don&#8217;t have MySQL installed, you can use the follow APT command</p>
<pre>apt-get install mysql-server</pre>
<p>After you have ensured that MySQL is running we need to change 1 setting in the my.cnf file.</p>
<pre>vim /etc/mysql/my.cnf</pre>
<p>Add &#8220;lower_case_table_names=1&#8243; excluding the quotes to the my.cnf file and then run the MySQL restart command again and MySQL is ready to go.  We do not need to run any install scripts on MySQL because the dotCMS package is set to install it&#8217;s data into the database when it&#8217;s ran for the first time.</p>
<p>Lastly, lets create a database and user for dotcms.  So lets login to MySQL.</p>
<pre>mysql --user=username -p</pre>
<pre>mysql&gt; create database dotcms; (now hit enter)</pre>
<pre>mysq&gt; use dotcms; (hit enter)</pre>
<pre>mysql&gt; create user 'dotcms'@'localhost' IDENTIFIED BY 'somePassWord' (hit enter)</pre>
<pre>mysql&gt; GRANT ALL PRIVILEGES ON *.* TO 'dotcms''@'localhost' (hit enter)</pre>
<p>optionally if you would like to access the db outside of the localhost using the same user you can interchange &#8216;localhost&#8217; with &#8216;%&#8217;.</p>
<p>Now you have created a new user, and granted it permissions on the dotcms database. MySQL is ready to rock baby!</p>
<p><strong>Step 2) Get dotCMS 1.9</strong></p>
<p>I learned the hard way but as tantalizing as the full fledged release version of dotCMS 1.9 is, please use the latest trunk from svn.  There are a HUGE number of bug fixes, and I underestimated just how many.  I previously installed 1.9 from the version 1.9b3, and there were some CRUCIAL bugs still now fixed like the ability to add multiple hosts, and copy hosts.. This a HUGE issue.  However, the latest trunk is all good to go.</p>
<p><strong>Step 2 a) Download dotCMS 1.9 from SVN</strong></p>
<p>No matter what SVN client you use there are many out there. No matter which client you use get the latest version from http://svn.dotcms.org/trunk</p>
<p><strong>Step 2 b) compile dotCMS using ant</strong></p>
<p>Once the source has downloaded you&#8217;ll have to compile it, and it will created all of the necessary SQL files and trust me it&#8217;s not hard..  Just 1 command, your grandmother could do this <img src='http://www.ethode.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>The command you need to run (windows or ssh) is going to be from the root of the project and is:</p>
<pre>ant deploy</pre>
<p>I know, confusing huh? <img src='http://www.ethode.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />   At any rate this will setup the entire directory, files, etc to be installed.</p>
<p><strong>Step 2 b) Place files in location for instance</strong></p>
<p>Now, you can technically run the instance from where ever you would like but I like to keep things tight in Ubuntu.  I suggest putting the files into a directory called &#8220;dotCMS&#8221;, or perhaps &#8220;dotCMS19&#8243; and that directory should be located in /user/local and some like to use /opt/ in Ubuntu.. Doesn&#8217;t matter much to me but I don&#8217;t like to run these things from my user or root home folders.</p>
<p><strong>Step 3 a) Configure dotCMS</strong></p>
<p>We have a couple things we need to take care of.  First we need to edit /conf/Catalina/localhost/ROOT.xml file. Make sure and change the database name in the URL, the username and password for the database server and make sure that only ONE database config is uncommented at a  time.. Trust me, people forget about this all the time.</p>
<p>From the root directory, (dotCMS/) run the following command:</p>
<pre>chmod -R 755 *.sh</pre>
<p>This will ensure that all sh scripts have the correct permission both in dotCMS and tomcat to run properly.</p>
<p><strong>Step 4) Start the dotCMS instance</strong></p>
<p>Go into your dotCMS installation directory.. dotCMS/bin/ and run the following to start the installed and cause dotCMS to install the default database scripts.</p>
<pre>sh ./startup.sh</pre>
<p><strong>Step 5) Login and Enjoy</strong>
<p>You&#8217;re all set, now just login to http://localhost/c/</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ethode.com/108/installing-dotcms-1-9-in-the-cloud/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>7 Awesome New Features in dotCMS 1.9</title>
		<link>http://www.ethode.com/102/7-new-features-in-dotcms-1-9</link>
		<comments>http://www.ethode.com/102/7-new-features-in-dotcms-1-9#comments</comments>
		<pubDate>Wed, 23 Jun 2010 11:04:17 +0000</pubDate>
		<dc:creator>Joshua</dc:creator>
				<category><![CDATA[APIs]]></category>
		<category><![CDATA[CMS Products]]></category>
		<category><![CDATA[dotCMS 1.9]]></category>
		<category><![CDATA[Languages]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[dotCMS]]></category>
		<category><![CDATA[Form Builder]]></category>
		<category><![CDATA[groovy]]></category>
		<category><![CDATA[Internationalization]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[Multi Language]]></category>
		<category><![CDATA[multi-site]]></category>
		<category><![CDATA[Multi-Site CMS]]></category>
		<category><![CDATA[REST API]]></category>
		<category><![CDATA[Web Services]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.ethode.com/?p=102</guid>
		<description><![CDATA[DotCMS 1.9 will be a monumental update to the current 1.7 version of the CMS project.  While 1.7 was and still is an outstanding platform, one can easily see why 1.9 will light the CMS world on fire.

I have compile a list of my top 10 favorite dotCMS features in 1.9, enjoy, and feel free to share you're in the comments.]]></description>
			<content:encoded><![CDATA[<p>DotCMS 1.9 will be a monumental update to the current 1.7 version of the CMS project.  While 1.7 was and still is an outstanding platform, one can easily see why 1.9 will light the CMS world on fire.</p>
<p>I have compile a list of my top 10 favorite dotCMS features in 1.9, enjoy, and feel free to share you&#8217;re in the comments.</p>
<p>1) <strong>Brand New UI</strong> &#8211;  This might not seem like a new &#8220;feature&#8221; but trust me it is.  The old UI, was a bit clunky and unfamiliar, however, the new interface is very intuitive and easy to use.  Also, the inline editor makes best use of the power presented with dotCMS, I couldn&#8217;t be happier with the new UI, and I definitely think the designers should get some props!  The new layout uses <a title="DOJO Ajax Toolkit" href="http://www.dojotoolkit.com" target="_blank">Dojo AJAX Toolkit</a> for almost everything.</p>
<p>2)  <strong>Multi-Site/Tenant Management</strong> &#8211; This feature speaks for it&#8217;s self, but until you really see the interface and see the power it&#8217;s hard to see the benefit.  I have attached a small screencast below to show you the power in the multi-site management system.</p>
<p>
<object width="640" height="385"><param name="movie" value="http://www.youtube.com/v/dy2jQAiMzHk&#038;hl=en_US&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/dy2jQAiMzHk&#038;hl=en_US&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"></embed></object>
</p>
<blockquote><p>In the words of dotCMS them selves:<br />
With dotCMS 1.9 multi-tenant capabilities, whole sites can be quickly created, shared and even be copied from existing web properties to help speed your &#8220;time to live&#8221;.  With our new host manager, administrators can provision hosts globally, changing permissions, themes, analytic code, able to make host-wide changes from a single friendly interface.</p></blockquote>
<p>3) <strong>WebServices and JSON API &#8211; </strong>This feature is huge for all of your developers out there who need to built onto dotCMS and make a more robust and custom solution.  This will allow you to access data from the site, manipulate your data and create your own tooling.  Need to create your own iPhone or Android app to interface with a site built on dotCMS 1.9?  If so, this feature is perfect for getting and passing data back and forth.</p>
<p>4) <strong>Internationalization &#8211; </strong>dotCMS 1.9 is now fully nationalized.  The product takes use of best practices and even allows localization of the administration panel.  dotCMS 1.9 will ship with English, Spanish, Romanian and German translations, but more will be coming soon and you can also create your own if need be.</p>
<p>5) <strong>Integrated Form Builder &#8211; </strong>This is another huge feature that frankly I&#8217;m surprised to see in this release.  With the amount of new features slated to be released in the new 1.9 version, it&#8217;s hard to believe that they found the time to integrate a new form builder product.  The Form Builder, does precisely what it sounds like; allows you to create your own forms using a GUI interface in the admin panel and then stores and reports the data back to you, the user.  This is very useful for large data collection projects, or anyone who ever uses forms.. Ever.. For any reason!  I&#8217;ve used Form Builders with previous CMS&#8217; like <a title="Joomla CMS" href="http://www.joomla.org" target="_blank">Joomla</a> but this implementation blows them all away.</p>
<p>6)  <strong>SUDO Logon Power &#8211; </strong> If you&#8217;re hosting multiple websites on this system, and for multiple owners/users this feature is a must.  I&#8217;m excited to get this feature in place, but basically this will allow you, the admin, to login as if you&#8217;re the other user.  You&#8217;ll see what they see, get restricted to what ever they&#8217;re restricted to, and you&#8217;ll really get a good feel for what your client is seeing.  Before, working in such environments you were forced to memorize or collect passwords while you were testing and tinkering around, but fumble with passwords no more, this feature will grow on you.</p>
<p>7) <strong>PHP &#8211; Ruby &#8211; Python &#8211; Groovy Plugin &#8211; </strong>Given the wide range of developers who use dotCMS I&#8217;m inclined to believe that this new plugin will be very popular.  This plugin will allow a developer to create code in <a title="PHP Language Home Page" href="http://www.php.net" target="_blank">PHP</a>, <a title="Ruby Programming Language" href="http://ruby-lang.org" target="_blank">Ruby</a>, <a title="Python Programming Language" href="http://www.python.org" target="_blank">Python</a>, or <a title="Groovy Programming Language" href="http://groovy.codehaus.org" target="_blank">Groovy</a> and integrate it into content.  This works similar to integrating JavaScript into HTML.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ethode.com/102/7-new-features-in-dotcms-1-9/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Wave Turns 1 Year Old</title>
		<link>http://www.ethode.com/89/google-wave-turns-1-year-old</link>
		<comments>http://www.ethode.com/89/google-wave-turns-1-year-old#comments</comments>
		<pubDate>Mon, 31 May 2010 13:52:03 +0000</pubDate>
		<dc:creator>Joshua</dc:creator>
				<category><![CDATA[APIs]]></category>
		<category><![CDATA[Google Wave]]></category>
		<category><![CDATA[Products]]></category>
		<category><![CDATA[AIM]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[AOL]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[DROID]]></category>
		<category><![CDATA[EMAIL]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[HTC]]></category>
		<category><![CDATA[Instant Messenger]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Motorola]]></category>
		<category><![CDATA[Wave]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.ethode.com/?p=89</guid>
		<description><![CDATA[Google Wave, Happy Birthday.  I still have not figured out how you can fit into my daily life, but I'm glad you're here.]]></description>
			<content:encoded><![CDATA[<p>Google Wave, Happy Birthday.  I still have not figured out how you can fit into my daily life, but I&#8217;m glad you&#8217;re here.</p>
<p>Seriously folks, <a title="Google Wave" href="http://wave.google.com" target="_blank">Google Wave</a> is one of the most astounding changes in Internet Communications sense AOL Instant Messenger and ICQ.  This allows a more real-time feel and gives us astounding capabilities for collaboration.  I can&#8217;t say enough GOOD things about Google Wave.  But there is just one problem; how can I incorporate this &#8220;awesome&#8221; tool into my daily life?</p>
<p>There really aren&#8217;t many tools out there using the <a title="Google Wave API" href="http://code.google.com/apis/wave/" target="_blank">Wave API</a> yet, and right now people are slow to adopt the system, and because really all parties have to be using wave for this to work, it&#8217;s almost like a social network, without other people.</p>
<p>Like <a title="Google Android OS" href="http://code.google.com/android/" target="_blank">Android</a>, Google&#8217;s outstanding OpenSource operating system (built on Linux), it&#8217;s adoption rate after it&#8217;s initial announcement hasn&#8217;t been all that great.  Even with a superior product, people are still using the tools that are right in front of them, that are easy and familiar.  What we need is, something BIG, something with a major carrier, business or person that will put Wave into the spotlight of people and give it credibility in the eyes of developers all across the globe.</p>
<p>For Android, that was the &#8220;DROID&#8221; from Motorola and Verizon&#8217;s initial HUGE contract to work with Android.  Ever since then, HTC has been rocketing out Android phones at an unprecedented pace.</p>
<p>For now, I&#8217;m going to leave you with the Developer Preview Conference video which I watched, IN FULL last year as soon as it debuted.</p>
<p><object width="640" height="385"><param name="movie" value="http://www.youtube.com/v/v_UyVmITiYQ&#038;hl=en_US&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/v_UyVmITiYQ&#038;hl=en_US&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ethode.com/89/google-wave-turns-1-year-old/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

