<?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>Antun's Blog</title>
	<atom:link href="http://www.antunkarlovac.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.antunkarlovac.com/blog</link>
	<description>Notes on OpenLaszlo, LZX and Rich Internet Application Development</description>
	<lastBuildDate>Fri, 18 Jan 2013 23:52:01 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<item>
		<title>:requirements Method for Rails 3 Routes</title>
		<link>http://www.antunkarlovac.com/blog/2012/12/24/requirements-method-for-rails-3-routes/</link>
		<comments>http://www.antunkarlovac.com/blog/2012/12/24/requirements-method-for-rails-3-routes/#comments</comments>
		<pubDate>Mon, 24 Dec 2012 18:51:33 +0000</pubDate>
		<dc:creator>antun</dc:creator>
				<category><![CDATA[Rails]]></category>

		<guid isPermaLink="false">http://www.antunkarlovac.com/blog/?p=284</guid>
		<description><![CDATA[In Rails 2, if you wanted to have a parameter on a URL that had a period (e.g. a decimal point in latitude/longitude coordinates), you needed to use the :requirements method to tell Rails to include everything in the URL. e.g.if your URL was /spots/new_popup/37.77617617425586,-122.39735126495361 &#8230; then the Rails 2 route would look like this: [...]]]></description>
			<content:encoded><![CDATA[<p>In Rails 2, if you wanted to have a parameter on a URL that had a period (e.g. a decimal point in latitude/longitude coordinates), you needed to use the :requirements method to tell Rails to include everything in the URL.</p>
<p>e.g.if your URL was /spots/new_popup/37.77617617425586,-122.39735126495361</p>
<p>&#8230; then the Rails 2 route would look like this:</p>
<pre class="brush: ruby; title: ;">
map.connect '/spots/new_popup/:coords', :requirements =&gt; {:coords =&gt; /.*/}, :controller =&gt; 'spots', :action =&gt; 'new_popup'
</pre>
<p>In Rails 3, there :requirements method has been replaced with :constraints. So the route above would be re-written like this:</p>
<pre class="brush: ruby; title: ;">
match '/spots/new_popup/:coords', :constraints =&gt; {:coords =&gt; /.*/}, :controller =&gt; 'spots', :action =&gt; 'new_popup'
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.antunkarlovac.com/blog/2012/12/24/requirements-method-for-rails-3-routes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FileColumn to Paperclip Migration</title>
		<link>http://www.antunkarlovac.com/blog/2012/11/02/filecolumn-to-paperclip-migration/</link>
		<comments>http://www.antunkarlovac.com/blog/2012/11/02/filecolumn-to-paperclip-migration/#comments</comments>
		<pubDate>Fri, 02 Nov 2012 18:38:17 +0000</pubDate>
		<dc:creator>antun</dc:creator>
				<category><![CDATA[Rails]]></category>

		<guid isPermaLink="false">http://www.antunkarlovac.com/blog/?p=279</guid>
		<description><![CDATA[Like so many people, when moving from Rails 2 to Rails 3, I found myself migrating from using FileColumn (i.e. file_column) to Paperclip, for image-upload handling in rails. I found an excellent migration guide written by Mark Cornick. The general process is: Install Paperclip. Generate a migration to add the Paperclip-controlled image to your model. [...]]]></description>
			<content:encoded><![CDATA[<p>Like so many people, when moving from Rails 2 to Rails 3, I found myself migrating from using <a href="http://www.kanthak.net/opensource/file_column/">FileColumn</a> (i.e. file_column) to <a href="https://github.com/thoughtbot/paperclip">Paperclip</a>, for image-upload handling in rails. I found an <a href="http://viget.com/extend/migrating-from-filecolumn-to-paperclip">excellent migration guide written by Mark Cornick</a>.</p>
<p>The general process is:</p>
<ol>
<li>Install Paperclip.</li>
<li>Generate a migration to add the Paperclip-controlled image to your model. This adds a few Paperclip columns to the model&#8217;s table.</li>
<li>Update your model code to use Paperclip.</li>
<li>Update your views to use Paperclip&#8217;s method for writing the images, and Paperclip&#8217;s method for writing the fields for uploading the images.</li>
<li>Write a migration that does the leg-work of moving your images from FileColumn to Paperclip.</li>
<li>Uninstall FileColumn.</li>
</ol>
<p>Step #5 is the most complex bit. There&#8217;s a few things that your migration has to do:</p>
<ol>
<li>Rename/restructure directories where FileColumn stored images to the new Paperclip way. e.g. directory names are singular in FileColumn, plural in Paperclip.</li>
<li>Rename/move actual images to the new Paperclip-expected locations. e.g. different image styles (e.g. original, thumbnail, etc.) differ between FileColumn and Paperclip.</li>
<li>Populate the new Paperclip table columns with data about the images.</li>
</ol>
<p>Mark <a href="https://gist.github.com/20473">shared a Gist</a> that showed did all these, except for a couple of issues: It didn&#8217;t handle varying image styles (e.g. original, thumbnail, etc.), and it wasn&#8217;t a reversible migration. Using Mark&#8217;s migration as a starting point, I added support for styles, and made it reversible*. You can see <a href="https://gist.github.com/3816211">my fork as a Gist</a>. I hope someone finds it useful.</p>
<p>* The &#8220;reversible&#8221; comes with caveats: I&#8217;ve tried to write it in such a way that it will recover from a failed forward migration, but testing rolling back from every possible point of failure would be onerous. It works reliably if the whole forward migration succeeds, and the resulting DB contents and <em>file</em> structure match the beginning point. Empty Paperclip <em>directories</em> are not deleted after rolling back. You should back-up your database before trying it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.antunkarlovac.com/blog/2012/11/02/filecolumn-to-paperclip-migration/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hanzi Challenge &#8211; Mac OSX Dashboard Widget</title>
		<link>http://www.antunkarlovac.com/blog/2012/09/16/hanzi-challenge-mac-osx-dashboard-widget/</link>
		<comments>http://www.antunkarlovac.com/blog/2012/09/16/hanzi-challenge-mac-osx-dashboard-widget/#comments</comments>
		<pubDate>Mon, 17 Sep 2012 02:45:37 +0000</pubDate>
		<dc:creator>antun</dc:creator>
				<category><![CDATA[Hanzi Challenge]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.antunkarlovac.com/blog/?p=271</guid>
		<description><![CDATA[I have an Android desktop widget that shows me a random Chinese word when I look at my phone&#8217;s home screen. I really wanted this functionality on my laptop, so I wrote a simple Dashboard Widget that shows a random Hanzi word when I open the Dashboard. It&#8217;s called &#8220;Hanzi Challenge&#8221;, and you can grab [...]]]></description>
			<content:encoded><![CDATA[<p>I have an Android desktop widget that shows me a random Chinese word when I look at my phone&#8217;s home screen. I really wanted this functionality on my laptop, so I wrote a simple Dashboard Widget that shows a random Hanzi word when I open the Dashboard. It&#8217;s called &#8220;Hanzi Challenge&#8221;, and you can <a href="http://www.antunkarlovac.com/software/widgets/hanzichallenge/">grab it from my web site</a>.</p>
<div align="center"><img class="size-full wp-image-272 aligncenter" title="hanzi_challenge_screenshot" src="http://www.antunkarlovac.com/blog/wp-content/uploads/2012/09/hanzi_challenge_screenshot.png" alt="Hanzi Challenge Dashboard Widget Screenshot." width="290" height="272" /></div>
<p>It shows you the word (in simplified or traditional characters; your preference) and displays the Pinyin pronunciation as a clue when you mouse over it. Click to see the English translation.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.antunkarlovac.com/blog/2012/09/16/hanzi-challenge-mac-osx-dashboard-widget/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LibrarySearch &#8211; Public Library Search From Your Browser</title>
		<link>http://www.antunkarlovac.com/blog/2012/08/24/librarysearch-public-library-search-from-your-browser/</link>
		<comments>http://www.antunkarlovac.com/blog/2012/08/24/librarysearch-public-library-search-from-your-browser/#comments</comments>
		<pubDate>Fri, 24 Aug 2012 17:01:39 +0000</pubDate>
		<dc:creator>antun</dc:creator>
				<category><![CDATA[Browsers]]></category>

		<guid isPermaLink="false">http://www.antunkarlovac.com/blog/?p=266</guid>
		<description><![CDATA[I&#8217;m a bit of a miser when it comes to books; I haven&#8217;t made the switch from physical books to digital ones, and I don&#8217;t think I will any time soon. Partly, it&#8217;s because I get all my books from the library. While the public library has its own search web site, it lacks the [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m a bit of a miser when it comes to books; I haven&#8217;t made the switch from physical books to digital ones, and I don&#8217;t think I will any time soon. Partly, it&#8217;s because I get all my books from the library.</p>
<p>While the public library has its own search web site, it lacks the recommendations capabilities of sites like Amazon, or Goodreads. To make it easier to find the books I want, I wrote an extension that lets me select some text in a browser, and search for it in my public library:</p>
<p><a href="www.antunkarlovac.com/software/extensions/librarysearch/"><img class="size-full wp-image-267 aligncenter" title="LibrarySearch extension in Chrome browser" src="http://www.antunkarlovac.com/blog/wp-content/uploads/2012/08/chrome_librarysearch_screenshot.gif" alt="" width="440" height="280" /></a></p>
<p>It works from any web page, and is now available as both a Chrome extension, and a Safari one. (Firefox coming soon).</p>
<p>The Chrome version is available on the <a href="https://chrome.google.com/webstore/detail/nacafpihpihbpdkbbladibonplaioknj">Chrome Web Store</a>. You can download and install the Safari one from the <a href="www.antunkarlovac.com/software/extensions/librarysearch/">LibrarySearch page on my site</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.antunkarlovac.com/blog/2012/08/24/librarysearch-public-library-search-from-your-browser/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dummy Data Generator</title>
		<link>http://www.antunkarlovac.com/blog/2012/06/06/dummy-data-generator/</link>
		<comments>http://www.antunkarlovac.com/blog/2012/06/06/dummy-data-generator/#comments</comments>
		<pubDate>Wed, 06 Jun 2012 21:26:52 +0000</pubDate>
		<dc:creator>antun</dc:creator>
				<category><![CDATA[RIAs]]></category>

		<guid isPermaLink="false">http://www.antunkarlovac.com/blog/?p=254</guid>
		<description><![CDATA[I always find myself needing to generate some dummy data for web applications that I&#8217;m working on. In the past, I&#8217;ve either done it manually, written scripts, or recycled data from other apps. However, I think those days are over. I just came across generatedata.com. It gives you a convenient interface to specify what data fields [...]]]></description>
			<content:encoded><![CDATA[<p>I always find myself needing to generate some dummy data for web applications that I&#8217;m working on. In the past, I&#8217;ve either done it manually, written scripts, or recycled data from other apps. However, I think those days are over. I just came across <a href="http://www.generatedata.com/">generatedata.com</a>. It gives you a convenient interface to specify what data fields you want, how many records you would like, and what kind of output you&#8217;d like it in (XML, CSV, etc.):</p>
<p><a href="http://www.generatedata.com/"><img src="http://www.antunkarlovac.com/blog/wp-content/uploads/2012/06/generatedata.jpg" alt="generatedata.com interface" title="generatedata.com" width="500" height="425" border="0" /></a></p>
<p>It even has pre-defined lists of names, sample titles, departments, cities, etc., so you don&#8217;t have to specify them all. However, you can add or customize your own lists too.</p>
<p>The only thing I&#8217;d like to see added is an option to generate XML with properties as attributes, instead of nodes. But the source is on GitHub, so you can tweak it as you need to.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.antunkarlovac.com/blog/2012/06/06/dummy-data-generator/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>opttree For OpenLaszlo 4.7</title>
		<link>http://www.antunkarlovac.com/blog/2010/01/20/opttree-for-openlaszlo-47/</link>
		<comments>http://www.antunkarlovac.com/blog/2010/01/20/opttree-for-openlaszlo-47/#comments</comments>
		<pubDate>Wed, 20 Jan 2010 23:48:46 +0000</pubDate>
		<dc:creator>antun</dc:creator>
				<category><![CDATA[OpenLaszlo]]></category>

		<guid isPermaLink="false">http://www.antunkarlovac.com/blog/?p=245</guid>
		<description><![CDATA[A while back, I was tasked with creating a versatile tree for OpenLaszlo that was extensible. It needed to have several features (available in different incarnations of the same base tree) for this one particular project: It had to support checkboxes for selection, independently of normal leaf selection. It needed to support visual tree lines. [...]]]></description>
			<content:encoded><![CDATA[<p>A while back, I was tasked with creating a versatile tree for OpenLaszlo that was extensible. It needed to have several features (available in different incarnations of the same base tree) for this one particular project:</p>
<ul>
<li>It had to support checkboxes for selection, independently of normal leaf selection.</li>
<li>It needed to support visual tree lines.</li>
<li>It needed to support drag-and-drop both internally (i.e. from one leaf to another) and externally (i.e. to drop targets outside of the tree).</li>
<li>It needed to be easy to add icons to different nodes.</li>
<li>It had to support large datasets. The &#8220;official&#8221; OpenLaszlo tree doesn&#8217;t support any form of lazy replication, so it was impractical.</li>
</ul>
<p>I started with a version of opttree that was created by Adam Wolff (formerly of the Laszlo Foundation Classes and now of <a href="http://www.sharegrove.com">ShareGrove</a>). In the meantime, that opttree got incorporated into OpenLaszlo, although it never made it into the official component set; it&#8217;s in the incubator. (<a href="http://svn.openlaszlo.org/openlaszlo/trunk/lps/components/incubator/opttree/">Source for that opttree</a>). In order to meet the above requirements, I needed to refactor the code somewhat to have a more reusable base class (sharedtreenode), from which I could create the various incarnations (checktreenode, dragtreenode, etc.). Mine never made it into the official OpenLaszlo distribution, although it has been widely used after it was informally released on the OpenLaszlo forums.</p>
<p>Anyway, that&#8217;s the background. Here&#8217;s one incarnation (checktree) in action:</p>

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
			id="fm_checktree_967873296"
			class="flashmovie"
			width="450"
			height="200">
	<param name="movie" value="/blog/wp-content/uploads/2010/01/checktree.swf" />
	<!--[if !IE]>-->
	<object	type="application/x-shockwave-flash"
			data="/blog/wp-content/uploads/2010/01/checktree.swf"
			name="fm_checktree_967873296"
			width="450"
			height="200">
	<!--<![endif]-->
		
	<!--[if !IE]>-->
	</object>
	<!--<![endif]-->
</object>
<p>I&#8217;ve finally updated this to run on OpenLaszlo 4.7; because it wasn&#8217;t part of the official distribution, it was never kept up-to-date. You can <a href="/blog/wp-content/uploads/2010/01/opttree-openlaszlo-47.zip">download the source for my opttree</a>, complete with checktree, dragtree variants, as well as examples of how to add icons, and so forth. The test cases should give you a pretty good idea of how it&#8217;s used.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.antunkarlovac.com/blog/2010/01/20/opttree-for-openlaszlo-47/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>The Most Important OpenLaszlo Application?</title>
		<link>http://www.antunkarlovac.com/blog/2010/01/19/the-most-important-openlaszlo-application/</link>
		<comments>http://www.antunkarlovac.com/blog/2010/01/19/the-most-important-openlaszlo-application/#comments</comments>
		<pubDate>Wed, 20 Jan 2010 06:19:10 +0000</pubDate>
		<dc:creator>antun</dc:creator>
				<category><![CDATA[OpenLaszlo]]></category>
		<category><![CDATA[RIAs]]></category>

		<guid isPermaLink="false">http://www.antunkarlovac.com/blog/?p=239</guid>
		<description><![CDATA[I just discovered PuzzlePixies.com, which is arguably one of the most valuable and important OpenLaszlo applications I&#8217;ve seen. PuzzlePixies.com is a children&#8217;s educational site. It&#8217;s not actually a single OpenLaszlo app, but lots of little games for different age groups. I&#8217;ve seen some of these games before (e.g. the classic card matching memory game). But [...]]]></description>
			<content:encoded><![CDATA[<p>I just discovered <a href="http://www.puzzlepixies.com/">PuzzlePixies.com</a>, which is arguably one of the most valuable and important OpenLaszlo applications I&#8217;ve seen.</p>
<p style="text-align: center;"><a href="http://www.puzzlepixies.com/"><img class="size-medium wp-image-240  aligncenter" title="puzzlepixies_logo" src="http://www.antunkarlovac.com/blog/wp-content/uploads/2010/01/puzzlepixies_logo.png" alt="PuzzlePixies.com logo" width="300" height="91" /></a></p>
<p><a href="http://www.puzzlepixies.com/">PuzzlePixies.com</a> is a children&#8217;s educational site. It&#8217;s not actually a single OpenLaszlo app, but lots of little games for different age groups.</p>
<p>I&#8217;ve seen some of these games before (e.g. the classic card matching memory game). But there&#8217;s something about the colors and simple graphics that seemed to appeal to my 3-year-old son immediately. Maybe it&#8217;s the fact that a child&#8217;s voice introduces each game and tells you if you got the right answer?</p>
<p>The whole site is free. If you have kids, check it out!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.antunkarlovac.com/blog/2010/01/19/the-most-important-openlaszlo-application/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MobileDataNow is Open Source</title>
		<link>http://www.antunkarlovac.com/blog/2010/01/15/mobiledatanow-is-open-source/</link>
		<comments>http://www.antunkarlovac.com/blog/2010/01/15/mobiledatanow-is-open-source/#comments</comments>
		<pubDate>Fri, 15 Jan 2010 22:21:11 +0000</pubDate>
		<dc:creator>antun</dc:creator>
				<category><![CDATA[OpenLaszlo]]></category>
		<category><![CDATA[RIAs]]></category>

		<guid isPermaLink="false">http://www.antunkarlovac.com/blog/?p=237</guid>
		<description><![CDATA[MobileDataNow, a product that I&#8217;ve blogged about before, is now an open-source project. MobileDataNow started as a proprietary offering from FireTrust, and some time ago (late 2008/early 2009) was made available to the public. The source is available on Google Code. MobileDataNow uses an OpenLaszlo front-end to allow you to configure data stores and mobile [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://mobiledatanow.com">MobileDataNow</a>, a product that I&#8217;ve <a href="/blog/2008/08/05/mobiledatanow/">blogged about before</a>, is now an open-source project. MobileDataNow started as a proprietary offering from <a href="http://www.firetrust.com/">FireTrust</a>, and some time ago (late 2008/early 2009) was made available to the public. The source is available on <a href="http://mobiledatanow.googlecode.com/">Google Code</a>.</p>
<p>MobileDataNow uses an OpenLaszlo front-end to allow you to configure data stores and mobile notifications. From the docs, it looks like it was upgraded to some edition of OL4.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.antunkarlovac.com/blog/2010/01/15/mobiledatanow-is-open-source/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>November OpenLaszlo  Newsletter</title>
		<link>http://www.antunkarlovac.com/blog/2009/12/03/november-openlaszlo-newsletter/</link>
		<comments>http://www.antunkarlovac.com/blog/2009/12/03/november-openlaszlo-newsletter/#comments</comments>
		<pubDate>Thu, 03 Dec 2009 18:52:23 +0000</pubDate>
		<dc:creator>antun</dc:creator>
				<category><![CDATA[OpenLaszlo]]></category>

		<guid isPermaLink="false">http://www.antunkarlovac.com/blog/?p=230</guid>
		<description><![CDATA[The November issue of the OpenLaszlo &#60;view&#62; newsletter is out. It&#8217;s available as a PDF. This issue covers some new CSS functionality, beyond what was mentioned in my post on CSS in OpenLaszlo. In case you missed it, the October edition is still available, which covers built-in dropshadow functionality in OpenLaszlo. Check out Raju&#8217;s blog [...]]]></description>
			<content:encoded><![CDATA[<p>The November issue of the <em>OpenLaszlo &lt;view&gt;</em> newsletter is out. It&#8217;s <a href="http://www.openlaszlo.org/misc/OpenLaszloView113009.pdf">available as a PDF</a>. This issue covers some new CSS functionality, beyond what was mentioned in my <a href="/blog/2008/11/03/css-in-openlaszlo/">post on CSS in OpenLaszlo</a>.</p>
<p>In case you missed it, the <a href="http://www.openlaszlo.org/misc/OpenLaszloView103109.pdf">October edition</a> is still available, which covers built-in dropshadow functionality in OpenLaszlo. Check out Raju&#8217;s blog for a <a href="http://openfuture.rajubitter.com/2009/08/25/openlaszlo-dhtml-css-3-demo-to-flash-or-not-to-flash-is-no-question/">demo of this feature</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.antunkarlovac.com/blog/2009/12/03/november-openlaszlo-newsletter/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Raw POST Data from OpenLaszlo Datasets</title>
		<link>http://www.antunkarlovac.com/blog/2009/04/07/raw-post-data-from-openlaszlo-datasets/</link>
		<comments>http://www.antunkarlovac.com/blog/2009/04/07/raw-post-data-from-openlaszlo-datasets/#comments</comments>
		<pubDate>Wed, 08 Apr 2009 00:45:32 +0000</pubDate>
		<dc:creator>antun</dc:creator>
				<category><![CDATA[LZX Tips]]></category>
		<category><![CDATA[OpenLaszlo]]></category>

		<guid isPermaLink="false">http://www.antunkarlovac.com/blog/?p=219</guid>
		<description><![CDATA[There are three practical ways to get data from a browser client to a web service: Query string parameters in a GET or a POST request. POST parameters. Raw POST data. The first two are fairly straightforward: A query string is the part of the URL that comes after the question mark. Post parameters (as [...]]]></description>
			<content:encoded><![CDATA[<p>There are three practical ways to get data from a browser client to a web service:</p>
<ul>
<li>Query string parameters in a GET or a POST request.</li>
<li>POST parameters.</li>
<li>Raw POST data.</li>
</ul>
<p>The first two are fairly straightforward: A query string is the part of the URL that comes after the question mark. Post parameters (as name/value pairs) can be added to a POST request by calling setQueryParam() on the dataset. If the client needs to send a large block of data to the server (e.g. an XML document) that data can be assigned to a single POST parameter.</p>
<p>The third one is a little more complicated. Essentially, it means all the POST body. i.e. Where the POST parameters would normally live. Older versions of the Flash Player had problems with this, so it was not possible to submit raw POST data with older versions of OpenLaszlo in SOLO mode.</p>
<p>This isn&#8217;t an issue today. The Flash Player can submit raw post data. So if you absolutely can&#8217;t have even a single POST parameter, you can specify content to be included in the POST body by calling:</p>
<pre>dataset.setAttribute("querytype", "POST");
dataset.setQueryParam("lzpostbody", "CONTENT");</pre>
<p>Note that the lzpostbody query parameter is a special name that tells OpenLaszlo to use the provided string as the entire POST body. Here&#8217;s an example of this in action:</p>
<pre class="brush: xml; title: ;">
&lt;canvas debug=&quot;true&quot; proxied=&quot;false&quot;&gt;
    &lt;dataset name=&quot;ds&quot; src=&quot;myService.jsp&quot; type=&quot;http&quot; request=&quot;false&quot;
             querytype=&quot;POST&quot;/&gt;

    &lt;button&gt;Do Request
        &lt;handler name=&quot;onclick&quot;&gt;&lt;![CDATA[
            var body = '&lt;rawpostbodycontents&gt;Hello, this is some XML.&lt;/rawpostbodycontents&gt;';
            ds.setQueryParam(&quot;lzpostbody&quot;, body);
            ds.doRequest();
        ]]&gt;
        &lt;/handler&gt;
    &lt;/button&gt;

    &lt;handler name=&quot;ondata&quot; reference=&quot;ds&quot;&gt;
        Debug.write(&quot;RESPONSE:&quot;, ds.serialize());
    &lt;/handler&gt;
&lt;/canvas&gt;
</pre>
<p>You can download the <a href="/blog/wp-content/uploads/2009/04/rawpost.zip">entire source</a>, complete with a JSP that reads and echoes the raw POST data.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.antunkarlovac.com/blog/2009/04/07/raw-post-data-from-openlaszlo-datasets/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
