<?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>My Blog</title>
	<atom:link href="http://www.jasonrowland.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jasonrowland.com</link>
	<description>Just another WordPress site</description>
	<lastBuildDate>Mon, 08 Oct 2012 22:20:25 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4.2</generator>
		<item>
		<title>Grails Gotcha &#8211; Domain Field Capitalization</title>
		<link>http://www.jasonrowland.com/2012/10/08/grails-gotcha-domain-field-capitalization/</link>
		<comments>http://www.jasonrowland.com/2012/10/08/grails-gotcha-domain-field-capitalization/#comments</comments>
		<pubDate>Mon, 08 Oct 2012 22:20:25 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Groovy]]></category>

		<guid isPermaLink="false">http://www.jasonrowland.com/?p=470</guid>
		<description><![CDATA[You should use standard camelCase names for your fields and not ProperCase. The following gotcha only reveals itself if you do not use standard camelCase naming conventions for fields. The reason you may want to violate camelCase naming conventions is &#8230; <a href="http://www.jasonrowland.com/2012/10/08/grails-gotcha-domain-field-capitalization/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>You should use standard camelCase names for your fields and not ProperCase.</p>
<p>The following gotcha only reveals itself if you do not use standard camelCase naming conventions for fields. The reason you may want to violate camelCase naming conventions is when you have a service callback where you just want to capture the params that they send to you.</p>
<p>Bad:</p>
<pre>class TwilioVoice {
    String AccountSid
    static constraints = {
        AccountSid(nullable: false)
    }
}</pre>
<p>Good:</p>
<pre>class TwilioVoice {
    String accountSid
    static constraints = {
        accountSid(nullable: false)
    }
}</pre>
<p>If your class has a field that starts with a capital letter and you need to use the constraints feature, you will get an error similar to this:</p>
<pre>Message: Can not set java.lang.String field TwilioVoice.MyField to java.lang.Class</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonrowland.com/2012/10/08/grails-gotcha-domain-field-capitalization/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Grails IDE</title>
		<link>http://www.jasonrowland.com/2012/10/01/grails-ide/</link>
		<comments>http://www.jasonrowland.com/2012/10/01/grails-ide/#comments</comments>
		<pubDate>Mon, 01 Oct 2012 19:13:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Groovy]]></category>

		<guid isPermaLink="false">http://www.jasonrowland.com/?p=468</guid>
		<description><![CDATA[Searching for a nice IDE for Grails.  Code completion is the primary criteria I used while evaluating these IDEs.  I limited my evaluation to the following tools: Eclipse, Netbeans, Spring Source&#8217;s Groovy/Grails Tool Suite, and IntelliJ IDEA. Using the following &#8230; <a href="http://www.jasonrowland.com/2012/10/01/grails-ide/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Searching for a nice IDE for Grails.  Code completion is the primary criteria I used while evaluating these IDEs.  I limited my evaluation to the following tools: Eclipse, Netbeans, Spring Source&#8217;s Groovy/Grails Tool Suite, and IntelliJ IDEA.</p>
<p>Using the following class:</p>
<pre>class Customer {
    String firstName
    String lastName
    static hasMany = [phoneNumbers:String]
}</pre>
<p>I should have the following code completion helps to me. One, it should give me help in the constructor of my field choices. It should also give me help for the dynamic methods that Grails introduces with hasMany.</p>
<pre>Customer c = new Customer(firstName: 'Jason', lastName: 'Rowland')
c.addToPhoneNumbers('3035551212')</pre>
<h2>Eclipse</h2>
<p>I am a fan of Eclipse and it is always my IDE of choice because of it&#8217;s many plugins.  In this case though, I couldn&#8217;t get the code completion to work with the dynamic properties and methods that Grails creates.  Also, with the Juno version, it kept crashing and not allowing me to save my code.  I have to force quite the application.  So because Eclipse is not really usable, I had to look for others.</p>
<h2>Netbeans</h2>
<p>Not much to say here except that code completion doesn&#8217;t work for dynamic properties or methods.</p>
<h2>Grails/Groovy Tool Suite</h2>
<p>This IDE from Spring Source get&#8217;s closer.  It gives you code completion tips for the constructors of an object.  It fails to add the dynamic method&#8217;s addToX for the hasMany functionality.</p>
<h2>IntelliJ IDEA</h2>
<p>Nice IDE to use for Grails/groovy development.  Dynamic properties and methods are all available for code completion.  It also has other nice features that I&#8217;d like to explore more. The biggest is the ability to diagram your domain objects.  I haven&#8217;t yet looked into how to do that.  The drawback is the price.  All the other IDEs are free. This has a $199 price tag for an independent developer or a $499 price tag for corporations.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonrowland.com/2012/10/01/grails-ide/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Grails application running on Open-Shift</title>
		<link>http://www.jasonrowland.com/2012/09/24/grails-application-running-on-open-shift/</link>
		<comments>http://www.jasonrowland.com/2012/09/24/grails-application-running-on-open-shift/#comments</comments>
		<pubDate>Mon, 24 Sep 2012 07:17:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Groovy]]></category>

		<guid isPermaLink="false">http://www.jasonrowland.com/?p=450</guid>
		<description><![CDATA[Install Redhat command line tools.  I followed the standard docs to do this for my mac.  Grails will not run on a small gear.  You need to request an upgraded account for this to work.  I created a openshift-grails-quickstart that &#8230; <a href="http://www.jasonrowland.com/2012/09/24/grails-application-running-on-open-shift/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Install Redhat command line tools.  I followed the <a href="https://openshift.redhat.com/community/get-started">standard docs</a> to do this for my mac.  Grails will not run on a small gear.  You need to request an upgraded account for this to work.  I created a <a href="https://github.com/jasonxrowland/openshift-grails-quickstart">openshift-grails-quickstart</a> that can be used.  This work was based on the <a href="https://github.com/openshift/openshift-tomcat-quickstart">openshift-tomcat-quickstart</a> on github for the tomcat portion.</p>
<div> The grails work consists basically of the following:</div>
<ol>
<li>Copy the tomcat distribution in diy/tomcat directory.</li>
<li>Copy the Grails distribution in the diy/grails directory.</li>
<li>Modify the deploy, start, stop commands for grails.</li>
<li>Fix the &#8220;grails war&#8221; command to use a HOME directory and ivy-cache to which the openshift user can write.</li>
</ol>
<p>There is a slight problem that I&#8217;ve yet to resolve.  When I run grails run-app locally, it adds &#8220;plugins.tomcat=2.1.1&#8243; to the application.properties file.  This allows it to run locally.  But if this gets pushed to the openshift git repo, then it fails with:</p>
<pre>remote: ::::::::::::::::::::::::::::::::::::::::::::::
remote: :: UNRESOLVED DEPENDENCIES ::
remote: ::::::::::::::::::::::::::::::::::::::::::::::
remote: :: org.grails.plugins#tomcat;2.1.1: not found
remote: ::::::::::::::::::::::::::::::::::::::::::::::</pre>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonrowland.com/2012/09/24/grails-application-running-on-open-shift/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Visual Studio 2012 ALL CAPS</title>
		<link>http://www.jasonrowland.com/2012/08/18/visual-studio-2012-all-caps/</link>
		<comments>http://www.jasonrowland.com/2012/08/18/visual-studio-2012-all-caps/#comments</comments>
		<pubDate>Sat, 18 Aug 2012 06:46:49 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[C#]]></category>

		<guid isPermaLink="false">http://www.jasonrowland.com/?p=445</guid>
		<description><![CDATA[I don&#8217;t know why Microsoft decided to ignore almost one hundred years of study on the readability of ALL CAPS vs. Mixed Case, but they did.  I installed Visual Studio 2012 today and it looks really cool except for the &#8230; <a href="http://www.jasonrowland.com/2012/08/18/visual-studio-2012-all-caps/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I don&#8217;t know why Microsoft decided to ignore almost <a href="http://en.wikipedia.org/wiki/All_caps">one hundred years of study on the readability of ALL CAPS</a> vs. Mixed Case, but they did.  I installed Visual Studio 2012 today and it looks really cool except for the annoying SHOUTING IN THE MENUS.  Thankfully, they provided a way to turn it off by hacking the registry.  <a href="http://www.richard-banks.org/2012/06/how-to-prevent-visual-studio-2012-all.html">Read how to do it here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonrowland.com/2012/08/18/visual-studio-2012-all-caps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Python with embedded javascript engine</title>
		<link>http://www.jasonrowland.com/2012/07/21/python-with-embedded-javascript-engine/</link>
		<comments>http://www.jasonrowland.com/2012/07/21/python-with-embedded-javascript-engine/#comments</comments>
		<pubDate>Sat, 21 Jul 2012 09:07:21 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.jasonrowland.com/?p=437</guid>
		<description><![CDATA[I want a safe way to modify data rows after a schema change.  I first attempted just using python with the eval method.  There is no good way to safely sandbox a python script.  I don&#8217;t suppose it really matters &#8230; <a href="http://www.jasonrowland.com/2012/07/21/python-with-embedded-javascript-engine/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I want a safe way to modify data rows after a schema change.  I first attempted just using python with the eval method.  <a href="http://nedbatchelder.com/blog/201206/eval_really_is_dangerous.html">There is no good way to safely sandbox a python script</a>.  I don&#8217;t suppose it really matters if it is sandboxed since Ruby on Rails migrations let you write migrations with full access to do nasty things to your computer.  Might need to rethink this&#8230;  In any case, I chose to support a javascript interpreter.  Every developer knows javascript (or every web developer anyway).  <a href="http://nodejs.org/">If they don&#8217;t, they should</a>.</p>
<h1>Install PyV8 for OSX</h1>
<p><a href="http://code.google.com/p/pyv8/">PyV8</a> is the python binding for google&#8217;s V8 javascript engine.  Currently, it&#8217;s only released for Windows.  I found a good pre-compiled package to install <a href="https://github.com/brokenseal/PyV8-OS-X">PyV8 for Mac OSX</a>.  Unfortunately, it doesn&#8217;t work out of the box because the directory is all lower case (pyv8) when the import statements expect mixed case (PyV8).  You can either correct the setup, or you can correct it after it installs in the site-packages folder.</p>
<pre>cd /opt
pip install -e git://github.com/brokenseal/PyV8-OS-X#egg=pyv8
python setup.py install
cd /usr/local/lib/python2.7/site-packages/PyV8-0.8-py2.7.egg
mv pyv8/PyV8.py .
mv pyv8/_PyV8.so .
mv pyv8 backup</pre>
<p>You can verify by trying to import PyV8 from the python interpreter.</p>
<h1>Javascript through Python</h1>
<p>This is a simple python script that will print &#8220;3&#8243; if you have installed everything correctly.</p>
<pre>import PyV8
ctxt = PyV8.JSContext()
ctxt.enter()
print(ctxt.eval("1+2"))</pre>
<p>I wanted to grant access to a global object where I placed functions that would be available in javascript.  For example, I wanted to give the ability to return the current date in a &#8220;now()&#8221; function.</p>
<pre>import datetime
import PyV8
class Global(PyV8.JSClass):
    def now(self):
        return datetime.datetime.now()

ctx = PyV8.JSContext(Global())
ctx.enter()
d = ctx.eval("now()")
print(d)</pre>
<h1>Timezone issues</h1>
<p>Hmmmm, got a little side tracked with timezone issues. Seems like there is a challenge with timezones between python and V8 engine.  If I create date in javascript through ctx.eval(&#8220;new Date()&#8221;), I get the date I expect (in UTC).  If I create a date in python and give it to javascript, it comes back to python wrong.  This means if I want to do any data manipulation, I&#8217;m going to have to fix all the dates going to javascript.</p>
<pre>class Global(PyV8.JSClass):
    def __init__(self):
        # We must calculate the offset here 
        # because timezones are screwy
        self.offset = datetime.datetime.now()
        ctx = PyV8.JSContext(self)
        ctx.enter()
        self.offset = ctx.eval("offset") - self.offset

    def now(self):
        utc = datetime.datetime.utcnow()
        return utc - self.offset

    def out(self, string):
        print(string)

class TestJavascript(unittest.TestCase):

    def test_javascript(self):
        ctxt = PyV8.JSContext()
        ctxt.enter()
        value = ctxt.eval("1+2")
        assert value == 3

    def test_javascript_withglobal(self):
        ctx = PyV8.JSContext(Global())
        ctx.enter()
        js_global_now = ctx.eval("now()")
        js_now = (ctx.eval("new Date()") 
                  + datetime.timedelta(seconds=1))
        py_now = (datetime.datetime.utcnow() 
                  + datetime.timedelta(seconds=2))
        print("js_global_now=%s" % js_global_now)
        print("js_now=%s" % js_now)
        print("py_now=%s" % py_now)

        assert type(js_now) is datetime.datetime
        assert js_global_now</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonrowland.com/2012/07/21/python-with-embedded-javascript-engine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>pip install broken OSX Lion</title>
		<link>http://www.jasonrowland.com/2012/07/18/pip-install-broken-osx-lion/</link>
		<comments>http://www.jasonrowland.com/2012/07/18/pip-install-broken-osx-lion/#comments</comments>
		<pubDate>Wed, 18 Jul 2012 22:20:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[languages]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://www.jasonrowland.com/?p=420</guid>
		<description><![CDATA[easy_install, pip install were both broken.  I found this post to be useful to fix.  I simply installed the distribute package to fix it. curl -O http://python-distribute.org/distribute_setup.py sudo python distribute_setup.py sudo easy_install pip]]></description>
			<content:encoded><![CDATA[<p>easy_install, pip install were both broken.  I found <a href="http://www.sherman.ca/archives/2011/07/25/lion-broken-python-easy_install/">this post</a> to be useful to fix.  I simply installed the <a href="http://packages.python.org/distribute/">distribute package</a> to fix it.</p>
<pre>curl -O http://python-distribute.org/distribute_setup.py
sudo python distribute_setup.py
sudo easy_install pip</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonrowland.com/2012/07/18/pip-install-broken-osx-lion/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>glassfish SSL self signed cert</title>
		<link>http://www.jasonrowland.com/2012/07/18/glassfish-ssl-self-signed-cert/</link>
		<comments>http://www.jasonrowland.com/2012/07/18/glassfish-ssl-self-signed-cert/#comments</comments>
		<pubDate>Wed, 18 Jul 2012 21:43:48 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[languages]]></category>

		<guid isPermaLink="false">http://www.jasonrowland.com/?p=417</guid>
		<description><![CDATA[When trying to access a third party webservice&#8217;s staging environment, we experienced a problem with their SSL certificate.  When trying to make a SOAP request against their server, we were getting: "unable to find valid certification path to requested target". &#8230; <a href="http://www.jasonrowland.com/2012/07/18/glassfish-ssl-self-signed-cert/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div>When trying to access a third party webservice&#8217;s staging environment, we experienced a problem with their SSL certificate.  When trying to make a SOAP request against their server, we were getting:</div>
<pre>"unable to find valid certification path to requested target".</pre>
<div> In order to troubleshoot the SSL issues, you can turn on debugging in the glassfish container by setting the JVM option.  It shows you every cert that it loads as well as the cacert file that it is using.</div>
<pre>-Djavax.net.debug=ssl</pre>
<h1>openssl</h1>
<div>I Also discovered a useful command that would let me investigate the SSL problems and see the cert that was being sent.  I used this to determine that the certificate wasn&#8217;t sending the whole certificate chain.</div>
<pre>$openssl s_client -connect staging.example.com:443
CONNECTED(00000003)
depth=0 /O=*.example.com/OU=Domain Control Validated/CN=*.example.com
verify error:num=20:unable to get local issuer certificate
verify return:1
depth=0 /O=*.example.com/OU=Domain Control Validated/CN=*.example.com
verify error:num=27:certificate not trusted
verify return:1
depth=0 /O=*.example.com/OU=Domain Control Validated/CN=*.example.com
verify error:num=21:unable to verify the first certificate
verify return:1
---
Certificate chain
 0 s:/O=*.example.com/OU=Domain Control Validated/CN=*.example.com
 i:/C=US/ST=Arizona/L=Scottsdale/O=GoDaddy.com, Inc./OU=http://certificates.godaddy.com/repository/CN=Go Daddy Secure Certification Authority/serialNumber=07969287
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIFYTCCBEmgAwIBAgIHKAMC7TRRezANBgkqhkiG9w0BAQUFADCByjELMAkGA1UE</pre>
<h1>InstallCert.java</h1>
<p>Initially, to add the cert to the repository, I <a href="http://stackoverflow.com/questions/3685548/java-keytool-easy-way-to-add-server-cert-from-url-port">found a post</a> that pointed me in the right direction. The InstallCert.java seemed promising.  It creates a jssecacerts file in the directory you run it.  It contains the contents of the JRE_HOME/lib/security/cacerts file, plus the cert you choose to add.  You need to then copy the jssecacerts file on top of the original cacerts file (after you back it up).</p>
<pre>java -djava.home=/Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home/jre InstallCert www.example.com:443</pre>
<p>With the cert I was using, it still kept failing for me.  When I investigated the code of InstallCert.java, it was throwing an UnsupportedOperation exception when I tried running it again to see if it worked.  Since it was old code, I gave up on that tool and decided to do it manually through the keytool.</p>
<h1>keytool</h1>
<p>After obtaining the cert (using firefox to view the cert and then exporting it), I ran the following command:</p>
<pre>keytool -import -trustcacerts -alias example -storepass "changeit" -file example.pem -keystore $GLASSFISH_CONFIG/cacerts.jks</pre>
<p>You can find the GLASSFISH directory by looking at the log file in eclipse.  On my Mac, it was:</p>
<pre>/Applications/eclipse/plugins/oracle.eclipse.runtime.glassfish312_3.1.2.0/glassfish3/glassfish/domains/domain1/config</pre>
<p>You can verify that it was added by running:</p>
<pre>keytool -list -v -keystore cacerts.jks</pre>
<p>You should see your cert by looking for the alias you created.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonrowland.com/2012/07/18/glassfish-ssl-self-signed-cert/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Upgrade to MySQL 5.5 using Homebrew</title>
		<link>http://www.jasonrowland.com/2012/07/13/upgrade-to-mysql-5-5-using-homebrew/</link>
		<comments>http://www.jasonrowland.com/2012/07/13/upgrade-to-mysql-5-5-using-homebrew/#comments</comments>
		<pubDate>Fri, 13 Jul 2012 02:47:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Database]]></category>
		<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://www.jasonrowland.com/?p=408</guid>
		<description><![CDATA[Upgrading to 5.5.25a using Homebrew First, backup all the databases you are interested in keeping.  There is an -A, &#8211;all-databases command if you&#8217;d like to use that instead. mysqldump --flush-logs -u root -p mydatabase &#62; backup.sql Install the latest version &#8230; <a href="http://www.jasonrowland.com/2012/07/13/upgrade-to-mysql-5-5-using-homebrew/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Upgrading to 5.5.25a using Homebrew</p>
<p>First, backup all the databases you are interested in keeping.  There is an -A, &#8211;all-databases command if you&#8217;d like to use that instead.</p>
<pre>mysqldump --flush-logs -u root -p mydatabase &gt; backup.sql</pre>
<p>Install the latest version of mysql using <a title="Homebrew" href="http://mxcl.github.com/homebrew/">Homebrew</a>.</p>
<pre>brew install mysql</pre>
<p>Note that the &#8220;_mysql&#8221; user below was the same user that my MacPorts install of mysql was already using so I just reused the same account.  Change it to a valid account.</p>
<pre>sudo mysql_install_db --verbose --user=_mysql --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp</pre>
<p>Start the server in console mode.  Below are the start/stop commands:</p>
<pre>sudo mysql.server start
sudo mysql.server stop</pre>
<p>Change the root passwords.</p>
<pre>mysqladmin -u root password
mysqladmin -u root -h localhost password -p</pre>
<p>To launch mysql on startup you first need to edit the plist file referred to below.  Change the UserName to be _mysql (or whatever user mysqld is running as).  Then run the following commands:</p>
<pre>mkdir -p ~/Library/LaunchAgents
cp /usr/local/Cellar/mysql/5.5.25a/homebrew.mxcl.mysql.plist ~/Library/LaunchAgents/
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist</pre>
<p>Now, restore your database:</p>
<pre>mysql -u root -p mydatabase &lt; backup.sql</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonrowland.com/2012/07/13/upgrade-to-mysql-5-5-using-homebrew/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mysql Backup and Restore</title>
		<link>http://www.jasonrowland.com/2012/07/13/mysql-backup-and-restore/</link>
		<comments>http://www.jasonrowland.com/2012/07/13/mysql-backup-and-restore/#comments</comments>
		<pubDate>Fri, 13 Jul 2012 02:46:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Database]]></category>
		<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://www.jasonrowland.com/?p=412</guid>
		<description><![CDATA[Backup mysqldump -u root -p blenderfarmers &#62; backup.sql Restore mysql -u root -p mydb &#60; backup.sql]]></description>
			<content:encoded><![CDATA[<p>Backup</p>
<pre>mysqldump -u root -p blenderfarmers &gt; backup.sql</pre>
<p>Restore</p>
<pre>mysql -u root -p mydb &lt; backup.sql</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonrowland.com/2012/07/13/mysql-backup-and-restore/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>python ide</title>
		<link>http://www.jasonrowland.com/2012/04/02/python-ide/</link>
		<comments>http://www.jasonrowland.com/2012/04/02/python-ide/#comments</comments>
		<pubDate>Mon, 02 Apr 2012 23:44:54 +0000</pubDate>
		<dc:creator>jason</dc:creator>
				<category><![CDATA[languages]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://www.jasonrowland.com/?p=403</guid>
		<description><![CDATA[I think it&#8217;s important to understand how your applications work without the aid of an IDE.  But man, oh man.  It sure is nice to have a good IDE while you are trying to be productive in a language.  I &#8230; <a href="http://www.jasonrowland.com/2012/04/02/python-ide/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I think it&#8217;s important to understand how your applications work <a href="http://charlespetzold.com/etc/DoesVisualStudioRotTheMind.html">without the aid of an IDE</a>.  But man, oh man.  It sure is nice to have a good IDE while you are trying to be productive in a language.  I installed <a href="http://pydev.org/">PyDev</a> today now that I feel very comfortable with how python applications are built and run.  It is so nice to explore what&#8217;s available by just typing code.  In my IDE, I can just type &#8220;platform.&#8221; wait a sec and see all my available options.  I&#8217;ve been using TextMate for the better part of two years now.  It&#8217;s a great text editor, but it sure is nice to have a full featured IDE to not only write the code, but see warnings and errors very quickly.  It&#8217;s nice to see the structure of my code in the outline view.  By far, my favorite feature is the integrated debugging.  Setting breakpoints, stepping through code, and inspecting variables is a beautiful thing.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonrowland.com/2012/04/02/python-ide/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
