<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8091041671120395175</id><updated>2012-02-15T23:44:11.569-08:00</updated><category term='Weblogic maven2 war'/><category term='erdas-apollo-catalog queryables'/><title type='text'>Blog stuffs</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>77</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-8419066229658474418</id><published>2012-02-08T06:15:00.000-08:00</published><updated>2012-02-08T06:15:12.839-08:00</updated><title type='text'>How do I organize my GIS projects?</title><content type='html'>&lt;h2 style="background-color: rgba(248, 248, 248, 0.589844); border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: normal; line-height: 1.1em !important; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; vertical-align: baseline;"&gt;from http://gis.stackexchange.com/questions/18199/how-do-i-organize-my-gis-projects&lt;/h2&gt;&lt;h2 style="background-color: rgba(248, 248, 248, 0.589844); border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: normal; line-height: 1.1em !important; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; vertical-align: baseline;"&gt;&lt;br /&gt;&lt;/h2&gt;&lt;h2 style="background-color: rgba(248, 248, 248, 0.589844); border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: normal; line-height: 1.1em !important; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; vertical-align: baseline;"&gt;Base Files/DBS&lt;/h2&gt;&lt;ul style="background-color: rgba(248, 248, 248, 0.589844); border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 18px; list-style-image: initial; list-style-position: initial; margin-bottom: 1em; margin-left: 30px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; vertical-align: baseline;"&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 16px; margin-bottom: 7px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; word-wrap: break-word;"&gt;These are files that are "raw" in nature and constitute the base of all my analysis&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 16px; margin-bottom: 7px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; word-wrap: break-word;"&gt;These files, databases, and data are hosted&amp;nbsp;&lt;strong style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;outside&lt;/strong&gt;&amp;nbsp;of my&amp;nbsp;&lt;code style="background-color: #eeeeee; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;projects&lt;/code&gt;&amp;nbsp;folder, and are hosted on my internet server, local computer, and dropbox. I always have access to them, and they are very organized, dis and aggregated. You'll spend a lot of time organizing these.&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 16px; margin-bottom: 7px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; word-wrap: break-word;"&gt;I put them all in databases whether in Arc or PostGIS.&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 16px; margin-bottom: 7px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; word-wrap: break-word;"&gt;To each table, I add 3 fields in the table itself or the meta data: DATE_OBTAINED, DATA_DATE, SOURCE_NOTES&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 16px; margin-bottom: 7px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; word-wrap: break-word;"&gt;Also Base files could be queries of multiple other tables. For example, a table could aggregate all the traffic count I obtain into one large query/table.&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 16px; margin-bottom: 7px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; word-wrap: break-word;"&gt;I also put here all other data that I find scouring the internet.&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 16px; margin-bottom: 7px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; word-wrap: break-word;"&gt;&lt;strong style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;I NEVER DO ANY DIRECT ANALYSIS ON ANY OF THE FILES IN THE BASE FILES&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 style="background-color: rgba(248, 248, 248, 0.589844); border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: normal; line-height: 1.1em !important; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; vertical-align: baseline;"&gt;Project Files&lt;/h2&gt;&lt;ul style="background-color: rgba(248, 248, 248, 0.589844); border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 18px; list-style-image: initial; list-style-position: initial; margin-bottom: 1em; margin-left: 30px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; vertical-align: baseline;"&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 16px; margin-bottom: 7px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; word-wrap: break-word;"&gt;All my project files go in a&amp;nbsp;&lt;code style="background-color: #eeeeee; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;my_projects&lt;/code&gt;&amp;nbsp;folder. It contains everything related to that project as in, if I copy and paste that folder somewhere else, it will contain everything.&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 16px; margin-bottom: 7px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; word-wrap: break-word;"&gt;Usually I have the following structure:&lt;ul style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; list-style-image: initial; list-style-position: initial; list-style-type: disc; margin-bottom: 0px; margin-left: 30px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 7px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; word-wrap: break-word;"&gt;my_project/&lt;ul style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; list-style-image: initial; list-style-position: initial; list-style-type: disc; margin-bottom: 0px; margin-left: 30px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 7px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; word-wrap: break-word;"&gt;admin/&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 7px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; word-wrap: break-word;"&gt;communication/&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 7px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; word-wrap: break-word;"&gt;raw_data/&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 7px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; word-wrap: break-word;"&gt;analyzed_data/&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 7px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; word-wrap: break-word;"&gt;output_data/&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 7px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; word-wrap: break-word;"&gt;from_client/&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 7px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; word-wrap: break-word;"&gt;FINAL/&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 7px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; word-wrap: break-word;"&gt;code/&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 7px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; word-wrap: break-word;"&gt;some_document_date_time.doc&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 7px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; word-wrap: break-word;"&gt;README&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 16px; margin-bottom: 7px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; word-wrap: break-word;"&gt;Slowly I've been moving to a local GIT. (you can even host it locally or on your own server). The reason I do not put it on GitHub is that github has a 1.2gb limit which is useless for GIS analysis&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 16px; margin-bottom: 7px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; word-wrap: break-word;"&gt;For my projects, I usually replicate all the GIS tables that I need for my analysis into a new db: project_whatever.&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 16px; margin-bottom: 7px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; word-wrap: break-word;"&gt;9 times out of 10, I work only in shp files and I save all my GIS (images, excel, coordinates, etc) to my&amp;nbsp;&lt;code style="background-color: #eeeeee; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;projects/my_project/raw_data&lt;/code&gt;,&amp;nbsp;&lt;code style="background-color: #eeeeee; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;projects/my_projects/analyzed_data&lt;/code&gt;, and&lt;code style="background-color: #eeeeee; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;projects/my_projects/output_data&lt;/code&gt;.&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 16px; margin-bottom: 7px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; word-wrap: break-word;"&gt;When a project is complete, I put the final submitted copy in&lt;code style="background-color: #eeeeee; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;my_projects/FINAL/date_submitted&lt;/code&gt;&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 16px; margin-bottom: 7px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; word-wrap: break-word;"&gt;For my MXD, I usually save to a new MXD every 2 or 3 hours&amp;nbsp;&lt;code style="background-color: #eeeeee; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;my_proj_dec_22_11__13_20.mxd&lt;/code&gt;for example&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 16px; margin-bottom: 7px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; word-wrap: break-word;"&gt;For Ms Word documents, illustrations, and mostly editing documents, they go in my_projects folder such as&amp;nbsp;&lt;code style="background-color: #eeeeee; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;RFP_TENDER_Dec_22_11__11_15.doc&lt;/code&gt;&amp;nbsp;and&amp;nbsp;&lt;code style="background-color: #eeeeee; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;draft_ver5_Dec_31_11__12_30.doc&lt;/code&gt;. Again all my final deliverables go in in the FINAL folder&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 16px; margin-bottom: 7px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; word-wrap: break-word;"&gt;For R, Python code and some C#, it gets a bit tricky, as I host it outside of the project but with a working copy to&amp;nbsp;&lt;code style="background-color: #eeeeee; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;my_projects/code&lt;/code&gt;&amp;nbsp;folder. I do this as most of the python code is reusable. If you put all your python code besides the projects, you'll forget about them. Also, all my python code goes on github.&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 16px; margin-bottom: 7px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; word-wrap: break-word;"&gt;To me project files include any file types including time tracking, communications (I save all my emails as .msg files), I log all our verbal communications in a word file, and I put all those files my_project/communication&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 16px; margin-bottom: 7px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; word-wrap: break-word;"&gt;With ArcGIS use Models, LYR, and "save selection as a new shp layer". These tools will make it easy to store files in smaller formats, reuse files, and with models, be able to use something in another place.&lt;/li&gt;&lt;/ul&gt;&lt;h2 style="background-color: rgba(248, 248, 248, 0.589844); border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: normal; line-height: 1.1em !important; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; vertical-align: baseline;"&gt;Final Output&lt;/h2&gt;&lt;ul style="background-color: rgba(248, 248, 248, 0.589844); border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 18px; list-style-image: initial; list-style-position: initial; margin-bottom: 1em; margin-left: 30px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; vertical-align: baseline;"&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 16px; margin-bottom: 7px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; word-wrap: break-word;"&gt;Each project when finalized gets zipped and put on my external harddrive.&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 16px; margin-bottom: 7px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; word-wrap: break-word;"&gt;All final products are converted to files from Tables, and to PDF from all other formats.&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 16px; margin-bottom: 7px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; word-wrap: break-word;"&gt;Every Project I do, gets printed for a hard copy backup&lt;/li&gt;&lt;/ul&gt;&lt;h2 style="background-color: rgba(248, 248, 248, 0.589844); border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: normal; line-height: 1.1em !important; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; vertical-align: baseline;"&gt;The Bottom Line&lt;/h2&gt;&lt;ul style="background-color: rgba(248, 248, 248, 0.589844); border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 18px; list-style-image: initial; list-style-position: initial; margin-bottom: 1em; margin-left: 30px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; vertical-align: baseline;"&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 16px; margin-bottom: 7px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; word-wrap: break-word;"&gt;Each person uses multiple and different software and tools. A lot of people I know get organized using&amp;nbsp;&lt;a href="http://basecamphq.com/" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #358daa; cursor: pointer; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;basecamp&lt;/a&gt;,&amp;nbsp;&lt;a href="http://www.getharvest.com/" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #358daa; cursor: pointer; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;Harvest&lt;/a&gt;, or any other multitude of tools. Also people have different working habits and OCD tendencies. I'm fairly obsessed with getting stuff organized maybe a bit more than others. So develop the system that causes you the least stress while&amp;nbsp;&lt;strong style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;guaranteeing you'll be consistent in applying and updating it&lt;/strong&gt;&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 16px; margin-bottom: 7px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; word-wrap: break-word;"&gt;Backup and replicate everything&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 16px; margin-bottom: 7px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; word-wrap: break-word;"&gt;Don't work directly on your raw / base data&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 16px; margin-bottom: 7px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; word-wrap: break-word;"&gt;For your projects always use a replica file, as data changes over time, and you don't want to be scrambling to find the&amp;nbsp;&lt;code style="background-color: #eeeeee; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;base_layer_2006.shp&lt;/code&gt;.&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 16px; margin-bottom: 7px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; word-wrap: break-word;"&gt;each my_projects folder&amp;nbsp;&lt;strong style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;must&lt;/strong&gt;&amp;nbsp;have a README text file that you edit it while you're doing the projects to give some basic information that you know you'll forget later when you visit the project 2 years down the road&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-8419066229658474418?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/8419066229658474418/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2012/02/how-do-i-organize-my-gis-projects.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/8419066229658474418'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/8419066229658474418'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2012/02/how-do-i-organize-my-gis-projects.html' title='How do I organize my GIS projects?'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-256985644729981201</id><published>2012-01-17T19:40:00.000-08:00</published><updated>2012-01-17T19:42:49.042-08:00</updated><title type='text'>Orbeon XForms and ANZLIC Metadata Editor</title><content type='html'>&amp;nbsp;&lt;a href="http://orbeon.com/"&gt;http://orbeon.com/&lt;/a&gt;&amp;nbsp;has a very good platform to build XForms based web-application.&lt;br /&gt;&lt;br /&gt;This is very suitable for an ANLIC Metadata Editor which should have the same or more functionality than&lt;br /&gt;xMET (eXtensible Metadata Editing Tool)&lt;br /&gt;&lt;a href="http://www.mymaps.gov.au/xmet/1.0t/xmet-setup.exe"&gt;http://www.mymaps.gov.au/xmet/1.0t/xmet-setup.exe&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Other XForms implementation:&lt;br /&gt;1. FormFaces, a javascript implementation of XForms Engine&lt;br /&gt;2.&amp;nbsp;&lt;span class="Apple-style-span" style="background-color: white; font-family: sans-serif; font-size: 13px; line-height: 19px;"&gt;AJAXForms, XSLTForms, betterFORM, Chiba and Orbeon Forms&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-256985644729981201?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/256985644729981201/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2012/01/orbeon-xforms-and-anzlic-metadata.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/256985644729981201'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/256985644729981201'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2012/01/orbeon-xforms-and-anzlic-metadata.html' title='Orbeon XForms and ANZLIC Metadata Editor'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-8654725828466208447</id><published>2012-01-04T07:01:00.000-08:00</published><updated>2012-01-04T07:01:08.943-08:00</updated><title type='text'>Broadleafdemo-1.5 &amp; IBM Websphere v8.5</title><content type='html'>Once you got broadleafdemo running in JBoss 7 as per&amp;nbsp;&lt;a href="http://lydonchandra.blogspot.com/2011/12/running-broadleaf-ecommerce-150-demo-in.html"&gt;http://lydonchandra.blogspot.com/2011/12/running-broadleaf-ecommerce-150-demo-in.html&lt;/a&gt;&amp;nbsp;, then it should be trivial to deploy it onto IBM Websphere v8.5.&lt;br /&gt;&lt;br /&gt;1. Go to Websphere admin console http://host:9043/ibm/console&lt;br /&gt;2. Applications &amp;gt; New Application &amp;gt; New Enterprise Application&lt;br /&gt;3. Choose "Local file system" and select a compressed broadleafdemo.war (not exploded).&lt;br /&gt;4. Choose "Details" settings, and make sure you map broadleafdemo.war onto /broadleafdemo context (and not onto the root context / )&lt;br /&gt;5. Save and start broadleafdemo.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-8654725828466208447?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/8654725828466208447/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2012/01/broadleafdemo-15-ibm-websphere-v85.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/8654725828466208447'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/8654725828466208447'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2012/01/broadleafdemo-15-ibm-websphere-v85.html' title='Broadleafdemo-1.5 &amp; IBM Websphere v8.5'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-5413607155005710696</id><published>2011-12-28T10:49:00.000-08:00</published><updated>2011-12-28T10:49:54.836-08:00</updated><title type='text'>Using Glassfish built-in connection pool (rather than dbcp or c3p0)</title><content type='html'>From&amp;nbsp;&lt;a href="http://skytteren.blogspot.com/2009/06/using-mysql-connection-pool-in.html"&gt;http://skytteren.blogspot.com/2009/06/using-mysql-connection-pool-in.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Using MySQL connection pool in Glassfish V3&lt;br /&gt;I tried with a simple data source in Spring, but it isn't meant for production environments. So I wanted to move from:&lt;br /&gt;&lt;br /&gt;&amp;lt;bean id="simpleDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"&amp;gt;&lt;br /&gt;&amp;lt;property name="driverClassName" value="com.mysql.jdbc.Driver"/&amp;gt;&lt;br /&gt;&amp;lt;property name="url" value="jdbc:mysql://localhost:3306/database"/&amp;gt;&lt;br /&gt;&amp;lt;property name="username" value="database"/&amp;gt;&lt;br /&gt;&amp;lt;property name="password" value="s3cr3t"/&amp;gt;&lt;br /&gt;&amp;lt;/bean&amp;gt;&lt;br /&gt;&lt;br /&gt;to:&lt;br /&gt;&lt;br /&gt;&amp;lt;bean id="jndiDataSource" class="org.springframework.jndi.JndiObjectFactoryBean"&amp;gt;&lt;br /&gt;&amp;lt;property name="jndiName" value="jdbc/databasePool" /&amp;gt;&lt;br /&gt;&amp;lt;/bean&amp;gt;&lt;br /&gt;&lt;br /&gt;This can be done from within Glassfish admin, by creating the connection pool with the specified jndi name.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-5413607155005710696?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/5413607155005710696/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2011/12/from-httpskytteren.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/5413607155005710696'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/5413607155005710696'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2011/12/from-httpskytteren.html' title='Using Glassfish built-in connection pool (rather than dbcp or c3p0)'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-7303245932123520916</id><published>2011-12-28T08:45:00.000-08:00</published><updated>2011-12-28T08:58:58.547-08:00</updated><title type='text'>c3p0 connection pool in broadleafdemo (instead of dbcp)</title><content type='html'>Why c3p0 ?&lt;br /&gt;The old dbcp (1.2.2 is used in broadleafdemo) is less robust than c3p0.&lt;br /&gt;&lt;a href="http://stackoverflow.com/questions/520585/connection-pooling-options-with-jdbc-dbcp-vs-c3p0"&gt;http://stackoverflow.com/questions/520585/connection-pooling-options-with-jdbc-dbcp-vs-c3p0&lt;/a&gt;&lt;br /&gt;Will do some performance testing with dbcp 1.4.&lt;br /&gt;&lt;br /&gt;1. Open broadleafdemo.war\WEB-INF\applicationContext-demo.xml&lt;br /&gt;&lt;div&gt;2. Modify your webDS and webStorageDS beans&amp;nbsp;&lt;/div&gt;&lt;div&gt;2a. change the class to com.mchange.v2.c3p0.ComboPooledDataSource&lt;/div&gt;&lt;div&gt;2b. change property name to driverClass (from driverClassName)&lt;/div&gt;&lt;div&gt;2c. change property name to jdbcUrl (from url)&lt;/div&gt;&lt;div&gt;2d. change property name to user (from username)&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&amp;lt;bean id="webDS" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"&amp;gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&amp;lt;property name="driverClass" value="com.mysql.jdbc.Driver" /&amp;gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&amp;lt;property name="jdbcUrl" value="jdbc:mysql://localhost:3306/broadleaf" /&amp;gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&amp;lt;property name="user" value="user" /&amp;gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&amp;lt;property name="password" value="password" /&amp;gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&amp;lt;/bean&amp;gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;lt;bean id="webStorageDS" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"&amp;gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&amp;lt;property name="driverClass" value="org.mysql.jdbc.Driver" /&amp;gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&amp;lt;property name="jdbcUrl" value="jdbc:mysql://localhost:3306/broadleaf" /&amp;gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&amp;lt;property name="user" value="user" /&amp;gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&amp;lt;property name="password" value="password" /&amp;gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&amp;lt;/bean&amp;gt;&lt;br /&gt;&lt;br /&gt;3. Download c3p0 from&amp;nbsp;&lt;a href="http://sourceforge.net/projects/c3p0/files/latest/download"&gt;http://sourceforge.net/projects/c3p0/files/latest/download&lt;/a&gt;&amp;nbsp;, extract, and copy c3p0-xxxx.jar (c3p0-0.9.1.2.jar at the time of this writing) into broadleafdemo.war\WEB-INF\lib&lt;br /&gt;&lt;br /&gt;4. (Optional) You can also remove commons-dbcp.jar from broadleafdemo.war\WEB-INF\lib as it's no longer used.&lt;br /&gt;&lt;br /&gt;References:&lt;br /&gt;&lt;a href="http://stackoverflow.com/questions/3002899/spring-configuration-of-c3p0-with-hibernate"&gt;http://stackoverflow.com/questions/3002899/spring-configuration-of-c3p0-with-hibernate&lt;/a&gt;&lt;br /&gt;&lt;a href="http://stackoverflow.com/questions/520585/connection-pooling-options-with-jdbc-dbcp-vs-c3p0"&gt;http://stackoverflow.com/questions/520585/connection-pooling-options-with-jdbc-dbcp-vs-c3p0&lt;/a&gt;&lt;br /&gt;&lt;a href="http://sourceforge.net/projects/c3p0/"&gt;http://sourceforge.net/projects/c3p0/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-7303245932123520916?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/7303245932123520916/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2011/12/c3p0-connection-pool-in-broadleafdemo.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/7303245932123520916'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/7303245932123520916'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2011/12/c3p0-connection-pool-in-broadleafdemo.html' title='c3p0 connection pool in broadleafdemo (instead of dbcp)'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-4529019655089456249</id><published>2011-12-26T09:42:00.000-08:00</published><updated>2011-12-26T09:42:32.392-08:00</updated><title type='text'>Running CLUSTERED Broadleaf Ecommerce 1.5.0 Demo in Oracle GlassFish Server 3.1.1</title><content type='html'>Once you have Broadleafdemo running in Oracle Glassfish 3.1.1 (read&amp;nbsp;&lt;a href="http://lydonchandra.blogspot.com/2011/12/running-broadleaf-ecommerce-150-demo-in_26.html%C2%A0"&gt;http://lydonchandra.blogspot.com/2011/12/running-broadleaf-ecommerce-150-demo-in_26.html&lt;/a&gt;), you might want to run it in a clustered Glassfish configuration using Apache 2.2 + mod_jk connector.&lt;br /&gt;&lt;br /&gt;Most of the instructions below are obtained from&amp;nbsp;&lt;a href="http://tiainen.sertik.net/2011/03/load-balancing-with-glassfish-31-and.html"&gt;http://tiainen.sertik.net/2011/03/load-balancing-with-glassfish-31-and.html&lt;/a&gt;&lt;br /&gt;1. From Glassfish admin, create a new cluster, say cluster1&lt;br /&gt;&lt;br /&gt;2. Once cluster1 is created, go to Instances tab, and create 2 new instances, instance1 and instance2&lt;br /&gt;&lt;br /&gt;3. Create mod_jk listener, go to Configurations &amp;gt; Network Config &amp;gt; Network Listener , and click on New.&lt;br /&gt;3a. Enter "mod-jk" on Name textbox,&lt;br /&gt;3b. enter 28009 as port number and&lt;br /&gt;3c. make sure you check the &lt;span class="Apple-style-span" style="color: blue;"&gt;JK Listener &lt;/span&gt;checkbox. Click Save.&lt;br /&gt;3d. Stop and start the cluster&lt;br /&gt;&lt;br /&gt;4. Download Apache 2.2 and mod_jk (http://tomcat.apache.org/download-connectors.cgi), extract Apache 2.2 and mod_jk.so into Apache22/modules directory&lt;br /&gt;&lt;br /&gt;5. Add the following to Apache httpd.conf&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Include conf/mod-jk.conf&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;6. create conf/mod-jk.conf&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;LoadModule jk_module modules/mod_jk.so&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;# Where to find workers.properties&lt;/div&gt;&lt;div&gt;JkWorkersFile conf/workers.properties&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;# Where to put jk logs&lt;/div&gt;&lt;div&gt;JkLogFile logs/mod_jk1.log&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;# Set the jk log level [debug/error/info]&lt;/div&gt;&lt;div&gt;JkLogLevel info&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;# Select the log format&lt;/div&gt;&lt;div&gt;JkLogStampFormat &amp;nbsp;"[%a %b %d %H:%M:%S %Y]"&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;# JkOptions indicates to send SSK KEY SIZE&lt;/div&gt;&lt;div&gt;JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;# JkRequestLogFormat&lt;/div&gt;&lt;div&gt;JkRequestLogFormat "%w %V %T"&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div&gt;# Mount your applications&lt;/div&gt;&lt;div&gt;JkMountFile conf/uriworkermap.properties &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;# Add shared memory.&lt;/div&gt;&lt;div&gt;# This directive is present with 1.2.10 and&lt;/div&gt;&lt;div&gt;# later versions of mod_jk, and is needed for&lt;/div&gt;&lt;div&gt;# for load balancing to work properly&lt;/div&gt;&lt;div&gt;JkShmFile logs/jk.shm&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div&gt;# Add jkstatus for managing runtime data&lt;/div&gt;&lt;div&gt;&lt;location jkstatus=""&gt;&lt;/location&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; JkMount status&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; Order deny,allow&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; Deny from all&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; Allow from 127.0.0.1&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;7. Create worker.properties with the following information, put the correct ip address on worker.node1.host&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;worker.node1.port=28009&lt;/div&gt;&lt;div&gt;worker.node1.host=127.0.0.1&lt;/div&gt;&lt;div&gt;worker.node1.type=ajp13&lt;/div&gt;&lt;div&gt;worker.node1.lbfactor=1&lt;/div&gt;&lt;div&gt;worker.status.type=status&lt;/div&gt;&lt;div&gt;worker.loadbalancer.sticky_session=1&lt;/div&gt;&lt;div&gt;worker.loadbalancer.type=lb&lt;/div&gt;&lt;div&gt;worker.loadbalancer.balance_workers=node1&lt;/div&gt;&lt;div&gt;worker.list=loadbalancer,status&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;8. Create uriworkermap.properties to tell mod_jk which webapp to mount&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;/=loadbalancer&lt;/div&gt;&lt;div&gt;/*=loadbalancer&lt;/div&gt;&lt;div&gt;/broadleafdemo=loadbalancer&lt;/div&gt;&lt;div&gt;/broadleafdemo/*=loadbalancer&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;9. Start httpd&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-4529019655089456249?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/4529019655089456249/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2011/12/running-clustered-broadleaf-ecommerce.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/4529019655089456249'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/4529019655089456249'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2011/12/running-clustered-broadleaf-ecommerce.html' title='Running CLUSTERED Broadleaf Ecommerce 1.5.0 Demo in Oracle GlassFish Server 3.1.1'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-1708988626376723660</id><published>2011-12-26T02:00:00.000-08:00</published><updated>2011-12-26T02:00:32.008-08:00</updated><title type='text'>Running Broadleaf Ecommerce 1.5.0 Demo in Oracle GlassFish Server 3.1.1</title><content type='html'>Once you got it deployed and running in JBoss 7 (read my previous post&amp;nbsp;&lt;a href="http://lydonchandra.blogspot.com/2011/12/running-broadleaf-ecommerce-150-demo-in.html"&gt;http://lydonchandra.blogspot.com/2011/12/running-broadleaf-ecommerce-150-demo-in.html&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;you can just use the same broadleafdemo.war (which has modified compass JAR) and&lt;br /&gt;&lt;br /&gt;deploy it as an Web-Application from the GlassFish Server administration page &amp;gt; Applications &amp;gt; Deploy&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-cKG9dXN9Y8Q/TvhFsMM5AKI/AAAAAAAAADw/Ab_0oPcdn0Q/s1600/broadleaf-glassfish311.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="162" src="http://1.bp.blogspot.com/-cKG9dXN9Y8Q/TvhFsMM5AKI/AAAAAAAAADw/Ab_0oPcdn0Q/s320/broadleaf-glassfish311.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span id="goog_630500374"&gt;&lt;/span&gt;&lt;span id="goog_630500375"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-1708988626376723660?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/1708988626376723660/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2011/12/running-broadleaf-ecommerce-150-demo-in_26.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/1708988626376723660'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/1708988626376723660'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2011/12/running-broadleaf-ecommerce-150-demo-in_26.html' title='Running Broadleaf Ecommerce 1.5.0 Demo in Oracle GlassFish Server 3.1.1'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-cKG9dXN9Y8Q/TvhFsMM5AKI/AAAAAAAAADw/Ab_0oPcdn0Q/s72-c/broadleaf-glassfish311.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-311363157795731552</id><published>2011-12-25T09:24:00.000-08:00</published><updated>2011-12-25T09:34:10.197-08:00</updated><title type='text'>Running Broadleaf Ecommerce 1.5.0 Demo in JBoss 7.1.0.CR1b</title><content type='html'>A bit more complicated as it should be in the beginning, where JBoss changes the protocol name from vfszip to vfs,&lt;br /&gt;&lt;br /&gt;1. so I had to build the latest Compass trunk (rev 3940) from http://svn.compass-project.org/svn/compass/trunk/&lt;br /&gt;&lt;div&gt;&lt;br /&gt;2. Modify&amp;nbsp;http://svn.compass-project.org/svn/compass/trunk/src/main/src/org/compass/core/config/binding/scanner/ScannerFactoy.java&lt;/div&gt;&lt;div&gt;to:&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;else if ( url.getProtocol().equals("vfszip") ||&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;     &lt;/span&gt;url.getProtocol().equals("vfs") ) {&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; url = new URL(urlString);&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return new JarScanner(basePackage, url.openStream(), filter);&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;3. Replaced the broadleaf's supplied compass-2.2.0.jar with the newly built Compass jar file ( available from http://www.multiupload.com/AY0F7UPKX6 as of Dec 25 2011)&lt;br /&gt;&lt;br /&gt;4. Start JBoss (in standalone mode), everything should work fine!!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;/*&lt;/div&gt;&lt;div&gt;&amp;nbsp;* Copyright 2004-2009 the original author or authors.&lt;/div&gt;&lt;div&gt;&amp;nbsp;*&lt;/div&gt;&lt;div&gt;&amp;nbsp;* Licensed under the Apache License, Version 2.0 (the "License");&lt;/div&gt;&lt;div&gt;&amp;nbsp;* you may not use this file except in compliance with the License.&lt;/div&gt;&lt;div&gt;&amp;nbsp;* You may obtain a copy of the License at&lt;/div&gt;&lt;div&gt;&amp;nbsp;*&lt;/div&gt;&lt;div&gt;&amp;nbsp;* &amp;nbsp; &amp;nbsp; &amp;nbsp;http://www.apache.org/licenses/LICENSE-2.0&lt;/div&gt;&lt;div&gt;&amp;nbsp;*&lt;/div&gt;&lt;div&gt;&amp;nbsp;* Unless required by applicable law or agreed to in writing, software&lt;/div&gt;&lt;div&gt;&amp;nbsp;* distributed under the License is distributed on an "AS IS" BASIS,&lt;/div&gt;&lt;div&gt;&amp;nbsp;* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.&lt;/div&gt;&lt;div&gt;&amp;nbsp;* See the License for the specific language governing permissions and&lt;/div&gt;&lt;div&gt;&amp;nbsp;* limitations under the License.&lt;/div&gt;&lt;div&gt;&amp;nbsp;*/&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;package org.compass.core.config.binding.scanner;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;import java.io.File;&lt;/div&gt;&lt;div&gt;import java.io.IOException;&lt;/div&gt;&lt;div&gt;import java.net.URL;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;/**&lt;/div&gt;&lt;div&gt;&amp;nbsp;* @author kimchy&lt;/div&gt;&lt;div&gt;&amp;nbsp;*/&lt;/div&gt;&lt;div&gt;public class ScannerFactoy {&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; public static Scanner create(String basePackage, URL url, Filter filter) throws IOException {&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; String urlString = url.toString();&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; urlString = urlString.substring(0, urlString.lastIndexOf(basePackage));&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (urlString.endsWith("!/")) {&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; urlString = urlString.substring(4);&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; urlString = urlString.substring(0, urlString.length() - 2);&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; url = new URL(urlString);&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (!urlString.endsWith("/")) {&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return new JarScanner(basePackage, url.openStream(), filter);&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else if (url.getProtocol().equals("file")) {&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; File f = new File(url.getPath());&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (f.isDirectory()) {&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return new FileScanner(basePackage, f, filter);&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else {&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return new JarScanner(basePackage, url.openStream(), filter);&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else if ( url.getProtocol().equals("vfszip") ||&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;     &lt;/span&gt;url.getProtocol().equals("vfs") ) {&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; url = new URL(urlString);&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return new JarScanner(basePackage, url.openStream(), filter);&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else {&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; throw new IOException("Protocol [" + url.getProtocol() + "] is not supported by scanner");&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; }&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-311363157795731552?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/311363157795731552/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2011/12/running-broadleaf-ecommerce-150-demo-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/311363157795731552'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/311363157795731552'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2011/12/running-broadleaf-ecommerce-150-demo-in.html' title='Running Broadleaf Ecommerce 1.5.0 Demo in JBoss 7.1.0.CR1b'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-6673601668695521072</id><published>2011-12-25T05:10:00.000-08:00</published><updated>2011-12-25T05:11:02.215-08:00</updated><title type='text'>Running Broadleaf eCommerce Demo 1.5.0 in JBoss 5.1</title><content type='html'>I had problems deploying &lt;a href="http://www.broadleafcommerce.org/"&gt;Broadleaf eCommerce Demo 1.5.0 &lt;/a&gt;in JBoss 7.0. So I went back to JBoss 5.1 and followed this&amp;nbsp;&lt;a href="http://www.broadleafcommerce.org/forum/viewtopic.php?f=9&amp;amp;t=115"&gt;forum post&lt;/a&gt;&amp;nbsp;and finally got the broadleafdemo.war to deploy in JBoss 5.1.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Why JBoss you ask ? Well some enterprise users use JBoss and we want to give them an easier option to deploy inside their JBoss app server, rather asking them to install Tomcat or run from Jetty.&lt;/div&gt;&lt;div&gt;If they have to install Tomcat or run from Jetty, then they will have to configure their network security settings etc etc, it's just not fun. So why JBoss again ? &lt;span class="Apple-style-span" style="color: blue;"&gt;To make deployment easier,&lt;/span&gt; for now at least :)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Steps:&lt;/div&gt;&lt;div&gt;1. Download and extract JBoss 5.1 if you haven't already, and make sure you can run broadleaf with mysql as your database (follow my previous post about running broadleaf with mysql or google it).&lt;/div&gt;&lt;div&gt;2. Remove jboss-5.1.0.CR\common\lib\hibernate-validator.jar (or move it somewhere else)&lt;/div&gt;&lt;div&gt;3. Copy the expanded broadleafdemo.war to jboss-5.1.0.CR\server\default\deploy&lt;/div&gt;&lt;div&gt;4. Download compass-2.3.1-beta1.jar from either &lt;a href="http://www.java2s.com/Code/Jar/c/Downloadcompass230beta1jar.htm"&gt;java2s.com&lt;/a&gt;&amp;nbsp;or &lt;a href="http://rutgersmaps.googlecode.com/files/rutgersMaps_v0.1.zip"&gt;rutgersmaps&lt;/a&gt;&amp;nbsp;and replace broadleafdemo.war\WEB-INF\lib\compass-2.2.0.jar&lt;/div&gt;&lt;div&gt;5. Start JBoss, and you should be able to access http://myserver:8080/broadleafdemo&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-6673601668695521072?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/6673601668695521072/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2011/12/running-broadleaf-ecommerce-demo-150-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/6673601668695521072'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/6673601668695521072'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2011/12/running-broadleaf-ecommerce-demo-150-in.html' title='Running Broadleaf eCommerce Demo 1.5.0 in JBoss 5.1'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-7121622415252976199</id><published>2011-12-24T16:12:00.000-08:00</published><updated>2011-12-24T16:15:57.807-08:00</updated><title type='text'>Running Broadleaf E-commerce demo in Various Java Application Server and Database</title><content type='html'>First we start using MySQL and Tomcat 7.0&lt;br /&gt;&lt;br /&gt;1. Extract broadleafdemo.war file into an expanded war&lt;br /&gt;2. As detailed here in http://www.broadleafcommerce.org/forum/viewtopic.php?f=9&amp;amp;t=379&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Trebuchet MS', Verdana, Helvetica, Arial, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: 14px; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: #f7f7f0; color: #333333; font-family: 'Lucida Grande', 'Trebuchet MS', Verdana, Helvetica, Arial, sans-serif; font-size: 14px; line-height: 18px;"&gt;2a. in META-INF/persistence-demo.xml' file replace&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: #f7f7f0; color: #333333; font-family: 'Lucida Grande', 'Trebuchet MS', Verdana, Helvetica, Arial, sans-serif; font-size: 14px; line-height: 18px;"&gt;- org.hibernate.dialect.HSQLDialect by org.hibernate.dialect.MySQLDialect in the 'blPU' and 'blSecurePU' persistence unit configurations&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;2b. in&amp;nbsp;&lt;span class="Apple-style-span" style="background-color: #f7f7f0; color: #333333; font-family: 'Lucida Grande', 'Trebuchet MS', Verdana, Helvetica, Arial, sans-serif; font-size: 14px; line-height: 18px;"&gt;WEB-INF/applicationContext-demo.xml' file replace the following lines&lt;/span&gt;&lt;span class="Apple-style-span" style="background-color: #f7f7f0; color: #333333; font-family: 'Lucida Grande', 'Trebuchet MS', Verdana, Helvetica, Arial, sans-serif; font-size: 14px; line-height: 18px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;bean id="webDS" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name="driverClassName" value="org.hsqldb.jdbcDriver" /&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name="url" value="jdbc:hsqldb:mem:broadleaf;ifexists=false" /&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name="username" value="sa" /&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name="password" value="" /&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;lt;/bean&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;with&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;bean id="webDS" class="org.apache.commons.dbcp.BasicDataSource"&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; destroy-method="close"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;!-- The JDBC Driver class name. --&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name="driverClassName" value="com.mysql.jdbc.Driver" /&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name="url" value="jdbc:mysql://localhost:3306/broadleaf" /&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name="username" value="MY_USER_NAME" /&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;property name="password" value="MY_PASSWORD" /&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;lt;/bean&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: Monaco, 'Andale Mono', 'Courier New', Courier, mono; font-size: 12px; line-height: 15px;"&gt;&lt;property name="driverClassName" value="com.mysql.jdbc.Driver"&gt;&lt;/property&gt;&lt;/span&gt;&lt;br style="background-color: white; font-family: Monaco, 'Andale Mono', 'Courier New', Courier, mono; font-size: 12px; line-height: 15px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: Monaco, 'Andale Mono', 'Courier New', Courier, mono; font-size: 12px; line-height: 15px;"&gt;&lt;property name="url" value="jdbc:mysql://localhost:3306/broadleaf"&gt;&lt;/property&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: Monaco, 'Andale Mono', 'Courier New', Courier, mono; font-size: 12px; line-height: 15px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: Monaco, 'Andale Mono', 'Courier New', Courier, mono; font-size: 12px; line-height: 15px;"&gt;and update the username and password properties accordingly!!!&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: Monaco, 'Andale Mono', 'Courier New', Courier, mono; font-size: 12px; line-height: 15px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: Monaco, 'Andale Mono', 'Courier New', Courier, mono; font-size: 12px; line-height: 15px;"&gt;3. login to mysql and create database 'broadleaf'&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: Monaco, 'Andale Mono', 'Courier New', Courier, mono; font-size: 12px; line-height: 15px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: Monaco, 'Andale Mono', 'Courier New', Courier, mono; font-size: 12px; line-height: 15px;"&gt;mysql&amp;gt;&amp;gt; create database broadleaf;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: Monaco, 'Andale Mono', 'Courier New', Courier, mono; font-size: 12px; line-height: 15px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Monaco, 'Andale Mono', 'Courier New', Courier, mono;"&gt;&lt;span class="Apple-style-span" style="font-size: 12px; line-height: 15px;"&gt;4. copy the expanded broadleaf.war directory created in #1 above into Tomcat 7.0 directory&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Monaco, 'Andale Mono', 'Courier New', Courier, mono;"&gt;&lt;span class="Apple-style-span" style="font-size: 12px; line-height: 15px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Monaco, 'Andale Mono', 'Courier New', Courier, mono;"&gt;&lt;span class="Apple-style-span" style="font-size: 12px; line-height: 15px;"&gt;5. download &amp;amp; copy&amp;nbsp;mysql-connector-java-5.1.17.jar into broadleafdemo.war/WEB-INF/lib&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Monaco, 'Andale Mono', 'Courier New', Courier, mono;"&gt;&lt;span class="Apple-style-span" style="font-size: 12px; line-height: 15px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Monaco, 'Andale Mono', 'Courier New', Courier, mono;"&gt;&lt;span class="Apple-style-span" style="font-size: 12px; line-height: 15px;"&gt;6. start tomcat.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Monaco, 'Andale Mono', 'Courier New', Courier, mono;"&gt;&lt;span class="Apple-style-span" style="font-size: 12px; line-height: 15px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Monaco, 'Andale Mono', 'Courier New', Courier, mono;"&gt;&lt;span class="Apple-style-span" style="font-size: 12px; line-height: 15px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Monaco, 'Andale Mono', 'Courier New', Courier, mono;"&gt;&lt;span class="Apple-style-span" style="font-size: 12px; line-height: 15px;"&gt;Caveat:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Monaco, 'Andale Mono', 'Courier New', Courier, mono;"&gt;&lt;span class="Apple-style-span" style="font-size: 12px; line-height: 15px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Monaco, 'Andale Mono', 'Courier New', Courier, mono;"&gt;&lt;span class="Apple-style-span" style="font-size: 12px; line-height: 15px;"&gt;For some reason Spring Framework complains about NOT finding the com.mysql.jdbc.Driver ?&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Monaco, 'Andale Mono', 'Courier New', Courier, mono; font-size: 12px; line-height: 15px;"&gt;However the broadleafdemo site works OK.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Monaco, 'Andale Mono', 'Courier New', Courier, mono; font-size: 12px; line-height: 15px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Monaco, 'Andale Mono', 'Courier New', Courier, mono;"&gt;&lt;span class="Apple-style-span" style="font-size: 12px; line-height: 15px;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Monaco, 'Andale Mono', 'Courier New', Courier, mono;"&gt;[ INFO] 07:56:49 SchemaExport - exporting generated schema to database&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Monaco, 'Andale Mono', 'Courier New', Courier, mono;"&gt;Cannot load JDBC driver class 'org.mysql.jdbc.Driver'&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Monaco, 'Andale Mono', 'Courier New', Courier, mono;"&gt;java.lang.ClassNotFoundException: org.mysql.jdbc.Driver&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Monaco, 'Andale Mono', 'Courier New', Courier, mono;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoa&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Monaco, 'Andale Mono', 'Courier New', Courier, mono;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoa&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Monaco, 'Andale Mono', 'Courier New', Courier, mono;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at java.lang.Class.forName0(Native Method)&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Monaco, 'Andale Mono', 'Courier New', Courier, mono;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at java.lang.Class.forName(Class.java:169)&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Monaco, 'Andale Mono', 'Courier New', Courier, mono;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSou&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Monaco, 'Andale Mono', 'Courier New', Courier, mono;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Monaco, 'Andale Mono', 'Courier New', Courier, mono;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.hibernate.ejb.connection.InjectedDataSourceConnectionProvider.get&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Monaco, 'Andale Mono', 'Courier New', Courier, mono;"&gt;ataSourceConnectionProvider.java:71)&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Monaco, 'Andale Mono', 'Courier New', Courier, mono;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Monaco, 'Andale Mono', 'Courier New', Courier, mono;"&gt;&lt;span class="Apple-style-span" style="font-size: 12px; line-height: 15px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Monaco, 'Andale Mono', 'Courier New', Courier, mono;"&gt;&lt;span class="Apple-style-span" style="font-size: 12px; line-height: 15px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-7121622415252976199?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/7121622415252976199/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2011/12/running-broadleaf-e-commerce-demo-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/7121622415252976199'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/7121622415252976199'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2011/12/running-broadleaf-e-commerce-demo-in.html' title='Running Broadleaf E-commerce demo in Various Java Application Server and Database'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-5760971286973971165</id><published>2011-12-19T06:26:00.000-08:00</published><updated>2011-12-19T07:03:17.866-08:00</updated><title type='text'>Reading big file quickly by skipping</title><content type='html'>&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;This is to read a grid file with columns such as&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;a1 b1 c1&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;a2 b2 c2&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;a3 b3 c3&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;a4 b4 c4&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;a5 b5 c5&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;a6 b6 c6&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;a7 b7 c7&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;a8 b8 c8&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;a9 b9 c9&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;a10 b10 c10&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;say we want to read 'approximately' every 4 lines, i.e. line2 then line6 and then line10, then what we can do is&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;to jump using the file offset. As we only want to read a 'whole' line and we can't guarantee &amp;nbsp;whether a line is 'whole' or not if we use the file offset, we read and then discard a line, and read the next one. This assumes a line is separated by newline.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;read line and discard&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;read line and save //a2 b2 c2&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;jump 27bytes ahead //a line is approx 9bytes with a newline&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;read line and discard&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;read line and save //a6 b6 c6&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;jump 27bytes ahead&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;read line and discard&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;read line and save //a10 b10 c10&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;...&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;using boost::iostreams::position_to_offset;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; using boost::iostreams::seek;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; using boost::iostreams::stream_offset;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; stream_offset off;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // save EOF offset so we know if we have finished reading the file&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; stream_offset endoff = position_to_offset(seek(in, 0, BOOST_IOS::end));&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;// go back to beginning of file, we have gone to EOF in line above&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;seek(in, 0, BOOST_IOS::beg);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string line2;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while( true ) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // first read, we get "incomplete line", so ignore it&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; getline(in, line2);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // second read, we get "complete" line&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; getline(in, line2);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //cout &amp;lt;&amp;lt; line2 &amp;lt;&amp;lt; endl;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // jump approximately 1000 lines ahead&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; off = position_to_offset(seek(in, 200000, BOOST_IOS::cur));&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // finish reading the file&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( off &amp;gt; endoff ) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cout &amp;lt;&amp;lt; "finished" &amp;lt;&amp;lt; endl;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-5760971286973971165?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/5760971286973971165/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2011/12/reading-big-file-quickly-by-skipping.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/5760971286973971165'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/5760971286973971165'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2011/12/reading-big-file-quickly-by-skipping.html' title='Reading big file quickly by skipping'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-951380435347697619</id><published>2011-12-18T03:33:00.000-08:00</published><updated>2011-12-18T03:54:16.624-08:00</updated><title type='text'>Java Object Size</title><content type='html'>To get the object size, YourKit Profiler v9.0.2 is used and for SimpleClass, shallow sizes are used.&lt;br /&gt;&lt;br /&gt;public class SimpleClass {&lt;br /&gt;public int x;&lt;br /&gt;}&lt;br /&gt;For 32bit Java, the size of the object is 16 bytes.&lt;br /&gt;For 64bit Java, size is 24 bytes&lt;br /&gt;&lt;br /&gt;public class SimpleClass {&lt;br /&gt;public int x;&lt;br /&gt;public int y;&lt;br /&gt;}&lt;br /&gt;32bit Java -&amp;gt; 16 bytes.&lt;br /&gt;64bit Java -&amp;gt; 24bytes.&lt;br /&gt;&lt;br /&gt;public class SimpleClass {&lt;br /&gt;public int x;&lt;br /&gt;public int y;&lt;br /&gt;public int z;&lt;br /&gt;}&lt;br /&gt;32bit Java -&amp;gt; 24 bytes.&lt;br /&gt;64bit Java -&amp;gt; 32 bytes.&lt;br /&gt;&lt;br /&gt;http://javaquirks.blogspot.com/2008/03/it-gets-worse.html&lt;br /&gt;&lt;br /&gt;______32-bit 64-bit&lt;br /&gt;Object 8 16&lt;br /&gt;Integer 16 24&lt;br /&gt;Long 16 24&lt;br /&gt;Float 16 24&lt;br /&gt;Double 16 24&lt;br /&gt;String 40 64&lt;br /&gt;Date 24 32&lt;br /&gt;Calendar 432 544&lt;br /&gt;byte[0] 16 24&lt;br /&gt;byte[32] 48 56&lt;br /&gt;byte[128][0] 2576 4120&lt;br /&gt;ArrayList&lt;integer&gt;(1) 56 96&lt;br /&gt;ArrayList&lt;integer&gt;(2) 80 128&lt;br /&gt;&lt;br /&gt;&lt;/integer&gt;&lt;/integer&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-951380435347697619?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/951380435347697619/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2011/12/java-object-size.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/951380435347697619'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/951380435347697619'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2011/12/java-object-size.html' title='Java Object Size'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-8432168289380158751</id><published>2011-12-15T06:17:00.001-08:00</published><updated>2011-12-16T23:04:12.155-08:00</updated><title type='text'>Profiling geoserver 2.1.2 using YourKit Java Profiler 9</title><content type='html'>[Load Testing Geoserver]&lt;br /&gt;&lt;br /&gt;[background]&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-6w7M78CFO7k/TuoV8VjXbkI/AAAAAAAAADA/fb4bX1ZYB3I/s1600/geoserver-ecw-2011-12-1600h38_39.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 189px;" src="http://1.bp.blogspot.com/-6w7M78CFO7k/TuoV8VjXbkI/AAAAAAAAADA/fb4bX1ZYB3I/s320/geoserver-ecw-2011-12-1600h38_39.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5686381605830487618"&gt;&lt;/a&gt;&lt;br /&gt;- Load testing is done using Apache JMeter 2.5.1 r1177103&lt;br /&gt;&lt;br /&gt;- A text file with the url (including random bbox, not scaled) is loaded by JMeter&lt;br /&gt;&lt;br /&gt;- YourKit Java Profiler 9 is used to profile geoserver&lt;br /&gt;&lt;br /&gt;- An image file 4.5GB in size is served.&lt;br /&gt;&lt;br /&gt;- The urls are generated using the following python script:&lt;br /&gt;&lt;br /&gt;import random&lt;br /&gt;#http://10.1.1.2:8080/geoserver/don/wms?service=WMS&amp;amp;version=1.1.0&amp;amp;request=GetMap&amp;amp;layers=don:china&amp;amp;styles=&amp;amp;bbox=73.115,19.934,135.103,53.597&amp;amp;width=607&amp;amp;height=330&amp;amp;srs=EPSG:4326&amp;amp;format=image/png&lt;br /&gt;minx = 73.115&lt;br /&gt;miny = 19.934&lt;br /&gt;maxx = 78.103&lt;br /&gt;maxy = 23.597&lt;br /&gt;thefile = open('geoload2.txt', 'w')&lt;br /&gt;wms1 = 'geoserver/don/wms?service=WMS&amp;amp;version=1.1.0&amp;amp;request=GetMap&amp;amp;layers=don:china&amp;amp;styles=&amp;amp;width=800&amp;amp;height=600&amp;amp;srs=EPSG:4326&amp;amp;format=image/png&amp;amp;bbox='&lt;br /&gt;distancex = maxx - minx&lt;br /&gt;distancey = maxy - miny&lt;br /&gt;for n in range(1000):&lt;br /&gt; minx1 = minx + random.random() * distancex&lt;br /&gt; miny1 = miny + random.random() * distancey&lt;br /&gt; thefile.write( wms1 + str(minx1) + ',' + str(miny1) + ',' + str(maxx) + ',' + str(maxy) + '\n' );&lt;br /&gt;&lt;br /&gt;[load-testing-shape-file]&lt;br /&gt;Serving up a 150MB shape file as WMS,&lt;br /&gt;The throughput is about 2.2 per second&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-2QE-lVGNHEk/Tuw1aJKScAI/AAAAAAAAADY/1sz0eLtmywg/s1600/geoserver-shape-file-load1-2011-12-17_1424.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 88px;" src="http://1.bp.blogspot.com/-2QE-lVGNHEk/Tuw1aJKScAI/AAAAAAAAADY/1sz0eLtmywg/s320/geoserver-shape-file-load1-2011-12-17_1424.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5686979152714035202" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Stack trace of one of the hotspot org.geotools.index.quadtree.LazySearchIterator.hasNext() which is called 50% of the time,&lt;br /&gt;can be seen in the appendix section below.&lt;br /&gt;&lt;br /&gt;[to-do]&lt;br /&gt;1. Reduce the number of  filters and see if it performs better.&lt;br /&gt;-&gt; no it doesn't improve throughput in measurable amount. will check if cpu usage is significantly less.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[appendix]&lt;br /&gt;"Name","Time (ms)","Invocation Count"&lt;br /&gt;"org.geotools.index.quadtree.LazySearchIterator.hasNext()","287819","76580"&lt;br /&gt;"org.geotools.data.shapefile.indexed.IndexedShapefileDataStore.getAttributesReader(boolean, boolean, Query, SimpleFeatureType)","286712","57"&lt;br /&gt;"org.geotools.data.shapefile.indexed.IndexedShapefileDataStore.getFeatureReader(String, Query)","",""&lt;br /&gt;"org.geotools.data.AbstractDataStore.getFeatureReader(Query, Transaction)","",""&lt;br /&gt;"org.geotools.data.DefaultFeatureResults.reader()","",""&lt;br /&gt;"org.geotools.data.store.DataFeatureCollection.openIterator()","",""&lt;br /&gt;"org.geotools.data.store.DataFeatureCollection.iterator()","",""&lt;br /&gt;"org.geotools.data.store.DataFeatureCollection.features()","",""&lt;br /&gt;"org.geotools.data.store.DataFeatureCollection.features()","",""&lt;br /&gt;"org.geotools.data.crs.ForceCoordinateSystemFeatureResults.openIterator()","",""&lt;br /&gt;"org.geotools.feature.collection.AbstractFeatureCollection.iterator()","",""&lt;br /&gt;"org.geotools.renderer.lite.StreamingRenderer.drawPlain(Graphics2D, MapLayer, AffineTransform, CoordinateReferenceSystem, String, Collection, FeatureCollection, NumberRange, ArrayList)","",""&lt;br /&gt;"org.geotools.renderer.lite.StreamingRenderer.processStylers(Graphics2D, MapLayer, AffineTransform, CoordinateReferenceSystem, Envelope, Rectangle, String)","",""&lt;br /&gt;"org.geotools.renderer.lite.StreamingRenderer.paint(Graphics2D, Rectangle, ReferencedEnvelope, AffineTransform)","",""&lt;br /&gt;"org.geotools.data.shapefile.indexed.IndexedShapefileAttributeReader.hasNext()","1044","38269"&lt;br /&gt;"org.geotools.data.FIDFeatureReader.hasNext()","",""&lt;br /&gt;"org.geotools.data.FilteringFeatureReader.hasNext()","",""&lt;br /&gt;"org.geotools.feature.FeatureReaderIterator.hasNext()","",""&lt;br /&gt;"org.geotools.feature.collection.DelegateFeatureIterator.hasNext()","",""&lt;br /&gt;"org.geotools.data.crs.ForceCoordinateSystemIterator.hasNext()","",""&lt;br /&gt;"org.geotools.renderer.lite.StreamingRenderer.drawPlain(Graphics2D, MapLayer, AffineTransform, CoordinateReferenceSystem, String, Collection, FeatureCollection, NumberRange, ArrayList)","",""&lt;br /&gt;"org.geotools.renderer.lite.StreamingRenderer.processStylers(Graphics2D, MapLayer, AffineTransform, CoordinateReferenceSystem, Envelope, Rectangle, String)","",""&lt;br /&gt;"org.geotools.renderer.lite.StreamingRenderer.paint(Graphics2D, Rectangle, ReferencedEnvelope, AffineTransform)","",""&lt;br /&gt;"org.geoserver.wms.map.RenderedImageMapOutputFormat.produceMap(WMSMapContext, boolean)","",""&lt;br /&gt;"org.geoserver.wms.map.RenderedImageMapOutputFormat.produceMap(WMSMapContext)","",""&lt;br /&gt;"org.geoserver.wms.map.RenderedImageMapOutputFormat.produceMap(WMSMapContext)","",""&lt;br /&gt;"org.geoserver.wms.GetMap.run(GetMapRequest, WMSMapContext)","",""&lt;br /&gt;"org.geoserver.wms.GetMap.run(GetMapRequest)","",""&lt;br /&gt;"org.geoserver.wms.DefaultWebMapService.getMap(GetMapRequest)","",""&lt;br /&gt;"java.lang.reflect.Method.invoke(Object, Object[])","",""&lt;br /&gt;"org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(Object, Method, Object[])","",""&lt;br /&gt;"org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint()","",""&lt;br /&gt;"org.springframework.aop.framework.ReflectiveMethodInvocation.proceed()","",""&lt;br /&gt;"org.geoserver.gwc.wms.CacheSeedingWebMapService.invoke(MethodInvocation)","",""&lt;br /&gt;"org.geoserver.gwc.wms.CacheSeedingWebMapService.invoke(MethodInvocation)","",""&lt;br /&gt;"org.springframework.aop.framework.ReflectiveMethodInvocation.proceed()","",""&lt;br /&gt;"org.geoserver.gwc.wms.CachingWebMapService.invoke(MethodInvocation)","",""&lt;br /&gt;"org.geoserver.gwc.wms.CachingWebMapService.invoke(MethodInvocation)","",""&lt;br /&gt;"org.springframework.aop.framework.ReflectiveMethodInvocation.proceed()","",""&lt;br /&gt;"org.geoserver.ows.util.RequestObjectLogger.invoke(MethodInvocation)","",""&lt;br /&gt;"org.springframework.aop.framework.ReflectiveMethodInvocation.proceed()","",""&lt;br /&gt;"org.springframework.aop.framework.JdkDynamicAopProxy.invoke(Object, Method, Object[])","",""&lt;br /&gt;"java.lang.reflect.Method.invoke(Object, Object[])","",""&lt;br /&gt;"org.geoserver.ows.Dispatcher.execute(Request, Operation)","",""&lt;br /&gt;"org.geoserver.ows.Dispatcher.handleRequestInternal(HttpServletRequest, HttpServletResponse)","",""&lt;br /&gt;"org.springframework.web.servlet.mvc.AbstractController.handleRequest(HttpServletRequest, HttpServletResponse)","",""&lt;br /&gt;"org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(HttpServletRequest, HttpServletResponse, Object)","",""&lt;br /&gt;"org.springframework.web.servlet.DispatcherServlet.doDispatch(HttpServletRequest, HttpServletResponse)","",""&lt;br /&gt;"org.springframework.web.servlet.DispatcherServlet.doService(HttpServletRequest, HttpServletResponse)","",""&lt;br /&gt;"org.springframework.web.servlet.FrameworkServlet.processRequest(HttpServletRequest, HttpServletResponse)","",""&lt;br /&gt;"org.springframework.web.servlet.FrameworkServlet.doGet(HttpServletRequest, HttpServletResponse)","",""&lt;br /&gt;"javax.servlet.http.HttpServlet.service(ServletRequest, ServletResponse)","",""&lt;br /&gt;"org.mortbay.jetty.servlet.ServletHolder.handle(ServletRequest, ServletResponse)","",""&lt;br /&gt;"org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletRequest, ServletResponse)","",""&lt;br /&gt;"org.geoserver.filters.ThreadLocalsCleanupFilter.doFilter(ServletRequest, ServletResponse, FilterChain)","",""&lt;br /&gt;"org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletRequest, ServletResponse)","",""&lt;br /&gt;"org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(ServletRequest, ServletResponse)","",""&lt;br /&gt;"org.geoserver.filters.SpringDelegatingFilter.doFilter(ServletRequest, ServletResponse, FilterChain)","",""&lt;br /&gt;"org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletRequest, ServletResponse)","",""&lt;br /&gt;"org.geoserver.platform.AdvancedDispatchFilter.doFilter(ServletRequest, ServletResponse, FilterChain)","",""&lt;br /&gt;"org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletRequest, ServletResponse)","",""&lt;br /&gt;"org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(ServletRequest, ServletResponse, FilterChain)","",""&lt;br /&gt;"org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletRequest, ServletResponse)","",""&lt;br /&gt;"org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(ServletRequest, ServletResponse)","",""&lt;br /&gt;"org.springframework.security.intercept.web.FilterSecurityInterceptor.invoke(FilterInvocation)","",""&lt;br /&gt;"org.springframework.security.intercept.web.FilterSecurityInterceptor.doFilter(ServletRequest, ServletResponse, FilterChain)","",""&lt;br /&gt;"org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(ServletRequest, ServletResponse)","",""&lt;br /&gt;"org.springframework.security.ui.ExceptionTranslationFilter.doFilterHttp(HttpServletRequest, HttpServletResponse, FilterChain)","",""&lt;br /&gt;"org.springframework.security.ui.SpringSecurityFilter.doFilter(ServletRequest, ServletResponse, FilterChain)","",""&lt;br /&gt;"org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(ServletRequest, ServletResponse)","",""&lt;br /&gt;"org.springframework.security.providers.anonymous.AnonymousProcessingFilter.doFilterHttp(HttpServletRequest, HttpServletResponse, FilterChain)","",""&lt;br /&gt;"org.springframework.security.ui.SpringSecurityFilter.doFilter(ServletRequest, ServletResponse, FilterChain)","",""&lt;br /&gt;"org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(ServletRequest, ServletResponse)","",""&lt;br /&gt;"org.springframework.security.ui.basicauth.BasicProcessingFilter.doFilterHttp(HttpServletRequest, HttpServletResponse, FilterChain)","",""&lt;br /&gt;"org.springframework.security.ui.SpringSecurityFilter.doFilter(ServletRequest, ServletResponse, FilterChain)","",""&lt;br /&gt;"org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(ServletRequest, ServletResponse)","",""&lt;br /&gt;"org.springframework.security.context.HttpSessionContextIntegrationFilter.doFilterHttp(HttpServletRequest, HttpServletResponse, FilterChain)","",""&lt;br /&gt;"org.springframework.security.ui.SpringSecurityFilter.doFilter(ServletRequest, ServletResponse, FilterChain)","",""&lt;br /&gt;"org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(ServletRequest, ServletResponse)","",""&lt;br /&gt;"org.springframework.security.util.FilterChainProxy.doFilter(ServletRequest, ServletResponse, FilterChain)","",""&lt;br /&gt;"org.springframework.security.util.FilterToBeanProxy.doFilter(ServletRequest, ServletResponse, FilterChain)","",""&lt;br /&gt;"org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletRequest, ServletResponse)","",""&lt;br /&gt;"org.geoserver.filters.LoggingFilter.doFilter(ServletRequest, ServletResponse, FilterChain)","",""&lt;br /&gt;"org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletRequest, ServletResponse)","",""&lt;br /&gt;"org.geoserver.filters.ReverseProxyFilter.doFilter(ServletRequest, ServletResponse, FilterChain)","",""&lt;br /&gt;"org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletRequest, ServletResponse)","",""&lt;br /&gt;"ch.lydon.TestFilter.TestFilter.doFilter(ServletRequest, ServletResponse, FilterChain)","",""&lt;br /&gt;"org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletRequest, ServletResponse)","",""&lt;br /&gt;"org.geoserver.filters.GZIPFilter.doFilter(ServletRequest, ServletResponse, FilterChain)","",""&lt;br /&gt;"org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletRequest, ServletResponse)","",""&lt;br /&gt;"org.geoserver.filters.SessionDebugFilter.doFilter(ServletRequest, ServletResponse, FilterChain)","",""&lt;br /&gt;"org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletRequest, ServletResponse)","",""&lt;br /&gt;"org.mortbay.jetty.servlet.ServletHandler.handle(String, HttpServletRequest, HttpServletResponse, int)","",""&lt;br /&gt;"org.mortbay.jetty.security.SecurityHandler.handle(String, HttpServletRequest, HttpServletResponse, int)","",""&lt;br /&gt;"org.mortbay.jetty.servlet.SessionHandler.handle(String, HttpServletRequest, HttpServletResponse, int)","",""&lt;br /&gt;"org.mortbay.jetty.handler.ContextHandler.handle(String, HttpServletRequest, HttpServletResponse, int)","",""&lt;br /&gt;"org.mortbay.jetty.webapp.WebAppContext.handle(String, HttpServletRequest, HttpServletResponse, int)","",""&lt;br /&gt;"org.mortbay.jetty.handler.ContextHandlerCollection.handle(String, HttpServletRequest, HttpServletResponse, int)","",""&lt;br /&gt;"org.mortbay.jetty.handler.HandlerCollection.handle(String, HttpServletRequest, HttpServletResponse, int)","",""&lt;br /&gt;"org.mortbay.jetty.handler.HandlerWrapper.handle(String, HttpServletRequest, HttpServletResponse, int)","",""&lt;br /&gt;"org.mortbay.jetty.Server.handle(HttpConnection)","",""&lt;br /&gt;"org.mortbay.jetty.HttpConnection.handleRequest()","",""&lt;br /&gt;"org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete()","",""&lt;br /&gt;"org.mortbay.jetty.HttpParser.parseNext()","",""&lt;br /&gt;"org.mortbay.jetty.HttpParser.parseAvailable()","",""&lt;br /&gt;"org.mortbay.jetty.HttpConnection.handle()","",""&lt;br /&gt;"org.mortbay.io.nio.SelectChannelEndPoint.run()","",""&lt;br /&gt;"org.mortbay.thread.BoundedThreadPool$PoolThread.run()","",""&lt;br /&gt;"org.geotools.index.quadtree.LazySearchIterator.next()","62","38254"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-8432168289380158751?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/8432168289380158751/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2011/12/profiling-geoserver-212-using-yourkit.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/8432168289380158751'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/8432168289380158751'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2011/12/profiling-geoserver-212-using-yourkit.html' title='Profiling geoserver 2.1.2 using YourKit Java Profiler 9'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-6w7M78CFO7k/TuoV8VjXbkI/AAAAAAAAADA/fb4bX1ZYB3I/s72-c/geoserver-ecw-2011-12-1600h38_39.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-3682418603256810539</id><published>2011-12-05T03:53:00.001-08:00</published><updated>2011-12-05T05:32:04.547-08:00</updated><title type='text'>Set Authorization header in Apache 2.2</title><content type='html'>RewriteCond %{REQUEST_METHOD} POST&lt;br /&gt;RewriteCond %{QUERY_STRING} ^tocwidget=true&amp;service=CSW&amp;version=2.0.2&amp;elementSetName=full&amp;outputSchema=EBRIM&amp;request=GetRecordById&amp;id=(.*)$&lt;br /&gt;&lt;br /&gt;RequestHeader set Authorization "Basic xxxxxxxxxxx"&lt;br /&gt;RewriteRule ^/erdas-apollo/catalog/csw(.*)$ /erdas-apollo/catalog/csw?%{QUERY_STRING} [R,L]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;To use environment variable:&lt;br /&gt;&lt;br /&gt; RewriteCond %{REQUEST_METHOD} POST&lt;br /&gt; &lt;br /&gt; RewriteCond %{QUERY_STRING} ^tocwidget=true&amp;service=CSW&amp;version=2.0.2&amp;elementSetName=full&amp;outputSchema=EBRIM&amp;request=GetRecordById&amp;id=(.*)$ &lt;br /&gt;  &lt;br /&gt; SetEnvIfNoCase Request_URI "/erdas-apollo/catalog/csw" havedon&lt;br /&gt; &lt;br /&gt; RequestHeader set Authorization "Basic xxxxxxxx" env=havedon&lt;br /&gt; &lt;br /&gt; RewriteRule ^/erdas-apollo/catalog/csw(.*)$ /erdas-apollo/catalog/csw?%{QUERY_STRING} [R,L]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-3682418603256810539?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/3682418603256810539/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2011/12/set-authorization-header-in-apache-22.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/3682418603256810539'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/3682418603256810539'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2011/12/set-authorization-header-in-apache-22.html' title='Set Authorization header in Apache 2.2'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-8374442102100407782</id><published>2011-11-24T20:49:00.000-08:00</published><updated>2011-11-24T20:51:26.513-08:00</updated><title type='text'>CakePHP 2.0.2 problem PHPUnit 3.6</title><content type='html'>Fix is in 2.0.3 https://github.com/cakephp/cakephp/commit/bfd95d0e04235396b5011b790042765da856d4ea#diff-2&lt;br /&gt;&lt;br /&gt;For now, all we need to do is to replace /lib/Cake/Test and /lib/Cake/TestSuite with the ones from CakePHP 2.0.3&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-8374442102100407782?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/8374442102100407782/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2011/11/cakephp-202-problem-phpunit-36.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/8374442102100407782'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/8374442102100407782'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2011/11/cakephp-202-problem-phpunit-36.html' title='CakePHP 2.0.2 problem PHPUnit 3.6'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-1159790622782318108</id><published>2011-09-21T00:33:00.001-07:00</published><updated>2011-09-21T00:36:02.467-07:00</updated><title type='text'>Adding Indonesian Locale to Java web-app</title><content type='html'>Due to this bug&lt;br /&gt;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6457127 &lt;br /&gt;&lt;br /&gt;you must have resources_in.properties&lt;br /&gt;(not resources_id.properties) for the translation to work.&lt;br /&gt;&lt;br /&gt;Indonesian code is in_ID and due to the bug above &lt;br /&gt;"The indonesian locale gets parsed from both the identifiers "id" and "in". ISO 639 specifies only "id" as correct. When you ask the locale  customer  for its representation, it returns "in", which is not correct."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-1159790622782318108?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/1159790622782318108/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2011/09/adding-indonesian-locale-to-java-web.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/1159790622782318108'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/1159790622782318108'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2011/09/adding-indonesian-locale-to-java-web.html' title='Adding Indonesian Locale to Java web-app'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-2773127645674288974</id><published>2011-09-07T02:01:00.000-07:00</published><updated>2011-09-07T02:07:20.775-07:00</updated><title type='text'>When will Java JIT start compiling into native code ?</title><content type='html'>With this following code, and&lt;br /&gt;&lt;br /&gt;java version "1.7.0"&lt;br /&gt;Java(TM) SE Runtime Environment (build 1.7.0-b147)&lt;br /&gt;Java HotSpot(TM) Client VM (build 21.0-b17, mixed mode, sharing)&lt;br /&gt;&lt;br /&gt;The main method will be compiled into native code when count is greater or equal to 170,000 (more or less, i didn't try to get a more accurate result)&lt;br /&gt;&lt;br /&gt;&gt;&gt; jdk1.7.0/bin/java -XX:+PrintCompilation -XX:+UnlockDiagnosticVMOptions -XX:+PrintAssembly t5&lt;br /&gt;&lt;br /&gt;public class t5 {&lt;br /&gt; &lt;br /&gt; public static void main(String[] args) {       &lt;br /&gt; &lt;br /&gt;  int count = 170000;&lt;br /&gt;  int sum = 3;&lt;br /&gt;  int A = 4;&lt;br /&gt;  int B = 5;&lt;br /&gt;  for(int i=0; i&lt;count; i++) {&lt;br /&gt;    sum += A + B;&lt;br /&gt;  }&lt;br /&gt; } &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Native code printed:&lt;br /&gt;&lt;br /&gt;Code:&lt;br /&gt;[Disassembling for mach='i386']&lt;br /&gt;[Entry Point]&lt;br /&gt;[Verified Entry Point]&lt;br /&gt;[Constants]&lt;br /&gt;  # {method} 'main' '([Ljava/lang/String;)V' in 't5'&lt;br /&gt;  0x02ccd480: mov    %eax,0xffffd000(%esp)&lt;br /&gt;  0x02ccd487: push   %ebp&lt;br /&gt;  0x02ccd488: sub    $0x28,%esp         ;*ldc  ; - t5::main@0 (line 6)&lt;br /&gt;  0x02ccd48b: mov    $0x0,%esi&lt;br /&gt;  0x02ccd490: mov    $0x5,%edi&lt;br /&gt;  0x02ccd495: mov    $0x4,%ebx&lt;br /&gt;  0x02ccd49a: mov    $0x3,%eax&lt;br /&gt;  0x02ccd49f: mov    $0x29810,%edx&lt;br /&gt;  0x02ccd4a4: jmp    0x02ccd4bb         ;*iload&lt;br /&gt;                                        ; - t5::main@13 (line 10)&lt;br /&gt;  0x02ccd4a9: xchg   %ax,%ax&lt;br /&gt;  0x02ccd4ac: mov    %ebx,%ecx&lt;br /&gt;  0x02ccd4ae: add    %edi,%ecx&lt;br /&gt;  0x02ccd4b0: add    %eax,%ecx&lt;br /&gt;  0x02ccd4b2: inc    %esi               ; OopMap{off=51}&lt;br /&gt;                                        ;*goto&lt;br /&gt;                                        ; - t5::main@29 (line 10)&lt;br /&gt;  0x02ccd4b3: test   %eax,0x1c0100      ;   {poll}&lt;br /&gt;  0x02ccd4b9: mov    %ecx,%eax          ;*goto&lt;br /&gt;                                        ; - t5::main@29 (line 10)&lt;br /&gt;  0x02ccd4bb: cmp    %edx,%esi&lt;br /&gt;  0x02ccd4bd: jl     0x02ccd4ac         ;*if_icmpge&lt;br /&gt;                                        ; - t5::main@16 (line 10)&lt;br /&gt;  0x02ccd4bf: add    $0x28,%esp&lt;br /&gt;  0x02ccd4c2: pop    %ebp&lt;br /&gt;  0x02ccd4c3: test   %eax,0x1c0100      ;   {poll_return}&lt;br /&gt;  0x02ccd4c9: ret                       ;*return&lt;br /&gt;                                        ; - t5::main@32 (line 16)&lt;br /&gt;  0x02ccd4ca: mov    %eax,0xffffd000(%esp)&lt;br /&gt;  0x02ccd4d1: push   %ebp&lt;br /&gt;  0x02ccd4d2: sub    $0x28,%esp&lt;br /&gt;  0x02ccd4d5: mov    0x10(%ecx),%esi&lt;br /&gt;  0x02ccd4d8: mov    0xc(%ecx),%edi&lt;br /&gt;  0x02ccd4db: mov    0x8(%ecx),%ebx&lt;br /&gt;  0x02ccd4de: mov    0x4(%ecx),%eax&lt;br /&gt;  0x02ccd4e1: mov    (%ecx),%edx&lt;br /&gt;  0x02ccd4e3: mov    %ecx,(%esp)&lt;br /&gt;  0x02ccd4e6: mov    %esi,0x20(%esp)&lt;br /&gt;  0x02ccd4ea: mov    %edi,0x1c(%esp)&lt;br /&gt;  0x02ccd4ee: mov    %ebx,0x18(%esp)&lt;br /&gt;  0x02ccd4f2: mov    %eax,0x14(%esp)&lt;br /&gt;  0x02ccd4f6: mov    %edx,0x10(%esp)&lt;br /&gt;  0x02ccd4fa: call   0x636aad50         ;   {runtime_call}&lt;br /&gt;  0x02ccd4ff: mov    0x10(%esp),%edx&lt;br /&gt;  0x02ccd503: mov    %edx,%esi&lt;br /&gt;  0x02ccd505: mov    0x14(%esp),%eax&lt;br /&gt;  0x02ccd509: mov    %eax,%edi&lt;br /&gt;  0x02ccd50b: mov    0x18(%esp),%ebx&lt;br /&gt;  0x02ccd50f: mov    0x1c(%esp),%eax&lt;br /&gt;  0x02ccd513: mov    0x20(%esp),%edx&lt;br /&gt;  0x02ccd517: jmp    0x02ccd4bb&lt;br /&gt;  0x02ccd519: nop&lt;br /&gt;  0x02ccd51a: nop&lt;br /&gt;  0x02ccd51b: mov    %fs:0x0,%esi&lt;br /&gt;  0x02ccd523: mov    0xfffffff4(%esi),%esi&lt;br /&gt;  0x02ccd526: mov    0x184(%esi),%eax&lt;br /&gt;  0x02ccd52c: movl   $0x0,0x184(%esi)&lt;br /&gt;  0x02ccd536: movl   $0x0,0x188(%esi)&lt;br /&gt;  0x02ccd540: add    $0x28,%esp&lt;br /&gt;  0x02ccd543: pop    %ebp&lt;br /&gt;  0x02ccd544: jmp    0x02c9ba40         ;   {runtime_call}&lt;br /&gt;  0x02ccd549: hlt&lt;br /&gt;  0x02ccd54a: hlt&lt;br /&gt;  0x02ccd54b: hlt&lt;br /&gt;  0x02ccd54c: hlt&lt;br /&gt;  0x02ccd54d: hlt&lt;br /&gt;  0x02ccd54e: hlt&lt;br /&gt;  0x02ccd54f: hlt&lt;br /&gt;[Exception Handler]&lt;br /&gt;[Stub Code]&lt;br /&gt;  0x02ccd550: call   0x02ccbb80         ;   {no_reloc}&lt;br /&gt;  0x02ccd555: push   $0x638dcd40        ;   {external_word}&lt;br /&gt;  0x02ccd55a: call   0x02ccd55f&lt;br /&gt;  0x02ccd55f: pusha&lt;br /&gt;  0x02ccd560: call   0x637cf5f0         ;   {runtime_call}&lt;br /&gt;  0x02ccd565: hlt&lt;br /&gt;[Deopt Handler Code]&lt;br /&gt;  0x02ccd566: push   $0x2ccd566         ;   {section_word}&lt;br /&gt;  0x02ccd56b: jmp    0x02c8c930         ;   {runtime_call}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-2773127645674288974?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/2773127645674288974/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2011/09/when-will-java-jit-start-compiling-into.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/2773127645674288974'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/2773127645674288974'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2011/09/when-will-java-jit-start-compiling-into.html' title='When will Java JIT start compiling into native code ?'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-4530070347582091071</id><published>2011-09-06T02:38:00.000-07:00</published><updated>2011-09-06T02:46:23.378-07:00</updated><title type='text'>JDK 7 Print JIT'ed code</title><content type='html'>&gt;&gt; jdk1.7.0/bin/java -XX:+PrintCompilation -XX:+UnlockDiagnosticVMOptions -XX:+PrintAssembly t4 100000&lt;br /&gt;&lt;br /&gt;Output:&lt;br /&gt;&lt;br /&gt;Java HotSpot(TM) Client VM warning: PrintAssembly is enabled; turning on DebugNonSafepoints to gain additional output&lt;br /&gt;     32    1             java.lang.String::hashCode (67 bytes)&lt;br /&gt;Loaded disassembler from hsdis-i386.dll&lt;br /&gt;&lt;br /&gt;...&lt;br /&gt;... String methods such as hashCode(), charAt() have been removed for clarity&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;Decoding compiled method 0x0290db08:&lt;br /&gt;Code:&lt;br /&gt;[Disassembling for mach='i386']&lt;br /&gt;[Entry Point]&lt;br /&gt;[Verified Entry Point]&lt;br /&gt;[Constants]&lt;br /&gt;  # {method} 'theSum' '(I)I' in 't4'&lt;br /&gt;  # parm0:    ecx       = int&lt;br /&gt;  #           [sp+0x20]  (sp of caller)&lt;br /&gt;  0x0290dc00: mov    %eax,0xffffd000(%esp)&lt;br /&gt;  0x0290dc07: push   %ebp&lt;br /&gt;  0x0290dc08: sub    $0x18,%esp         ;*bipush&lt;br /&gt;                                        ; - t4::theSum@0 (line 15)&lt;br /&gt;  0x0290dc0b: mov    $0x0,%eax&lt;br /&gt;  0x0290dc10: mov    $0x0,%esi&lt;br /&gt;  0x0290dc15: jmp    0x0290dc29         ;*iload&lt;br /&gt;                                        ; - t4::theSum@11 (line 18)&lt;br /&gt;  0x0290dc1a: xchg   %ax,%ax&lt;br /&gt;  0x0290dc1c: add    $0xbb,%esi&lt;br /&gt;  0x0290dc22: inc    %eax               ; OopMap{off=35}&lt;br /&gt;                                        ;*goto&lt;br /&gt;                                        ; - t4::theSum@26 (line 18)&lt;br /&gt;  0x0290dc23: test   %eax,0x1d0100      ;*goto&lt;br /&gt;                                        ; - t4::theSum@26 (line 18)&lt;br /&gt;                                        ;   {poll}&lt;br /&gt;  0x0290dc29: cmp    %ecx,%eax&lt;br /&gt;  0x0290dc2b: jl     0x0290dc1c         ;*if_icmpge&lt;br /&gt;                                        ; - t4::theSum@14 (line 18)&lt;br /&gt;  0x0290dc2d: mov    %esi,%eax&lt;br /&gt;  0x0290dc2f: add    $0x18,%esp&lt;br /&gt;  0x0290dc32: pop    %ebp&lt;br /&gt;  0x0290dc33: test   %eax,0x1d0100      ;   {poll_return}&lt;br /&gt;  0x0290dc39: ret&lt;br /&gt;  0x0290dc3a: nop&lt;br /&gt;  0x0290dc3b: nop&lt;br /&gt;  0x0290dc3c: mov    %fs:0x0,%esi&lt;br /&gt;  0x0290dc44: mov    0xfffffff4(%esi),%esi&lt;br /&gt;  0x0290dc47: mov    0x184(%esi),%eax&lt;br /&gt;  0x0290dc4d: movl   $0x0,0x184(%esi)&lt;br /&gt;  0x0290dc57: movl   $0x0,0x188(%esi)&lt;br /&gt;  0x0290dc61: add    $0x18,%esp&lt;br /&gt;  0x0290dc64: pop    %ebp&lt;br /&gt;  0x0290dc65: jmp    0x028dba40         ;   {runtime_call}&lt;br /&gt;  0x0290dc6a: hlt&lt;br /&gt;  0x0290dc6b: hlt&lt;br /&gt;  0x0290dc6c: hlt&lt;br /&gt;  0x0290dc6d: hlt&lt;br /&gt;  0x0290dc6e: hlt&lt;br /&gt;  0x0290dc6f: hlt&lt;br /&gt;[Exception Handler]&lt;br /&gt;[Stub Code]&lt;br /&gt;  0x0290dc70: call   0x0290bb80         ;   {no_reloc}&lt;br /&gt;  0x0290dc75: push   $0x5c3ccd40        ;   {external_word}&lt;br /&gt;  0x0290dc7a: call   0x0290dc7f&lt;br /&gt;  0x0290dc7f: pusha&lt;br /&gt;  0x0290dc80: call   0x5c2bf5f0         ;   {runtime_call}&lt;br /&gt;  0x0290dc85: hlt&lt;br /&gt;[Deopt Handler Code]&lt;br /&gt;  0x0290dc86: push   $0x290dc86         ;   {section_word}&lt;br /&gt;  0x0290dc8b: jmp    0x028cc930         ;   {runtime_call}&lt;br /&gt;   1377    2 %           t4::main @ 9 (26 bytes)&lt;br /&gt;Decoding compiled method 0x0290dd48:&lt;br /&gt;Code:&lt;br /&gt;[Disassembling for mach='i386']&lt;br /&gt;[Entry Point]&lt;br /&gt;[Verified Entry Point]&lt;br /&gt;[Constants]&lt;br /&gt;  # {method} 'main' '([Ljava/lang/String;)V' in 't4'&lt;br /&gt;  0x0290de50: mov    %eax,0xffffd000(%esp)&lt;br /&gt;  0x0290de57: push   %ebp&lt;br /&gt;  0x0290de58: sub    $0x28,%esp         ;*aload_0&lt;br /&gt;                                        ; - t4::main@0 (line 5)&lt;br /&gt;  0x0290de5b: cmpl   $0x0,0x8(%ecx)     ; implicit exception: dispatches to 0x02&lt;br /&gt;90dee9&lt;br /&gt;  0x0290de62: jbe    0x0290def3&lt;br /&gt;  0x0290de68: mov    0xc(%ecx),%ecx     ;*aaload&lt;br /&gt;                                        ; - t4::main@2 (line 5)&lt;br /&gt;  0x0290de6b: mov    $0xa,%edx          ;*invokestatic parseInt&lt;br /&gt;                                        ; - java.lang.Integer::parseInt@3 (line&lt;br /&gt;527)&lt;br /&gt;                                        ; - t4::main@3 (line 5)&lt;br /&gt;  0x0290de70: nop&lt;br /&gt;  0x0290de71: nop&lt;br /&gt;  0x0290de72: nop&lt;br /&gt;  0x0290de73: call   0x028cd5c0         ; OopMap{off=40}&lt;br /&gt;                                        ;*invokestatic parseInt&lt;br /&gt;                                        ; - java.lang.Integer::parseInt@3 (line&lt;br /&gt;527)&lt;br /&gt;                                        ; - t4::main@3 (line 5)&lt;br /&gt;                                        ;   {static_call}&lt;br /&gt;  0x0290de78: mov    $0x0,%esi&lt;br /&gt;  0x0290de7d: jmp    0x0290deac         ;*iload_2&lt;br /&gt;                                        ; - t4::main@9 (line 8)&lt;br /&gt;  0x0290de82: xchg   %ax,%ax&lt;br /&gt;  0x0290de84: mov    $0x0,%edi&lt;br /&gt;  0x0290de89: mov    $0x0,%ebx&lt;br /&gt;  0x0290de8e: jmp    0x0290dea1         ;*iload&lt;br /&gt;                                        ; - t4::theSum@11 (line 18)&lt;br /&gt;                                        ; - t4::main@15 (line 9)&lt;br /&gt;  0x0290de93: nop&lt;br /&gt;  0x0290de94: add    $0xbb,%ebx&lt;br /&gt;  0x0290de9a: inc    %edi               ; OopMap{off=75}&lt;br /&gt;                                        ;*goto&lt;br /&gt;                                        ; - t4::theSum@26 (line 18)&lt;br /&gt;                                        ; - t4::main@15 (line 9)&lt;br /&gt;  0x0290de9b: test   %eax,0x1d0100      ;*goto&lt;br /&gt;                                        ; - t4::theSum@26 (line 18)&lt;br /&gt;                                        ; - t4::main@15 (line 9)&lt;br /&gt;                                        ;   {poll}&lt;br /&gt;  0x0290dea1: cmp    %eax,%edi&lt;br /&gt;  0x0290dea3: jl     0x0290de94         ;*if_icmpge&lt;br /&gt;                                        ; - t4::theSum@14 (line 18)&lt;br /&gt;                                        ; - t4::main@15 (line 9)&lt;br /&gt;  0x0290dea5: inc    %esi               ; OopMap{off=86}&lt;br /&gt;                                        ;*goto&lt;br /&gt;                                        ; - t4::main@22 (line 8)&lt;br /&gt;  0x0290dea6: test   %eax,0x1d0100      ;*goto&lt;br /&gt;                                        ; - t4::main@22 (line 8)&lt;br /&gt;                                        ;   {poll}&lt;br /&gt;  0x0290deac: cmp    %eax,%esi&lt;br /&gt;  0x0290deae: jl     0x0290de84         ;*if_icmpge&lt;br /&gt;                                        ; - t4::main@11 (line 8)&lt;br /&gt;  0x0290deb0: add    $0x28,%esp&lt;br /&gt;  0x0290deb3: pop    %ebp&lt;br /&gt;  0x0290deb4: test   %eax,0x1d0100      ;   {poll_return}&lt;br /&gt;  0x0290deba: ret                       ;*return&lt;br /&gt;                                        ; - t4::main@25 (line 12)&lt;br /&gt;  0x0290debb: mov    %eax,0xffffd000(%esp)&lt;br /&gt;  0x0290dec2: push   %ebp&lt;br /&gt;  0x0290dec3: sub    $0x28,%esp&lt;br /&gt;  0x0290dec6: mov    0x4(%ecx),%esi&lt;br /&gt;  0x0290dec9: mov    (%ecx),%edi&lt;br /&gt;  0x0290decb: mov    %ecx,(%esp)&lt;br /&gt;  0x0290dece: mov    %esi,0x1c(%esp)&lt;br /&gt;  0x0290ded2: mov    %edi,0x18(%esp)&lt;br /&gt;  0x0290ded6: call   0x5c19ad50         ;   {runtime_call}&lt;br /&gt;  0x0290dedb: mov    0x18(%esp),%edi&lt;br /&gt;  0x0290dedf: mov    %edi,%esi&lt;br /&gt;  0x0290dee1: mov    0x1c(%esp),%edi&lt;br /&gt;  0x0290dee5: mov    %edi,%eax&lt;br /&gt;  0x0290dee7: jmp    0x0290deac&lt;br /&gt;  0x0290dee9: call   0x0290a850         ; OopMap{ecx=Oop off=158}&lt;br /&gt;                                        ;*aaload&lt;br /&gt;                                        ; - t4::main@2 (line 5)&lt;br /&gt;                                        ;   {runtime_call}&lt;br /&gt;  0x0290deee: call   0x0290a850         ; OopMap{ecx=Oop off=163}&lt;br /&gt;                                        ;*aaload&lt;br /&gt;                                        ; - t4::main@2 (line 5)&lt;br /&gt;                                        ;   {runtime_call}&lt;br /&gt;  0x0290def3: movl   $0x0,(%esp)&lt;br /&gt;  0x0290defa: call   0x0290a550         ; OopMap{ecx=Oop off=175}&lt;br /&gt;                                        ;*aaload&lt;br /&gt;                                        ; - t4::main@2 (line 5)&lt;br /&gt;                                        ;   {runtime_call}&lt;br /&gt;  0x0290deff: nop&lt;br /&gt;  0x0290df00: nop&lt;br /&gt;  0x0290df01: mov    %fs:0x0,%esi&lt;br /&gt;  0x0290df09: mov    0xfffffff4(%esi),%esi&lt;br /&gt;  0x0290df0c: mov    0x184(%esi),%eax&lt;br /&gt;  0x0290df12: movl   $0x0,0x184(%esi)&lt;br /&gt;  0x0290df1c: movl   $0x0,0x188(%esi)&lt;br /&gt;  0x0290df26: add    $0x28,%esp&lt;br /&gt;  0x0290df29: pop    %ebp&lt;br /&gt;  0x0290df2a: jmp    0x028dba40         ;   {runtime_call}&lt;br /&gt;  0x0290df2f: hlt&lt;br /&gt;[Stub Code]&lt;br /&gt;  0x0290df30: nop                       ;   {no_reloc}&lt;br /&gt;  0x0290df31: nop&lt;br /&gt;  0x0290df32: mov    $0x0,%ebx          ;   {static_stub}&lt;br /&gt;  0x0290df37: jmp    0x0290df37         ;   {runtime_call}&lt;br /&gt;[Exception Handler]&lt;br /&gt;  0x0290df3c: call   0x0290bb80         ;   {runtime_call}&lt;br /&gt;  0x0290df41: push   $0x5c3ccd40        ;   {external_word}&lt;br /&gt;  0x0290df46: call   0x0290df4b&lt;br /&gt;  0x0290df4b: pusha&lt;br /&gt;  0x0290df4c: call   0x5c2bf5f0         ;   {runtime_call}&lt;br /&gt;  0x0290df51: hlt&lt;br /&gt;[Deopt Handler Code]&lt;br /&gt;  0x0290df52: push   $0x290df52         ;   {section_word}&lt;br /&gt;  0x0290df57: jmp    0x028cc930         ;   {runtime_call}&lt;br /&gt;&lt;br /&gt;t4.java&lt;br /&gt;&lt;br /&gt;public class t4 {&lt;br /&gt; &lt;br /&gt; public static void main(String[] args) {       &lt;br /&gt; &lt;br /&gt;  int  count = Integer.parseInt(args[0]);&lt;br /&gt;  for(int i=0; i&lt;count; i++) {&lt;br /&gt;   theSum(count);&lt;br /&gt;  }&lt;br /&gt; }   &lt;br /&gt; &lt;br /&gt; public static int theSum(int count) {&lt;br /&gt;  int A = 88;&lt;br /&gt;  int B = 99;&lt;br /&gt;  int sum = 0;&lt;br /&gt;  for (int i =  0; i &lt; count; i++) &lt;br /&gt;   sum += A + B;&lt;br /&gt;  &lt;br /&gt;  return sum;&lt;br /&gt; }&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-4530070347582091071?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/4530070347582091071/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2011/09/jdk-7-print-jited-code.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/4530070347582091071'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/4530070347582091071'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2011/09/jdk-7-print-jited-code.html' title='JDK 7 Print JIT&apos;ed code'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-8735012180129361789</id><published>2011-07-20T20:47:00.000-07:00</published><updated>2011-07-27T02:48:35.944-07:00</updated><title type='text'>Geoserver : Implementing a RESTful Service</title><content type='html'>I was following this tutorial&lt;br /&gt;http://docs.geoserver.org/stable/en/developer/programming-guide/rest-ser...&lt;br /&gt;&lt;br /&gt;to add a rest service endpoint to geoserver 2.1.1 and hit a few snags:&lt;br /&gt;1. must modify restconfig applicationContext.xml&lt;br /&gt;and&lt;br /&gt;add the "hello" bean&lt;br /&gt;and&lt;br /&gt;routes mapping&lt;br /&gt;(by "modify" i mean re-build the module, and the web/app module)&lt;br /&gt;&lt;br /&gt;2. "txt" extension does not map to any MediaType, hence if we try&lt;br /&gt;http://localhost:8080/geoserver/rest/hello.txt&lt;br /&gt;we will get HTTP Error 500.&lt;br /&gt;&lt;br /&gt;3. therefore we use hello.json, so we have to add&lt;br /&gt;formats.add(new StringFormat( MediaType.APPLICATION_JSON ));&lt;br /&gt;into HelloResource.java&lt;br /&gt;&lt;br /&gt;4. we can go to&lt;br /&gt;http://localhost:8080/geoserver/rest/hello.json&lt;br /&gt;and now can successfully get the json file&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-8735012180129361789?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/8735012180129361789/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2011/07/geoserver-implementing-restful-service.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/8735012180129361789'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/8735012180129361789'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2011/07/geoserver-implementing-restful-service.html' title='Geoserver : Implementing a RESTful Service'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-6729519715708055649</id><published>2010-11-02T22:48:00.000-07:00</published><updated>2010-11-02T22:52:11.264-07:00</updated><title type='text'>Outlook 2007 and rss feed</title><content type='html'>Opening rss feed in Outlook from Firefox makes Outlook 2007 convert the url into lowercase, so if you have a camelCase http param, then it wouldn't work.&lt;br /&gt;&lt;br /&gt;Solution is to have all lowercase http get param as your feed url.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-6729519715708055649?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/6729519715708055649/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2010/11/outlook-2007-and-rss-feed.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/6729519715708055649'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/6729519715708055649'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2010/11/outlook-2007-and-rss-feed.html' title='Outlook 2007 and rss feed'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-9057325121270824650</id><published>2010-10-25T02:11:00.001-07:00</published><updated>2010-10-25T02:17:55.724-07:00</updated><title type='text'></title><content type='html'>Using Image as a submit button&lt;br /&gt;&lt;br /&gt;&lt;input style="width: 20px; vertical-align: bottom;" src="images/georss_icon.png" id="GeoRssLink" value="Geo-RSS" type="image"&gt;&lt;br /&gt;&lt;br /&gt;&lt;form id="downloadFormPOST"&lt;br /&gt;                name="downloadFormPOST"&lt;br /&gt;                method="post"               &lt;br /&gt;                action="http://theurl"&lt;br /&gt;                &gt;&lt;br /&gt;               &lt;br /&gt;     &lt;input type="hidden" id="xmlToDownload" name="xmlToDownload"&gt;&lt;br /&gt;&lt;/form&gt;&lt;br /&gt;&lt;br /&gt;function openElt() {&lt;br /&gt;&lt;br /&gt;                   var jsonRequest =&lt;br /&gt;                   {&lt;br /&gt;                       "template": {&lt;br /&gt;                           "id": [currentQueryParams.identifier],&lt;br /&gt;                           "class": "com.erdas.rsp.babel.model.CatalogItem"&lt;br /&gt;                       },&lt;br /&gt;                   "maxresults": -1,&lt;br /&gt;                   "profile": "eac-brief"&lt;br /&gt;                   };&lt;br /&gt;&lt;br /&gt;                   var AjaxObject = {&lt;br /&gt;&lt;br /&gt;                           handleSuccess:function(o) {&lt;br /&gt;                                   var xmlToDownload = o.responseText;&lt;br /&gt;                                   var downloadForm = window.document.forms['downloadFormPOST'];&lt;br /&gt;&lt;br /&gt;                                   var xmlInput = document.getElementById("xmlToDownload");&lt;br /&gt;                                   xmlInput.value = xmlToDownload;&lt;br /&gt;                                   downloadForm.submit();&lt;br /&gt;&lt;br /&gt;                           },&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;                           handleFailure:function(o) {&lt;br /&gt;                           },&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;                           startRequest:function() {&lt;br /&gt;&lt;br /&gt;                                   var jsonString = YAHOO.lang.JSON.stringify(jsonRequest);&lt;br /&gt;                                   YAHOO.util.Connect.initHeader('Accept', 'application/x-vnd.elt+xml; charset=utf-8', true);&lt;br /&gt;                                   YAHOO.util.Connect.asyncRequest('POST',&lt;br /&gt;                                                                   'http://&lt;%=request.getServerName()%&gt;:&lt;%=request.getServerPort()%&gt;/erdas-apollo/catalog/content/search',&lt;br /&gt;                                                                   callback,&lt;br /&gt;                                                                   jsonString&lt;br /&gt;                                                                   );&lt;br /&gt;                           }&lt;br /&gt;&lt;br /&gt;                   };&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;                   var callback = {&lt;br /&gt;                           success:AjaxObject.handleSuccess,&lt;br /&gt;                           failure:AjaxObject.handleFailure,&lt;br /&gt;                           scope: AjaxObject&lt;br /&gt;                   };&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;                   AjaxObject.startRequest();&lt;br /&gt;           }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;%&lt;br /&gt;     String xmlToDownload = request.getParameter("xmlToDownload");&lt;br /&gt;     if( xmlToDownload != null &amp;&amp; !"".equals(xmlToDownload) ) {&lt;br /&gt;&lt;br /&gt;            response.setContentType("application/x-vnd.elt+xml; charset=utf-8");&lt;br /&gt;            String outputExtension = "elt";&lt;br /&gt;            String nowStr = new SimpleDateFormat("yyyy_MM_dd-HH_mm_ss").format(new Date());&lt;br /&gt;            response.setHeader("Content-Disposition", "attachment; filename=results-" + nowStr + "." + outputExtension);&lt;br /&gt;            PrintWriter writer = response.getWriter();&lt;br /&gt;            writer.println(xmlToDownload);&lt;br /&gt;     }&lt;br /&gt;%&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-9057325121270824650?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/9057325121270824650/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2010/10/using-image-as-submit-button.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/9057325121270824650'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/9057325121270824650'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2010/10/using-image-as-submit-button.html' title=''/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-3479488990317838639</id><published>2010-10-14T20:41:00.000-07:00</published><updated>2010-10-18T04:47:16.078-07:00</updated><title type='text'>JBoss NTLM Auth + (Maybe Drupal NTLM Auth)</title><content type='html'>http://www.ioplex.com/jespa.html for NTLMv2 (http://jcifs.samba.org/ only support NTLMv1)&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;http://code.google.com/p/jespa-spring/ (for Spring-Framework NTLM), this is for spring-security-3.x&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I modified jespa-spring for spring-security-2.x in &lt;a href="http://github.com/lydonchandra/jespa-spring2"&gt;http://github.com/lydonchandra/jespa-spring2&lt;/a&gt; (just remember to create src/main/java directory and put the source files into it if I haven't done it)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;To find domain controller:&lt;/div&gt;&lt;div&gt;echo %LOGONSERVER%&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span class="271481904-15102010"&gt;Drupal NTLM  auth (this might be NTLMv1)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt; &lt;div&gt;&lt;span&gt;&lt;a href="http://drupal.org/node/44718"&gt;http://drupal.org/node/44718&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-3479488990317838639?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/3479488990317838639/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2010/10/jboss-ntlm-auth-maybe-drupal-ntlm-auth.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/3479488990317838639'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/3479488990317838639'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2010/10/jboss-ntlm-auth-maybe-drupal-ntlm-auth.html' title='JBoss NTLM Auth + (Maybe Drupal NTLM Auth)'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-3502863934051798153</id><published>2010-10-12T23:01:00.000-07:00</published><updated>2010-10-13T02:29:51.661-07:00</updated><title type='text'>Drupal + OpenLayer + Apollo</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_pqJ3xeWZuLc/TLVMXzhl4RI/AAAAAAAAAA4/4fhWUbzg_sc/s1600/openlayer-drupal.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px; height: 185px;" src="http://4.bp.blogspot.com/_pqJ3xeWZuLc/TLVMXzhl4RI/AAAAAAAAAA4/4fhWUbzg_sc/s320/openlayer-drupal.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5527408089518956818" /&gt;&lt;/a&gt;&lt;br /&gt;1. At Administer &gt; Site building &gt; Modules, enable the PHP filter module.&lt;br /&gt;&lt;br /&gt;2.  &amp;lt;script src="http://localhost:8080/apollo-client/OpenLayers.js"&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;?php&lt;br /&gt;drupal_add_js(&lt;br /&gt;'$(document).ready(function(){&lt;br /&gt;                  &lt;br /&gt;   var map = new OpenLayers.Map("myWorldMap");&lt;br /&gt;&lt;br /&gt;                     var wms = new OpenLayers.Layer.WMS(&lt;br /&gt;                             "OpenLayers WMS",&lt;br /&gt;                             "http://don_laptop:8080/erdas-apollo/vector/WORLDWIDE",&lt;br /&gt;                             {layers: "cntry98gen02"}&lt;br /&gt;                     );&lt;br /&gt;&lt;br /&gt;                     map.addLayers([wms]);&lt;br /&gt;                     map.zoomToMaxExtent();&lt;br /&gt;});',&lt;br /&gt;'inline'&lt;br /&gt;);&lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;div id="myWorldMap"  style="width: 600px; height: 300px"&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;3. Also I needed to avoid cross-domain error because I have AJAX request going from localhost:8082 (drupal) to localhost:8080 (erdas-apollo)&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;   ProxyRequests Off&lt;/div&gt;&lt;div&gt;   ProxyPass /apollo-json http://don_laptop:8080/erdas-apollo/catalog/content/search.json&lt;/div&gt;&lt;div&gt;   ProxyPassReverse /apollo-json http://don_laptop:8080/erdas-apollo/catalog/content/search.json&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-3502863934051798153?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/3502863934051798153/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2010/10/drupal-openlayer-apollo.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/3502863934051798153'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/3502863934051798153'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2010/10/drupal-openlayer-apollo.html' title='Drupal + OpenLayer + Apollo'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_pqJ3xeWZuLc/TLVMXzhl4RI/AAAAAAAAAA4/4fhWUbzg_sc/s72-c/openlayer-drupal.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-7554266718061346171</id><published>2010-10-10T20:17:00.000-07:00</published><updated>2010-10-10T20:20:06.241-07:00</updated><title type='text'>Flushing JAAS aut cache</title><content type='html'>To disable caching you need to set the DefaultCacheTimeout to 0:&lt;br /&gt;in jboss-service.xml, &lt;br /&gt; &amp;lt;attribute name="DefaultCacheTimeout"&amp;gt;0&amp;lt;/attribute&amp;gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-7554266718061346171?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/7554266718061346171/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2010/10/flushing-jaas-aut-cache.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/7554266718061346171'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/7554266718061346171'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2010/10/flushing-jaas-aut-cache.html' title='Flushing JAAS aut cache'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-5000005641781073368</id><published>2010-10-09T01:25:00.000-07:00</published><updated>2010-10-09T01:29:20.718-07:00</updated><title type='text'>LDAP JBoss authentication and authorization</title><content type='html'>&amp;lt;policy&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;application-policy name=&amp;quot;apollo&amp;quot;&amp;gt;&lt;br /&gt;       &amp;lt;authentication&amp;gt;&lt;br /&gt;            &amp;lt;login-module code=&amp;quot;org.jboss.security.auth.spi.LdapExtLoginModule&amp;quot;&lt;br /&gt;                          flag=&amp;quot;required&amp;quot;&amp;gt;&lt;br /&gt;                &amp;lt;module-option name=&amp;quot;debug&amp;quot;&amp;gt;true&amp;lt;/module-option&amp;gt;&lt;br /&gt;                &amp;lt;module-option name=&amp;quot;java.naming.provider.url&amp;quot;&amp;gt;ldap://localhost:389/&amp;lt;/module-option&amp;gt;&lt;br /&gt;    &amp;lt;module-option name=&amp;quot;java.naming.security.authentication&amp;quot;&amp;gt;simple&amp;lt;/module-option&amp;gt;&lt;br /&gt;                &amp;lt;module-option name=&amp;quot;bindDN&amp;quot;&amp;gt;CN=admin,CN=Users,CN=donLaptop,DC=don,DC=com&amp;lt;/module-option&amp;gt;&lt;br /&gt;                &amp;lt;module-option name=&amp;quot;bindCredential&amp;quot;&amp;gt;secretpassword&amp;lt;/module-option&amp;gt;&lt;br /&gt;                &amp;lt;module-option name=&amp;quot;baseCtxDN&amp;quot;&amp;gt;CN=Users,CN=donLaptop,DC=don,DC=com&amp;lt;/module-option&amp;gt;&lt;br /&gt;                &amp;lt;!-- &amp;lt;module-option name=&amp;quot;baseFilter&amp;quot;&amp;gt;(sAMAccountName={0})&amp;lt;/module-option&amp;gt; --&amp;gt;&lt;br /&gt;    &amp;lt;module-option name=&amp;quot;baseFilter&amp;quot;&amp;gt;(CN={0})&amp;lt;/module-option&amp;gt;&lt;br /&gt;                &amp;lt;module-option name=&amp;quot;rolesCtxDN&amp;quot;&amp;gt;CN=Users,CN=donLaptop,DC=don,DC=com&amp;lt;/module-option&amp;gt;&lt;br /&gt;                &amp;lt;module-option name=&amp;quot;roleFilter&amp;quot;&amp;gt;(member={1})&amp;lt;/module-option&amp;gt;&lt;br /&gt;                &amp;lt;!-- module-option name=&amp;quot;roleFilter&amp;quot;&amp;gt;(sAMAccountName={0})&amp;lt;/module-option --&amp;gt;&lt;br /&gt;                &amp;lt;module-option name=&amp;quot;roleAttributeID&amp;quot;&amp;gt;memberOf&amp;lt;/module-option&amp;gt;&lt;br /&gt;                &amp;lt;module-option name=&amp;quot;roleAttributeIsDN&amp;quot;&amp;gt;true&amp;lt;/module-option&amp;gt;&lt;br /&gt;                &amp;lt;module-option name=&amp;quot;roleNameAttributeID&amp;quot;&amp;gt;CN&amp;lt;/module-option&amp;gt;&lt;br /&gt;                &amp;lt;!-- if a default role is needed to be applied to all accounts, it can be achieved by uncommenting the below --&amp;gt;&lt;br /&gt;                &amp;lt;!-- module-option name=&amp;quot;defaultRole&amp;quot;&amp;gt;esp_consumer&amp;lt;/module-option --&amp;gt;&lt;br /&gt;                &amp;lt;module-option name=&amp;quot;roleRecursion&amp;quot;&amp;gt;2&amp;lt;/module-option&amp;gt;&lt;br /&gt;                &amp;lt;module-option name=&amp;quot;searchScope&amp;quot;&amp;gt;SUBTREE_SCOPE&amp;lt;/module-option&amp;gt;&lt;br /&gt;                &amp;lt;!-- An empty password is treated as an anonymous login by some ldap servers and this may not be a desirable feature.&lt;br /&gt;                                                Set this to false to reject empty passwords, true to have the ldap server validate the empty password. The default is true. --&amp;gt;&lt;br /&gt;                &amp;lt;module-option name=&amp;quot;allowEmptyPasswords&amp;quot;&amp;gt;false&amp;lt;/module-option&amp;gt;&lt;br /&gt;            &amp;lt;/login-module&amp;gt;&lt;br /&gt;&amp;lt;!--       &lt;br /&gt;          &amp;lt;login-module code=&amp;quot;org.jboss.security.auth.spi.UsersRolesLoginModule&amp;quot;&lt;br /&gt;             flag = &amp;quot;required&amp;quot;&amp;gt;&lt;br /&gt;             &amp;lt;module-option name=&amp;quot;usersProperties&amp;quot;&amp;gt;props/apollo-users.properties&amp;lt;/module-option&amp;gt;&lt;br /&gt;             &amp;lt;module-option name=&amp;quot;rolesProperties&amp;quot;&amp;gt;props/apollo-roles.properties&amp;lt;/module-option&amp;gt;&lt;br /&gt;          &amp;lt;/login-module&amp;gt;&lt;br /&gt;--&amp;gt;&lt;br /&gt;        &amp;lt;!-- Need to include ClientLoginModule to propagate caller&amp;#39;s subject and security context&lt;br /&gt;                        Add this line to your login-config.xml to include the ClientLoginModule propogation --&amp;gt;&lt;br /&gt;            &amp;lt;login-module code=&amp;quot;org.jboss.security.ClientLoginModule&amp;quot; flag=&amp;quot;required&amp;quot;&amp;gt;&lt;br /&gt;                &amp;lt;module-option name=&amp;quot;restore-login-identity&amp;quot;&amp;gt;true&amp;lt;/module-option&amp;gt;&lt;br /&gt;                &amp;lt;module-option name=&amp;quot;multi-threaded&amp;quot;&amp;gt;true&amp;lt;/module-option&amp;gt;&lt;br /&gt;            &amp;lt;/login-module&amp;gt;&lt;br /&gt;        &amp;lt;/authentication&amp;gt;&lt;br /&gt;    &amp;lt;/application-policy&amp;gt;&lt;br /&gt;&amp;lt;/policy&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#&lt;br /&gt;#############################################################################&lt;br /&gt;#&lt;br /&gt;# The nms-ldap.properties file is referenced by login-config.xml and is used&lt;br /&gt;# by the NmsLdapLoginModule. This file controls whether LDAP access to a&lt;br /&gt;# directory service is enabled for user passwords (and, optionally, user&lt;br /&gt;# roles), and what parameter values are used.&lt;br /&gt;#&lt;br /&gt;# Contact your directory service administrator to determine the correct&lt;br /&gt;# values to use in this file.&lt;br /&gt;#&lt;br /&gt;# This file is accessed before each attempt to sign in to the NNMi console,&lt;br /&gt;# so its contents may be modified without restarting ovjboss.&lt;br /&gt;#&lt;br /&gt;# Whole line comments are allowed when start with a "#", but "#" characters&lt;br /&gt;# at the end of a line are considered part of the value:&lt;br /&gt;# paramName=paramValue # This string is part of paramName&lt;br /&gt;#&lt;br /&gt;# Any error messages from incorrect configuration of this file are logged to&lt;br /&gt;# &lt;DATA_DIR&gt;/log/nnm/jbossServer.log.&lt;br /&gt;#&lt;br /&gt;# While testing changes to this file, be sure to use "File:Sign Out",&lt;br /&gt;# instead of just closing the browser, to ensure you are fully signed&lt;br /&gt;# out. Doing so prevents the browser from using cached credentials.&lt;br /&gt;#&lt;br /&gt;# For detailed information about configuring LDAP access to a directory&lt;br /&gt;# service, see the HP Network Node Manager i-series Software Deployment and&lt;br /&gt;# Migration Guide.&lt;br /&gt;#&lt;br /&gt;#############################################################################&lt;br /&gt;#&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#&lt;br /&gt;# java.naming.provider.url:&lt;br /&gt;#&lt;br /&gt;# The URL for accessing the directory service.&lt;br /&gt;#&lt;br /&gt;# This parameter must be set to enable LDAP access to a directory service.&lt;br /&gt;# If this parameter is not set in this file, LDAP queries are not&lt;br /&gt;# attempted during user sign in.&lt;br /&gt;#&lt;br /&gt;# The value is in the form "ldap://ldap.myco.com" or&lt;br /&gt;# "ldap://ldap.myco.com:636" (which is the same as&lt;br /&gt;# "ldaps://ldap.myco.com:636").&lt;br /&gt;#&lt;br /&gt;# If a port is specified in the URL, the specified port overrides the&lt;br /&gt;# default. If unspecified, port 389 is used for non-SSL connections, or&lt;br /&gt;# port 636 is used for SSL connections (as defined by&lt;br /&gt;# java.naming.security.protocol).&lt;br /&gt;#&lt;br /&gt;# To disable login attempts through LDAP, comment out this parameter.&lt;br /&gt;#&lt;br /&gt;# It is recommended that all User Accounts be deleted from NNMi after&lt;br /&gt;# enabling this feature, and that all Principals be deleted from NNMi after&lt;br /&gt;# disabling this feature. Doing so prevents accidental access through&lt;br /&gt;# previously configured values.&lt;br /&gt;#&lt;br /&gt;#java.naming.provider.url=ldap://ldap.myco.com:389/&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#&lt;br /&gt;# java.naming.security.protocol:&lt;br /&gt;#&lt;br /&gt;# If this parameter is set to "ssl", NNMi uses the Secure Sockets Layer&lt;br /&gt;# protocol for communications with the directory service.&lt;br /&gt;#&lt;br /&gt;# Enable SSL if you see an error in the jbossServer.log file that is&lt;br /&gt;# similar to:&lt;br /&gt;# javax.naming.AuthenticationNotSupportedException:&lt;br /&gt;# [LDAP: error code 13 - confidentiality required]&lt;br /&gt;#&lt;br /&gt;# To enable SSL, import your company's trust store certificate into the&lt;br /&gt;# &lt;DATA_DIR&gt;/shared/nnm/certificates/nnm.truststore, with a command such&lt;br /&gt;# as (for UNIX):&lt;br /&gt;#&lt;br /&gt;# /opt/OV/nonOV/jdk/nnm/bin/keytool -storepass ovpass -import \&lt;br /&gt;# -file my_certificate_authority_cert.txt -alias 'nnmi_ldap' \&lt;br /&gt;# -keystore /var/opt/OV/shared/nnm/certificates/nnm.truststore&lt;br /&gt;#&lt;br /&gt;# where my_certificate_authority_cert.txt is a file containing the&lt;br /&gt;# certificate required by the directory service for SSL communication.&lt;br /&gt;#&lt;br /&gt;#java.naming.security.protocol=ssl&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#&lt;br /&gt;# bindDN:&lt;br /&gt;# bindCredential:&lt;br /&gt;#&lt;br /&gt;# By default, the request to validate a username and password uses&lt;br /&gt;# anonymous login. However some directory services (such as&lt;br /&gt;# Active Directory Services) disallow anonymous access. Use this to&lt;br /&gt;# provide credentials to the directory service.&lt;br /&gt;# Note that as with any entry in this file, if you want to&lt;br /&gt;# specify a backslash ('\'), it must be escaped as '\\'&lt;br /&gt;#&lt;br /&gt;#bindDN=MyDomain\\Some User Name&lt;br /&gt;#bindCredential=someUserPassword&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#############################################################################&lt;br /&gt;#&lt;br /&gt;# The distinguished name that is passed to the directory service for&lt;br /&gt;# authenticating a user is the concatenation of the baseFilter value and the&lt;br /&gt;# baseCtxDN value.&lt;br /&gt;#&lt;br /&gt;# For example, if baseFilter is set to "uid={0}", baseCtxDN is set to&lt;br /&gt;# "ou=People,o=myco.com", and a user signs in to NNMi as "john.doe", then the&lt;br /&gt;# string passed to the directory service is:&lt;br /&gt;# uid=john.doe,ou=People,o=myco.com&lt;br /&gt;#&lt;br /&gt;#############################################################################&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#&lt;br /&gt;# baseCtxDN:&lt;br /&gt;#&lt;br /&gt;# Required. The user name search context, which is the fixed portion of the&lt;br /&gt;# distinguished name for the user search.&lt;br /&gt;#&lt;br /&gt;# For an Active Directory server, this might be a value like:&lt;br /&gt;# baseCtxDN=CN=Users,DC=mycompany,DC=com&lt;br /&gt;#&lt;br /&gt;baseCtxDN=ou=People,o=myco.com&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#&lt;br /&gt;# baseFilter:&lt;br /&gt;#&lt;br /&gt;# Required. The variable portion of the distinguished name for the user search.&lt;br /&gt;#&lt;br /&gt;# The baseFilter incorporates the user name entered for NNMi signin into the&lt;br /&gt;# format needed for the distinguished name.&lt;br /&gt;#&lt;br /&gt;# The exact user name entered at the NNMi signin dialog is substituted for&lt;br /&gt;# the expression "{0}" anywhere that it appears in the filter.&lt;br /&gt;#&lt;br /&gt;# A common value for baseFilter for OpenLDAP servers is:&lt;br /&gt;# baseFilter=uid={0}&lt;br /&gt;# A common value for baseFilter for Active Directory servers is:&lt;br /&gt;# baseFilter=CN={0}&lt;br /&gt;# or to use the Window NT 4.0 SAM-Account-Name:&lt;br /&gt;# baseFilter=sAMAccountName={0}&lt;br /&gt;#&lt;br /&gt;baseFilter=uid={0}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#############################################################################&lt;br /&gt;#&lt;br /&gt;# You can verify the correctness of the above information in an LDAP client&lt;br /&gt;# application, such as Microsoft Internet Explorer 7 or Mozilla Firefox 2.&lt;br /&gt;#&lt;br /&gt;# Enter an RFC 1959-compliant directory service URL with the above&lt;br /&gt;# information, substituting a valid signin id. For instance, using the above&lt;br /&gt;# values, and a signin of john.doe, you could test with a URL similar to:&lt;br /&gt;# ldap://ldap.myco.com:389/uid=john.doe,ou=People,o=myco.com&lt;br /&gt;# which is formed by concatenating the java.naming.provider.url, the&lt;br /&gt;# baseFilter substituted with the signin name, a comma, and the baseCtxDN.&lt;br /&gt;#&lt;br /&gt;# If this URL times out, you probably have an incorrect directory service URL&lt;br /&gt;# or port number.&lt;br /&gt;#&lt;br /&gt;# If you are using Active Directory (which does not allow anonymous binding),&lt;br /&gt;# you can use an LDAP browsing program to verify your values are correct.&lt;br /&gt;#&lt;br /&gt;#############################################################################&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#&lt;br /&gt;# defaultRole:&lt;br /&gt;#&lt;br /&gt;# Optional. Use this parameter to specify a default role that applies to any&lt;br /&gt;# directory service user who signs in to NNMi through LDAP. The value of this&lt;br /&gt;# parameter applies regardless of where role mappings are stored (in the NNMi&lt;br /&gt;# database or in the directory service). If a user is also a member of a group&lt;br /&gt;# with an NNMi role attribute, NNMi uses the role with more privileges.&lt;br /&gt;#&lt;br /&gt;# Valid values are the NNMi roles: admin, level2, level1, guest, or client.&lt;br /&gt;#&lt;br /&gt;# If commented out, no default role is used, and the role mapping must&lt;br /&gt;# be defined else the user will not be able to sign in to the NNMi console.&lt;br /&gt;#&lt;br /&gt;#defaultRole=guest&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#############################################################################&lt;br /&gt;#&lt;br /&gt;# The remainder of the parameters in this file apply to customers who assign&lt;br /&gt;# NNMi roles in the directory service.&lt;br /&gt;#&lt;br /&gt;# If you maintain NNMi role mapping in the NNMi database, stop here.&lt;br /&gt;#&lt;br /&gt;#############################################################################&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#############################################################################&lt;br /&gt;#&lt;br /&gt;# After a user has been authenticated, NNMi queries the groups to which that&lt;br /&gt;# user belongs to determine the NNMi roles that the user will have in NNMi.&lt;br /&gt;# (When a user is assigned multiple roles, NNMi uses the role with more&lt;br /&gt;# privileges.)&lt;br /&gt;#&lt;br /&gt;# The distinguished name that is passed to the directory service for&lt;br /&gt;# identifying the groups to which a user belongs is the concatenation of the&lt;br /&gt;# roleFilter value and the rolesCtxDN value.&lt;br /&gt;#&lt;br /&gt;# For example, if roleFilter is set to "member={1}", rolesCtxDN is set to&lt;br /&gt;# "ou=Groups,o=myco.com", and the authenticated user distinguished name is&lt;br /&gt;# "john.doe@myco.com", then the string passed to the directory service is:&lt;br /&gt;# member=john.doe@myco.com,ou=Groups,o=myco.com&lt;br /&gt;#&lt;br /&gt;# All group distinguished names which have an attribute (uidAttributeID)&lt;br /&gt;# that match the authenticated user will be used to assign the roles for&lt;br /&gt;# the user. Any matching groups will use an attribute (roleAttributeID)&lt;br /&gt;# to determine the role for the user.&lt;br /&gt;#&lt;br /&gt;#############################################################################&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#&lt;br /&gt;# rolesCtxDN:&lt;br /&gt;#&lt;br /&gt;# The group name search context, which is the fixed portion of the&lt;br /&gt;# distinguished name for the user group search.&lt;br /&gt;#&lt;br /&gt;# This parameter must be set to enable directory service queries for NNMi&lt;br /&gt;# role assignments through LDAP. If this parameter is not set in this file,&lt;br /&gt;# LDAP queries for user roles are not attempted during user sign in.&lt;br /&gt;#&lt;br /&gt;# To disable directory service queries for NNMi role assignments through LDAP,&lt;br /&gt;# comment out this parameter. The remaining values in this file will not be&lt;br /&gt;# used.&lt;br /&gt;#&lt;br /&gt;# For a faster search, you can identify one or more directory service groups&lt;br /&gt;# that contain NNMi roles. If the group names form a pattern, you can specify&lt;br /&gt;# a wildcard. For example, if the directory service includes groups named&lt;br /&gt;# "USERS-NNMi-administrators", "USERS-NNMi-level1Operators", and so forth,&lt;br /&gt;# you could use a search context similar to:&lt;br /&gt;# rolesCtxDN=cn=USERS-NNMi-*,ou=Groups,o=myco.com&lt;br /&gt;# For an Active Directory server, this might be a value like:&lt;br /&gt;# rolesCtxDN=CN=Users,DC=myco,DC=com&lt;br /&gt;# which might be the same as baseCtxDN because Active Directory configurations&lt;br /&gt;# sometime stores Groups and Users at the same level.&lt;br /&gt;#&lt;br /&gt;#rolesCtxDN=ou=Groups,o=myco.com&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#&lt;br /&gt;# roleFilter:&lt;br /&gt;#&lt;br /&gt;# The variable portion of the distinguished name for the user group search.&lt;br /&gt;#&lt;br /&gt;# The user name entered for signin is substituted for the expression {0}&lt;br /&gt;# anywhere that it appears in the filter.&lt;br /&gt;#&lt;br /&gt;# The distinguished name of the authenticated user is substituted for the&lt;br /&gt;# expression {1} anywhere that it appears in the filter.&lt;br /&gt;#&lt;br /&gt;# An example role filter that matches on the (short) user name entered for&lt;br /&gt;# signin is: member={0}&lt;br /&gt;#&lt;br /&gt;# An example role filter that matches on the authenticated (full) user&lt;br /&gt;# distinguished name is: member={1}&lt;br /&gt;#&lt;br /&gt;roleFilter=member={1}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#############################################################################&lt;br /&gt;#&lt;br /&gt;# You can verify the correctness of the group query by passing a URL&lt;br /&gt;# similar to the following, and entering it into a web browser, unless&lt;br /&gt;# your directory server does not allow anonymous authentication (as&lt;br /&gt;# is the default case for Active Directory). An example is:&lt;br /&gt;# ldap://ldap.myco.com:389/ou=Groups,o=myco.com??sub?(cn=SOME-PATTERN-*)&lt;br /&gt;# which is formed by concatenating the java.naming.provider.url, the&lt;br /&gt;# baseCtxDN, and an optional search context limiter.&lt;br /&gt;#&lt;br /&gt;# If you are using Active Directory, you can use an LDAP browsing program&lt;br /&gt;# to verify your values are correct.&lt;br /&gt;#&lt;br /&gt;#############################################################################&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#&lt;br /&gt;# roleAttributeIsDN:&lt;br /&gt;# roleAttributeID:&lt;br /&gt;# roleNameAttributeID:&lt;br /&gt;#&lt;br /&gt;# roleAttributeIsDN is a flag indicating whether the user's role attribute&lt;br /&gt;# contains the fully distinguished name of a role object, or the users's role&lt;br /&gt;# attribute contains the role name.&lt;br /&gt;# In certain directory schemas (for example, Microsoft Active Directory),&lt;br /&gt;# role (group) attributes in the user object are stored as distinguished names&lt;br /&gt;# to role objects instead of as simple names, in which case, this property&lt;br /&gt;# should be set to roleAttributeIsDN=true&lt;br /&gt;# In non-Active Directory cases, false is the correct value&lt;br /&gt;# of roleAttributeIsDN.&lt;br /&gt;#&lt;br /&gt;#&lt;br /&gt;# If roleAttributeIsDN=false, the role name is taken directly from the&lt;br /&gt;# value of the user's role attribute (roleAttributeID).&lt;br /&gt;# For non-Active Directory servers, it is recommended that a group be created&lt;br /&gt;# with an additional attribute called "roleName" that contains a value of&lt;br /&gt;# admin (for Administrator role), level2 (for Level 2 Operator role),&lt;br /&gt;# level1 (for Level 1 Operator role), guest (for Guest role), or&lt;br /&gt;# client (if required when using the NNMi SDK and integrations). In such&lt;br /&gt;# a case, you would use&lt;br /&gt;# roleAttributeID=roleName&lt;br /&gt;# This attribute is the name of the attribute in the group, which is&lt;br /&gt;# set to a different value for each NNMi role-defining group.&lt;br /&gt;#&lt;br /&gt;#&lt;br /&gt;# If roleAttributeIsDN=true, the following definitions apply.&lt;br /&gt;# roleAttributeID is the name of the attribute in the group that stores the NNMi role value that&lt;br /&gt;# applies to the members of the directory server group. For Active Directory,&lt;br /&gt;# this is usually:&lt;br /&gt;# roleAttributeID=memberOf&lt;br /&gt;# The role attribute (roleNameAttributeID) represents&lt;br /&gt;# the distinguished name of a role object, and the role name is taken from the&lt;br /&gt;# value of the "roleAttributeID" attribute of the corresponding group&lt;br /&gt;# specified by roleNameAttributeID.&lt;br /&gt;# This is also useful if you are unable to change the schema to add an attribute&lt;br /&gt;# (such as roleName), and just want the name of the group to be the role. In&lt;br /&gt;# that case, you could use roleNameAttributeID=name or&lt;br /&gt;# roleNameAttributeID=CN to actually use the name of the group as the nnmi&lt;br /&gt;# role. This implies that you created groups specifically called admin, level2,&lt;br /&gt;# level1, guest or client.&lt;br /&gt;#&lt;br /&gt;# In some Active Directory implementations you cannot create a new attribute&lt;br /&gt;# to store the NNMi role. Active Directory groups have an "info" attribute&lt;br /&gt;# you can change (often named "Notes" in the Active Directory&lt;br /&gt;# configuration). In this case you would set the "info" attribute&lt;br /&gt;# in your Level 2 Group in Active Directory to "level2", and use&lt;br /&gt;# roleNameAttributeID=info&lt;br /&gt;#&lt;br /&gt;roleAttributeIsDN=false&lt;br /&gt;roleAttributeID=nnmiRole&lt;br /&gt;#&lt;br /&gt;# Active Directory instead uses roleAttributeIsDN=true&lt;br /&gt;# In this case, the actual attribute to get the role is two hops&lt;br /&gt;# away, using roleAttributeID to find the DN which actually contains&lt;br /&gt;# the attribute.&lt;br /&gt;#&lt;br /&gt;#roleAttributeIsDN=true&lt;br /&gt;#roleAttributeID=memberOf&lt;br /&gt;#roleNameAttributeID=info&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#############################################################################&lt;br /&gt;#&lt;br /&gt;# The following two attributes are used to enable Incident Assignment&lt;br /&gt;#&lt;br /&gt;#############################################################################&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#&lt;br /&gt;# userRoleFilterList:&lt;br /&gt;#&lt;br /&gt;# A semicolon-separated list of NNMi roles whose associated users can be&lt;br /&gt;# assigned incidents in the NNMi console. The roles in this list apply only&lt;br /&gt;# to directory service user names authenticated through LDAP.&lt;br /&gt;# If this value is incorrect, sign in will find the correct user Role,&lt;br /&gt;# but selecting an Incident and picking Actions -&gt; Assign Incident... will&lt;br /&gt;# bring up a dialog with no users.&lt;br /&gt;#&lt;br /&gt;# Valid values are the NNMi roles: admin, level2, level1, guest, or client.&lt;br /&gt;#&lt;br /&gt;userRoleFilterList=admin;level2;level1&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#&lt;br /&gt;# uidAttributeID:&lt;br /&gt;#&lt;br /&gt;# The name of the attribute in the group that stores the directory service user ID.&lt;br /&gt;# The value of this attribute is used to locate the user's role. It is&lt;br /&gt;# usually the attribute portion of roleFilter. This attribute is used for&lt;br /&gt;# looking up the list of users for Incident assignment.&lt;br /&gt;# If this value is incorrect, sign in will find the correct user Role,&lt;br /&gt;# but selecting an Incident and picking Actions -&gt; Assign Incident... will&lt;br /&gt;# bring up a dialog with no users.&lt;br /&gt;#&lt;br /&gt;uidAttributeID=member&lt;br /&gt;&lt;br /&gt;#############################################################################&lt;br /&gt;#&lt;br /&gt;# The following only needs to be modified if you are finding timeouts&lt;br /&gt;# when accessing a distant directory server.&lt;br /&gt;#&lt;br /&gt;#############################################################################&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#&lt;br /&gt;# searchTimeLimit&lt;br /&gt;#&lt;br /&gt;# If you have a slow responding directory service, you may get errors like:&lt;br /&gt;# javax.naming.TimeLimitExceededException: [LDAP: error code 3 - Timelimit Exceeded]&lt;br /&gt;# in this case, you can increase the searchTimeLimit. This value is&lt;br /&gt;# in milliseconds. The default value is 10000 (10 seconds)&lt;br /&gt;#&lt;br /&gt;#searchTimeLimit=10000&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-5000005641781073368?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/5000005641781073368/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2010/10/ldap-jboss-authentication-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/5000005641781073368'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/5000005641781073368'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2010/10/ldap-jboss-authentication-and.html' title='LDAP JBoss authentication and authorization'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-6894814531995759516</id><published>2010-09-21T19:40:00.000-07:00</published><updated>2010-09-21T19:48:21.270-07:00</updated><title type='text'>Abusing? javascript functional powers</title><content type='html'>Javascript being a functional language makes it very easy to pass functions around as param to other function.&lt;br /&gt;&lt;br /&gt;However when we do that we might lose readability of the code&lt;br /&gt;&lt;br /&gt;Consider this:&lt;br /&gt;&lt;br /&gt;mapcar1 is just another function, same as dojo.forEach in functionality.&lt;br /&gt;&lt;br /&gt;The code in bold has lots of redirection and very hard to debug as it calls the callback if something is successful etc.&lt;br /&gt;&lt;br /&gt;withTransforms : function (transforms, callback, errorCallback, config) {&lt;br /&gt;&lt;br /&gt;                if (reqNeeded) {&lt;br /&gt;&lt;br /&gt;                        var trs = mapcar1 (&lt;br /&gt;                                function (t) {&lt;br /&gt;&lt;br /&gt;                                        return {&lt;br /&gt;                                                "toSrs"     : t.to&lt;br /&gt;                                        };&lt;br /&gt;                                },&lt;br /&gt;                                transforms);&lt;br /&gt;&lt;br /&gt;                        var callbacks =&lt;br /&gt;                                {&lt;br /&gt;                                        success   : callback,&lt;br /&gt;                                        failure   :this.cbWithTransformsFailed,&lt;br /&gt;                                        b4Success : this.cbB4SuccessWithTransforms,&lt;br /&gt;                                        scope     : this&lt;br /&gt;                                };&lt;br /&gt;&lt;br /&gt;                     &lt;span style="font-weight: bold;"&gt;   this.ajaxTool.post (&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;                                getWebappBaseUrl () + "/transformGeometry.do",&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;                                {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;                                        "transformRequests" : trs&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;                                },&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;                                callbacks,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;                                config);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                } else {&lt;br /&gt;&lt;br /&gt;                       &lt;span style="font-weight: bold;"&gt; callback (&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;                                mapcar1 (&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;                                        function (t) {&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;                                                return t.geometry;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;                                        },&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;                                        transforms));&lt;/span&gt;&lt;br /&gt;                }&lt;br /&gt;        },&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-6894814531995759516?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/6894814531995759516/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2010/09/abusing-javascript-functional-powers.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/6894814531995759516'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/6894814531995759516'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2010/09/abusing-javascript-functional-powers.html' title='Abusing? javascript functional powers'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-2753751699698971443</id><published>2010-09-19T09:43:00.000-07:00</published><updated>2010-09-19T09:45:55.406-07:00</updated><title type='text'>Java Hidden Iterator causing ConcurrentModificationException</title><content type='html'>The " System.out.println("DEBUG: added ten elements to " + set);" effectively compiles into a HiddenIterator that iterates the "set", and this is not thread-safe.&lt;br /&gt;&lt;br /&gt;Work around is to wrap "set" into a &lt;span style="font-weight: bold;"&gt;synchronizedSet&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;public class HiddenIterator {&lt;br /&gt;    @GuardedBy("this")&lt;br /&gt;    private final Set&lt;integer&gt; set = new HashSet&lt;integer&gt;();&lt;br /&gt;&lt;br /&gt;    public synchronized void add(Integer i) { set.add(i); }&lt;br /&gt;    public synchronized void remove(Integer i) { set.remove(i); }&lt;br /&gt;&lt;br /&gt;    public void addTenThings() {&lt;br /&gt;        Random r = new Random();&lt;br /&gt;        for (int i = 0; i &lt; 10; i++)&lt;br /&gt;            add(r.nextInt());&lt;br /&gt;        System.out.println("DEBUG: added ten elements to " + set);&lt;br /&gt;   }&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-2753751699698971443?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/2753751699698971443/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2010/09/java-hidden-iterator-causing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/2753751699698971443'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/2753751699698971443'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2010/09/java-hidden-iterator-causing.html' title='Java Hidden Iterator causing ConcurrentModificationException'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-5293721843426646096</id><published>2010-09-15T00:31:00.000-07:00</published><updated>2010-09-15T00:42:08.923-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Weblogic maven2 war'/><title type='text'>Weblogic + maven2 + war</title><content type='html'>1. Add the following to your pom.xml, making sure you have the correct path to weblogic&lt;br /&gt;[...]&lt;br /&gt;&amp;lt;plugin&amp;gt;&lt;br /&gt;&amp;lt;groupId&amp;gt;org.codehaus.cargo&amp;lt;/groupId&amp;gt;&lt;br /&gt;&amp;lt;artifactId&amp;gt;cargo-maven2-plugin&amp;lt;/artifactId&amp;gt;&lt;br /&gt;&amp;lt;configuration&amp;gt;                   &lt;br /&gt;  &amp;lt;container&amp;gt;&lt;br /&gt;  &amp;lt;containerId&amp;gt;weblogic103x&amp;lt;/containerId&amp;gt;&lt;br /&gt;    &amp;lt;home&amp;gt;&lt;span style="font-weight: bold;"&gt;C:OracleMiddlewarewlserver_10.3&lt;/span&gt;&amp;lt;/home&amp;gt;&lt;br /&gt;  &amp;lt;/container&amp;gt;&lt;br /&gt;&amp;lt;/configuration&amp;gt;&lt;br /&gt;&amp;lt;/plugin&amp;gt;&lt;br /&gt;[...]&lt;br /&gt;&lt;br /&gt;2. &lt;span style="font-weight: bold;"&gt; mvn cargo:start&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-5293721843426646096?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/5293721843426646096/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2010/09/weblogic-maven2-war.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/5293721843426646096'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/5293721843426646096'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2010/09/weblogic-maven2-war.html' title='Weblogic + maven2 + war'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-5417092185212724311</id><published>2010-07-13T20:45:00.000-07:00</published><updated>2010-07-13T20:49:38.390-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='erdas-apollo-catalog queryables'/><title type='text'>Erdas apollo catalog searching new properties</title><content type='html'>As described in the Apollo Advantage guide&lt;br /&gt;&lt;br /&gt;modify the queryables.xml&lt;br /&gt;&lt;br /&gt;and then&lt;br /&gt;&lt;br /&gt;modify the babel-types-infos.js&lt;br /&gt;&lt;br /&gt;{&lt;br /&gt;  "name"  : "properties.newlyAddedProperty",&lt;br /&gt;  "title" : "my newly added property",                                      &lt;br /&gt;  "type"      : "string",&lt;br /&gt;  "autoLike"  : true&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So the json query posted to the backend will be&lt;br /&gt;&lt;br /&gt;{&lt;br /&gt;    "maxresults": 15,&lt;br /&gt;    "start": 0,&lt;br /&gt;    "profile": "eac-brief",&lt;br /&gt;    "orderby": ["class asc", "registrationDate desc"],&lt;br /&gt;    "maxresultcount": 501,&lt;br /&gt;    "template": {&lt;br /&gt;        "wmsEnabled": {&lt;br /&gt;            "_op": "eq",&lt;br /&gt;            "value": true,&lt;br /&gt;            "type": "boolean"&lt;br /&gt;        },&lt;br /&gt;        "properties": {&lt;br /&gt;            "anzlic": {&lt;br /&gt;                "value": "messi*",&lt;br /&gt;                "_op": "like",&lt;br /&gt;                "type": "string"&lt;br /&gt;            }&lt;br /&gt;        },&lt;br /&gt;        "class": "com.erdas.rsp.babel.model.imagery.ImageReference",&lt;br /&gt;        "nameQualifier": "babel://coverages"&lt;br /&gt;    }&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-5417092185212724311?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/5417092185212724311/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2010/07/erdas-apollo-catalog-searching-new.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/5417092185212724311'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/5417092185212724311'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2010/07/erdas-apollo-catalog-searching-new.html' title='Erdas apollo catalog searching new properties'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-3217647182948618234</id><published>2010-06-30T20:59:00.000-07:00</published><updated>2010-06-30T21:20:35.923-07:00</updated><title type='text'>SqlJdbcDriver 3.0 + ERDAS APOLLO 2010.1 + SQL Server 2008</title><content type='html'>By default, ERDAS Apollo 2010.1 uses SqlJdbcDriver 2.0, where the jar files are:&lt;br /&gt;1 .../jboss/server/default/lib/jdbc-driver-2.0.jar and sqljdbc.jar&lt;br /&gt;2 .../erdas-apollo.ear/lib/jdbc-driver-2.0.jar&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Hence if the new sqljdbc_xa.dll is installed in the SQLServer Binn directory, it should be backward compatible with the jdbc-driver-2.0.jar&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The .../erdas-apollo.ear/lib/jdbc-driver-2.0.jar is required for the DataManager application to function.&lt;br /&gt;&lt;br /&gt;To upgrade Apollo2010.1 to use SqlJdbcDriver3.0, some manual copy and paste have to be done.&lt;br /&gt;1. Download the SqlJdbcDriver 2.0 from microsoft website &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=%20a737000d-68d0-4531-b65d-da0f2a735707&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=%20a737000d-68d0-4531-b65d-da0f2a735707&amp;amp;displaylang=en&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2. Shutdown jboss.&lt;br /&gt;&lt;br /&gt;3. Extract the files and copy sqljdbc.jar into&lt;br /&gt;    - .../jboss/server/default/lib/ (overwrite the existing one, if any)&lt;br /&gt;    - and .../erdas-apollo.ear/lib/&lt;br /&gt;&lt;br /&gt;4. Delete the existing&lt;br /&gt;    - .../jboss/server/default/lib/jdbc-driver-2.0.jar and&lt;br /&gt;    - &lt;span style="font-weight: bold;"&gt; &lt;/span&gt;.../erdas-apollo.ear/lib/jdbc-driver-2.0.jar&lt;br /&gt;&lt;br /&gt;5. Start Jboss.&lt;br /&gt;&lt;br /&gt;6. Verify users can login from Datamanager and erdas-apollo can connect to the database by looking at the jboss server.log&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-3217647182948618234?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/3217647182948618234/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2010/06/sqljdbcdriver-30-erdas-apollo-20101-sql.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/3217647182948618234'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/3217647182948618234'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2010/06/sqljdbcdriver-30-erdas-apollo-20101-sql.html' title='SqlJdbcDriver 3.0 + ERDAS APOLLO 2010.1 + SQL Server 2008'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-909762203775730254</id><published>2010-06-29T01:50:00.000-07:00</published><updated>2010-06-29T02:10:14.053-07:00</updated><title type='text'>ERDAS Apollo 2010 + SQL Server 2008 Express</title><content type='html'>- Download SQL Server 2008 Express from &lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=58ce885d-508b-45c8-9fd3-118edd8e6fff"&gt;http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=58ce885d-508b-45c8-9fd3-118edd8e6fff&lt;/a&gt; and then install it.&lt;br /&gt;&lt;br /&gt;- Enable tcp/ip port (I use port 1433) in "SQL Server Configuration  Manager" -&gt; "SQL Server Network Configuration" -&gt; Protocols for  SQLEXPRESS =&gt; TCP/IP : {enabled, Right-Click/Properties: TCP Port:  1433}.&lt;br /&gt;Test with: "telnet localhost 1433"  or change localhost to server's ip  address&lt;br /&gt;&lt;br /&gt;- Create database for apollo&lt;br /&gt;&lt;br /&gt;create database apollo on&lt;br /&gt;(name = apollo_dat, FILENAME = 'E:\work\apollo.mdf', size = 200MB, FILEGROW&lt;br /&gt;TH=5)&lt;br /&gt;LOG ON (name='apollo_log', FILENAME = 'E:\work\apollo_log.ldf', size=200MB, FILEGROWTH=5)&lt;br /&gt;GO&lt;br /&gt;&lt;br /&gt;- Supply the params to APOLLO installer.&lt;br /&gt;&lt;br /&gt;- If you get&lt;br /&gt;&lt;h3 class="post-title entry-title"&gt;&lt;a href="http://lydonchandra.blogspot.com/2010/06/javaxtransactionxaxaexception.html"&gt;javax.transaction.xa.XAException,&lt;/a&gt; refer to my previous post:&lt;br /&gt;&lt;/h3&gt;http://lydonchandra.blogspot.com/2010/06/javaxtransactionxaxaexception.html&lt;br /&gt;&lt;br /&gt;@@&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-909762203775730254?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/909762203775730254/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2010/06/erdas-apollo-2010-sql-server-2008.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/909762203775730254'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/909762203775730254'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2010/06/erdas-apollo-2010-sql-server-2008.html' title='ERDAS Apollo 2010 + SQL Server 2008 Express'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-7173263948043589676</id><published>2010-06-29T01:32:00.001-07:00</published><updated>2010-06-30T06:15:19.622-07:00</updated><title type='text'>javax.transaction.xa.XAException</title><content type='html'>&lt;p  style="color: rgb(0, 0, 0);font-family:trebuchet ms;" class="x_MsoNormal"&gt;&lt;span style="font-size:100%;"&gt;&lt;b&gt;&lt;u&gt;&lt;span style="font-size:11pt;"&gt;Issue:&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt; &lt;p  style="color: rgb(0, 0, 0);font-family:trebuchet ms;" class="x_MsoNormal"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:11pt;"&gt;javax.transaction.xa.XAException:  com.microsoft.sqlserver.jdbc.SQLServerException: Failed to create the XA  control connection. Error: "Could not find stored procedure  'master..xp_sqljdbc_xa_init_ex'."&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  style="color: rgb(0, 0, 0);font-family:trebuchet ms;" class="x_MsoNormal"&gt;&lt;span style="font-size:100%;"&gt;&lt;b&gt;&lt;u&gt;&lt;span style="font-size:11pt;"&gt;Resolution:&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="x_MsoListParagraph"  style="margin-left: 0.25in; text-indent: -0.25in; color: rgb(0, 0, 0);font-family:trebuchet ms;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:11pt;"&gt;&lt;span style=""&gt;1.&lt;span style="font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-size-adjust: none; font-stretch: normal;font-size:7pt;" &gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:11pt;"&gt;Ensure Microsoft Distributed Transaction Coordinator is installed   and running on every SQL Server machine that will participate in   distributed transactions.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="x_MsoListParagraph"  style="margin-left: 0.75in; text-indent: -0.25in; color: rgb(0, 0, 0);font-family:trebuchet ms;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:11pt;"&gt;&lt;span style=""&gt;a.&lt;span style="font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-size-adjust: none; font-stretch: normal;font-size:7pt;" &gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:11pt;"&gt;From Control Panel, open Administrative Tools, and then open  Component Services. You can also click the Start button, click Run, type  dcomcnfg in the Open box, and then press OK to open Component Services.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="x_MsoListParagraph"  style="margin-left: 0.75in; text-indent: -0.25in; color: rgb(0, 0, 0);font-family:trebuchet ms;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:11pt;"&gt;&lt;span style=""&gt;b.&lt;span style="font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-size-adjust: none; font-stretch: normal;font-size:7pt;" &gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:11pt;"&gt;Expand Component Services, Computers and right-click My Computer,  and then select Properties.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="x_MsoListParagraph"  style="margin-left: 0.75in; text-indent: -0.25in; color: rgb(0, 0, 0);font-family:trebuchet ms;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:11pt;"&gt;&lt;span style=""&gt;c.&lt;span style="font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-size-adjust: none; font-stretch: normal;font-size:7pt;" &gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:11pt;"&gt;Click the MSDTC tab, and then click Security Configuration.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="x_MsoListParagraph"  style="margin-left: 0.75in; text-indent: -0.25in; color: rgb(0, 0, 0);font-family:trebuchet ms;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:11pt;"&gt;&lt;span style=""&gt;d.&lt;span style="font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-size-adjust: none; font-stretch: normal;font-size:7pt;" &gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:11pt;"&gt;Select the Enable XA Transactions check box, and then click OK.  This will cause a MS DTC service restart.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="x_MsoListParagraph"  style="margin-left: 0.75in; text-indent: -0.25in; color: rgb(0, 0, 0);font-family:trebuchet ms;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:11pt;"&gt;&lt;span style=""&gt;e.&lt;span style="font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-size-adjust: none; font-stretch: normal;font-size:7pt;" &gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:11pt;"&gt;Click OK again to close the Properties dialog box, and then close  Component Services.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="x_MsoListParagraph"  style="margin-left: 0.75in; text-indent: -0.25in; color: rgb(0, 0, 0);font-family:trebuchet ms;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:11pt;"&gt;&lt;span style=""&gt;f.&lt;span style="font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-size-adjust: none; font-stretch: normal;font-size:7pt;" &gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:11pt;"&gt;Stop and then restart SQL Server to ensure  that it syncs up with the MS DTC changes&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="x_MsoListParagraph"  style="margin-left: 0.75in; text-indent: -0.25in; color: rgb(0, 0, 0);font-family:trebuchet ms;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:11pt;"&gt;2. Install the  Microsoft SQL Server JDBC driver 2.0 from the url in the reference  section.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p  style="color: rgb(0, 0, 0);font-family:trebuchet ms;" class="x_MsoNormal"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:11pt;"&gt; 3. Copy the sqljdbc_xa.dll from  this directory to the Binn directory   of every SQL Server machine that  will participate in distributed transactions. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p  style="color: rgb(0, 0, 0);font-family:trebuchet ms;" class="x_MsoNormal"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:11pt;"&gt; 4. Execute the database script xa_install.sql  on every SQL Server   machine that will participate in distributed  transactions.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p  style="color: rgb(0, 0, 0);font-family:trebuchet ms;" class="x_MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p  style="color: rgb(0, 0, 0);font-family:trebuchet ms;" class="x_MsoNormal"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:11pt;"&gt;5. Check that apollo db user has execute permission to the "master" database because &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:11pt;"&gt;xa_install.sql installs procedures in the master database.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p  style="color: rgb(0, 0, 0);font-family:trebuchet ms;" class="x_MsoNormal"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:11pt;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:11pt;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p face="trebuchet ms" style="color: rgb(0, 0, 0);" class="x_MsoNormal"&gt;&lt;span style="font-size:100%;"&gt;&lt;b&gt;&lt;u&gt;&lt;span style="font-size:11pt;"&gt;Reference:&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style=";font-family:trebuchet ms;font-size:100%;"  &gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa342335.aspx"&gt;http://msdn.microsoft.com/en-us/library/aa342335.aspx&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=99B21B65-E98F-4A61-B811-19912601FDC9&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=99B21B65-E98F-4A61-B811-19912601FDC9&amp;amp;displaylang=en&lt;/a&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-7173263948043589676?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/7173263948043589676/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2010/06/javaxtransactionxaxaexception.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/7173263948043589676'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/7173263948043589676'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2010/06/javaxtransactionxaxaexception.html' title='javax.transaction.xa.XAException'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-8514285966841865026</id><published>2010-06-08T22:14:00.000-07:00</published><updated>2010-06-08T22:19:24.720-07:00</updated><title type='text'>Erdas Apollo 2010 Change server name</title><content type='html'>Recently I changed the computer name that hosts Erdas Apollo 2010, and services stop working.&lt;br /&gt;So I basically did&lt;br /&gt;1. search and replace on the *.xml, *.fac, *.txt that refer to old-computer-name and replace them with new-computer-name&lt;br /&gt;2. search and replace on apollo-client.war&lt;br /&gt;    Because this is effectively a zip file, I had to unzip it, did search and replace, zip it again, and place it in \APOLLO2010\jboss\server\default\deploy directory&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-8514285966841865026?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/8514285966841865026/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2010/06/erdas-apollo-2010-change-server-name.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/8514285966841865026'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/8514285966841865026'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2010/06/erdas-apollo-2010-change-server-name.html' title='Erdas Apollo 2010 Change server name'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-98985836728497108</id><published>2010-06-07T05:28:00.000-07:00</published><updated>2010-06-07T05:53:56.120-07:00</updated><title type='text'>FAZ position</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_pqJ3xeWZuLc/TAzr0TvfW6I/AAAAAAAAAAo/zUx0ch2AeAg/s1600/XLFJune4.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 306px; height: 320px;" src="http://3.bp.blogspot.com/_pqJ3xeWZuLc/TAzr0TvfW6I/AAAAAAAAAAo/zUx0ch2AeAg/s320/XLFJune4.jpg" alt="" id="BLOGGER_PHOTO_ID_5480014130488236962" border="0" /&gt;&lt;/a&gt;Entry price: ~15.50 to $16.00 (Currently quite far from MA)&lt;br /&gt;Target1: $20&lt;br /&gt;Target2: $25&lt;br /&gt;Stop: $13.98&lt;br /&gt;Reward2RiskRatio: 4/2&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_pqJ3xeWZuLc/TAzmVdJP0PI/AAAAAAAAAAY/Bdsg20k-rvE/s1600/fazJun7"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 242px;" src="http://3.bp.blogspot.com/_pqJ3xeWZuLc/TAzmVdJP0PI/AAAAAAAAAAY/Bdsg20k-rvE/s320/fazJun7" alt="" id="BLOGGER_PHOTO_ID_5480008102878105842" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-98985836728497108?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/98985836728497108/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2010/06/faz-position.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/98985836728497108'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/98985836728497108'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2010/06/faz-position.html' title='FAZ position'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_pqJ3xeWZuLc/TAzr0TvfW6I/AAAAAAAAAAo/zUx0ch2AeAg/s72-c/XLFJune4.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-3723716071418757498</id><published>2010-06-07T03:33:00.000-07:00</published><updated>2010-06-07T04:16:02.168-07:00</updated><title type='text'>US Stockmarket 1 year view</title><content type='html'>My uneducated guess for SPY in a year time (Jun 2011)&lt;br /&gt;- It will be sitting ard $85 to $95, which is just the trading range in April-June 2009 before it broke out of resistance.&lt;br /&gt;- It is a bearish view because:&lt;br /&gt; - The governments around the world are running out of stimulus money&lt;br /&gt; - Austerity programs in Europe will take place&lt;br /&gt; - BRIC (Brazil, Russia, India, and China) are tightening their economy to control inflation (especially property prices in China)&lt;br /&gt;- Very high level of debt among developed countries ( as detailed in http://www.debtdeflation.com/blogs/)&lt;br /&gt;- refer to Nouriel Roubini  http://www.youtube.com/watch?v=f7RjqfdRQDQ&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_pqJ3xeWZuLc/TAzL2JnieLI/AAAAAAAAAAQ/9ocIILysijA/s1600/spy3yearsJun7.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 251px;" src="http://1.bp.blogspot.com/_pqJ3xeWZuLc/TAzL2JnieLI/AAAAAAAAAAQ/9ocIILysijA/s320/spy3yearsJun7.png" alt="" id="BLOGGER_PHOTO_ID_5479978977758181554" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-3723716071418757498?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/3723716071418757498/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2010/06/us-stockmarket-1-year-view.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/3723716071418757498'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/3723716071418757498'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2010/06/us-stockmarket-1-year-view.html' title='US Stockmarket 1 year view'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_pqJ3xeWZuLc/TAzL2JnieLI/AAAAAAAAAAQ/9ocIILysijA/s72-c/spy3yearsJun7.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-2981762948749496737</id><published>2010-06-06T03:29:00.000-07:00</published><updated>2010-06-06T03:35:12.791-07:00</updated><title type='text'>Erjang on OSX 10.6.x</title><content type='html'>A few obstacles I was having when trying to setup Erjang on OSX 10.6.x&lt;br /&gt;1. Perl version&lt;br /&gt;    Erjang requires perl 5.10.0, and the default perl on the system is 5.8.x.&lt;br /&gt;    Perl 5.10.x is installed on the system however, so all I have to do is to modify build.xml,&lt;br /&gt;    replacing executable="perl" with executable="perl5.10.0"&lt;br /&gt;2. Erlang environment vars&lt;br /&gt;     To make it easy, I add a soft link /sw that points to /opt/local&lt;br /&gt;&lt;br /&gt;Then I can just do&lt;br /&gt;&lt;pre&gt;./erl.sh -pa ./src/main/erl -noshell -s ring main&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-2981762948749496737?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/2981762948749496737/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2010/06/erjang-on-osx-106x.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/2981762948749496737'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/2981762948749496737'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2010/06/erjang-on-osx-106x.html' title='Erjang on OSX 10.6.x'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-590433644757857468</id><published>2010-05-19T03:00:00.001-07:00</published><updated>2010-05-19T22:07:06.136-07:00</updated><title type='text'>Dojo generate colors</title><content type='html'>The one that I want is in&lt;br /&gt;&lt;br /&gt;dojox.color.Generator.monochromatic&lt;span class="sourceRowText" role="presentation"&gt; ({ base:myColor, num:6  })&lt;br /&gt;http://bugs.dojotoolkit.org/browser/dojox/trunk/color/Generator.js?rev=14628&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;This monochromatic function does NOT do what I want&lt;br /&gt;dojo.require("dojox.color.Palette");&lt;br /&gt;&lt;span class="sourceRowText" role="presentation"&gt;var colors =  dojox.color.Palette.generators.monochromatic ({ base:myColor, num:6 });&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-590433644757857468?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/590433644757857468/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2010/05/dojo-generate-colors.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/590433644757857468'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/590433644757857468'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2010/05/dojo-generate-colors.html' title='Dojo generate colors'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-8042748187252716283</id><published>2010-05-18T22:35:00.000-07:00</published><updated>2010-05-18T22:37:38.885-07:00</updated><title type='text'>Dojo How to ColorPalette + TooltipDialog + DropDownButton</title><content type='html'>function changeColor(selectColor) {&lt;br /&gt;        console.log("color: " + selectColor);&lt;br /&gt;    }&lt;br /&gt;       &lt;br /&gt;    dojo.addOnLoad( function() {&lt;br /&gt;        var censusContainer = new dijit.layout.BorderContainer({      &lt;br /&gt;            style: "width: 30%; height: 30%",&lt;br /&gt;            gutters: false,&lt;br /&gt;            design: "headline"&lt;br /&gt;        },"censusContainerId");&lt;br /&gt;       &lt;br /&gt;       &lt;br /&gt;        var paramsContent = new dijit.layout.ContentPane();&lt;br /&gt;        var colorPalette = new dijit.ColorPalette({onChange:changeColor});&lt;br /&gt;        var colorPalette2 = new dijit.ColorPalette({onChange:changeColor});&lt;br /&gt;        censusContainer.addChild(colorPalette);&lt;br /&gt;        var dropDownButton = new dijit.form.DropDownButton({label: "drop", dropDown: colorPalette2});&lt;br /&gt;        censusContainer.addChild(dropDownButton);&lt;br /&gt;        censusContainer.startup();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;HTML:&lt;br /&gt;&lt;br /&gt;&amp;lt;body class=&amp;quot;tundra&amp;quot;&amp;gt;&lt;br /&gt;    &amp;lt;div id=&amp;quot;censusContainerId&amp;quot; region=&amp;quot;top&amp;quot; &amp;gt;Region top&amp;lt;/div&amp;gt;&lt;br /&gt;    &amp;lt;div dojoType=&amp;quot;dijit.ColorPalette&amp;quot; onChange=&amp;quot;changeColor&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-8042748187252716283?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/8042748187252716283/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2010/05/dojo-how-to-colorpalette-tooltipdialog.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/8042748187252716283'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/8042748187252716283'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2010/05/dojo-how-to-colorpalette-tooltipdialog.html' title='Dojo How to ColorPalette + TooltipDialog + DropDownButton'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-2432337043981938555</id><published>2010-05-13T09:43:00.000-07:00</published><updated>2010-05-13T09:48:19.908-07:00</updated><title type='text'>Erlang parse file</title><content type='html'>Trying to parse csv file with the following contents&lt;br /&gt;&lt;br /&gt;INTC,07-May-2010 16:51,21.31,21.31,21.31,21.31,200\n&lt;br /&gt;INTC,07-May-2010 16:47,21.31,21.31,21.31,21.31,100\n&lt;br /&gt;INTC,07-May-2010 16:42,21.31,21.31,21.31,21.31,300\n&lt;br /&gt;&lt;br /&gt;The erlang code&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;getCompanyEff(Filename,Company) -&gt;&lt;br /&gt; {ok,Device} = file:open(Filename,read),&lt;br /&gt; getLinesCompany(Device,[],Company).&lt;br /&gt;&lt;br /&gt;getLinesCompany(Device,Accum,Company) -&gt;&lt;br /&gt; case io:get_line(Device,"") of&lt;br /&gt;  eof -&gt; Accum;&lt;br /&gt;  Line -&gt;&lt;br /&gt;    case regexp:first_match(Line, Company ++ ",*") of&lt;br /&gt;     {match,_,_} -&gt; getLinesCompany(Device, [Line|Accum], Company);&lt;br /&gt;     nomatch -&gt; getLinesCompany(Device, Accum, Company)&lt;br /&gt;    end&lt;br /&gt; end.&lt;br /&gt;&lt;br /&gt;and to execute:&lt;br /&gt;erl&gt; module:getCompanyEff("/path/to/file", "CompanyName").&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-2432337043981938555?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/2432337043981938555/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2010/05/erlang-parse-file.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/2432337043981938555'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/2432337043981938555'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2010/05/erlang-parse-file.html' title='Erlang parse file'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-7570971905051192238</id><published>2010-05-10T02:02:00.000-07:00</published><updated>2010-05-10T02:26:52.863-07:00</updated><title type='text'>HTML 5 postMessage (Cross-Domain Message) on Firefox 3.6.3</title><content type='html'>This only works in Firefox because IE uses attachEvent(). You can always use dojo.connect( window, 'message', func() ) so it works in Firefox and IE.&lt;br /&gt;&lt;br /&gt;A (http://localhost/cross.htm) has an iframe containing B (http://otherdomain/cross.htm)&lt;br /&gt;&lt;br /&gt;After the iframe is loaded in A, then a message is sent to it (containing string 'Hello'). The origin is checked in B, and if it matches an alert is displayed.&lt;br /&gt;&lt;br /&gt;on A (http://localhost/cross.htm)&lt;br /&gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;  function iframeload() {&lt;br /&gt;     var o = document.getElementById(&amp;#39;crossid&amp;#39;).contentWindow;    &lt;br /&gt;     o.postMessage(&amp;#39;Hello&amp;#39;, &amp;quot;http://otherdomain/cross.htm&amp;quot;);&lt;br /&gt;  }&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;iframe id=&amp;quot;crossid&amp;quot; onload=&amp;quot;iframeload();&amp;quot; src=&amp;quot;http://otherdomain/cross.htm&amp;quot; width=&amp;quot;700px&amp;quot; height=&amp;quot;700px&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;on B (http://otherdomain/cross.htm)&lt;br /&gt;window.addEventListener(&amp;#39;message&amp;#39;,function(e) {&lt;br /&gt;  if (e.origin == &amp;#39;http://localhost&amp;#39;) {&lt;br /&gt;      if (e.data == &amp;#39;Hello&amp;#39;) {&lt;br /&gt;          alert(e.data);&lt;br /&gt;          e.source.postMessage(&amp;#39;Hello&amp;#39;);&lt;br /&gt;      } else {&lt;br /&gt;          alert(e.data);&lt;br /&gt;      }&lt;br /&gt;  }&lt;br /&gt;}, false);&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-7570971905051192238?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/7570971905051192238/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2010/05/html-5-postmessage-on-firefox-363.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/7570971905051192238'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/7570971905051192238'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2010/05/html-5-postmessage-on-firefox-363.html' title='HTML 5 postMessage (Cross-Domain Message) on Firefox 3.6.3'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-8974623713966375844</id><published>2010-05-07T19:14:00.000-07:00</published><updated>2010-05-07T19:24:21.631-07:00</updated><title type='text'>Javascript for loop + closure</title><content type='html'>This for loop uses closure to get the value of i for every iteration.&lt;br /&gt;Without closure, every element in divvar will get the last value of x(length-1) from iteration.&lt;br /&gt;&lt;br /&gt;for( var i=0;i&amp;lt;divvar.length;i++ ) { &lt;br /&gt; (&lt;br /&gt;  function(x) { // -&amp;gt; capture looping variable&lt;br /&gt;   divvar[x].onclick = function() { &lt;br /&gt;    console.debug("clicked:", x); &lt;br /&gt;   }&lt;br /&gt;  }&lt;br /&gt; )(i); // -&amp;gt; pass in looping variable &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Compare this to the standar loop without closure&lt;br /&gt;&lt;br /&gt;for( var i=0;i&amp;lt;divvar.length;i++ ) { &lt;br /&gt; divvar[i].onclick = function() { &lt;br /&gt;  console.debug("clicked:", i); &lt;br /&gt; }; &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Or we can use dojo.forEach to fix this&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-8974623713966375844?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/8974623713966375844/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2010/05/javascript-for-loop-closure.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/8974623713966375844'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/8974623713966375844'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2010/05/javascript-for-loop-closure.html' title='Javascript for loop + closure'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-1022007258252947614</id><published>2010-05-06T20:48:00.001-07:00</published><updated>2010-05-06T20:52:59.782-07:00</updated><title type='text'>ESRI ArcXML get service info</title><content type='html'>HTTP POST to http://xxx/IMS/servlet/com.esri.esrimap.Esrimap?ServiceName=six_combo&amp;CustomService=query&lt;br /&gt;&lt;br /&gt;ARCXML service info:&lt;br /&gt;&lt;br /&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;&amp;lt;ARCXML version=&amp;quot;1.1&amp;quot;&amp;gt;&lt;br /&gt;  &amp;lt;REQUEST&amp;gt;&lt;br /&gt;    &amp;lt;GET_SERVICE_INFO fields=&amp;quot;false&amp;quot; envelope=&amp;quot;false&amp;quot; renderer=&amp;quot;false&amp;quot; extensions=&amp;quot;true&amp;quot; acetateinfo=&amp;quot;false&amp;quot; /&amp;gt;&lt;br /&gt;  &amp;lt;/REQUEST&amp;gt;&lt;br /&gt;&amp;lt;/ARCXML&amp;gt;&lt;br /&gt;&lt;br /&gt;The response:&lt;br /&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;&amp;lt;ARCXML version=&amp;quot;1.1&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;RESPONSE&amp;gt;&lt;br /&gt;&amp;lt;SERVICEINFO&amp;gt;&lt;br /&gt;&amp;lt;ENVIRONMENT&amp;gt;&lt;br /&gt;&amp;lt;LOCALE language=&amp;quot;en&amp;quot; country=&amp;quot;AU&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;UIFONT name=&amp;quot;Arial&amp;quot; color=&amp;quot;0,0,0&amp;quot; size=&amp;quot;12&amp;quot; style=&amp;quot;regular&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;SEPARATORS cs=&amp;quot; &amp;quot; ts=&amp;quot;;&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;CAPABILITIES forbidden=&amp;quot;&amp;quot; disabledtypes=&amp;quot;&amp;quot; returngeometry=&amp;quot;xmlmode&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;SCREEN dpi=&amp;quot;74&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/ENVIRONMENT&amp;gt;&lt;br /&gt;&amp;lt;PROPERTIES&amp;gt;&lt;br /&gt;&amp;lt;FEATURECOORDSYS string=&amp;quot;GEOGCS[&amp;quot;GCS_GDA_1994&amp;quot;,DATUM[&amp;quot;D_GDA_1994&amp;quot;,SPHEROID[&amp;quot;GRS_1980&amp;quot;,6378137.0,298.257222101]],PRIMEM[&amp;quot;Greenwich&amp;quot;,0.0],UNIT[&amp;quot;Degree&amp;quot;,0.0174532925199433]]&amp;quot; id=&amp;quot;4283&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FILTERCOORDSYS string=&amp;quot;GEOGCS[&amp;quot;GCS_GDA_1994&amp;quot;,DATUM[&amp;quot;D_GDA_1994&amp;quot;,SPHEROID[&amp;quot;GRS_1980&amp;quot;,6378137.0,298.257222101]],PRIMEM[&amp;quot;Greenwich&amp;quot;,0.0],UNIT[&amp;quot;Degree&amp;quot;,0.0174532925199433]]&amp;quot; id=&amp;quot;4283&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;ENVELOPE minx=&amp;quot;140.05983881892&amp;quot; miny=&amp;quot;-37.740334035&amp;quot; maxx=&amp;quot;154.575951211079&amp;quot; maxy=&amp;quot;-27.924909045&amp;quot; name=&amp;quot;Initial_Extent&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;ENVELOPE minx=&amp;quot;140.05983881892&amp;quot; miny=&amp;quot;-37.740334035&amp;quot; maxx=&amp;quot;154.575951211079&amp;quot; maxy=&amp;quot;-27.924909045&amp;quot; name=&amp;quot;Extent_Limit&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;MAPUNITS units=&amp;quot;decimal_degrees&amp;quot; /&amp;gt;&lt;br /&gt; &amp;lt;LEGEND/&amp;gt;&lt;br /&gt;&amp;lt;/PROPERTIES&amp;gt;&lt;br /&gt;&amp;lt;LAYERINFO type=&amp;quot;featureclass&amp;quot; visible=&amp;quot;true&amp;quot; name=&amp;quot;Suburb Labels&amp;quot; id=&amp;quot;Suburb_Label_1&amp;quot; minscale=&amp;quot;0.0000308686210057027&amp;quot; maxscale=&amp;quot;0.000308686210057027&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;FCLASS type=&amp;quot;polygon&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.Suburb.cadid&amp;quot; type=&amp;quot;4&amp;quot; size=&amp;quot;10&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.Suburb.createdate&amp;quot; type=&amp;quot;91&amp;quot; size=&amp;quot;0&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.Suburb.modifieddate&amp;quot; type=&amp;quot;91&amp;quot; size=&amp;quot;0&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.Suburb.suburbname&amp;quot; type=&amp;quot;12&amp;quot; size=&amp;quot;40&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.Suburb.postcode&amp;quot; type=&amp;quot;4&amp;quot; size=&amp;quot;10&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.Suburb.state&amp;quot; type=&amp;quot;5&amp;quot; size=&amp;quot;5&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;#SHAPE#&amp;quot; type=&amp;quot;-98&amp;quot; size=&amp;quot;0&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.Suburb.objectid&amp;quot; type=&amp;quot;-99&amp;quot; size=&amp;quot;16&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;SE_Area(shape)&amp;quot; type=&amp;quot;8&amp;quot; size=&amp;quot;16&amp;quot; precision=&amp;quot;8&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;SE_Length(shape)&amp;quot; type=&amp;quot;8&amp;quot; size=&amp;quot;16&amp;quot; precision=&amp;quot;8&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;/FCLASS&amp;gt;&lt;br /&gt;&amp;lt;/LAYERINFO&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;LAYERINFO type=&amp;quot;featureclass&amp;quot; visible=&amp;quot;true&amp;quot; name=&amp;quot;Local Government Area Labels&amp;quot; id=&amp;quot;LocalGovernmentArea_Label_1&amp;quot; minscale=&amp;quot;0.000246948968045622&amp;quot; maxscale=&amp;quot;0.000926058630171081&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;FCLASS type=&amp;quot;polygon&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.LocalGovernmentArea.cadid&amp;quot; type=&amp;quot;4&amp;quot; size=&amp;quot;10&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.LocalGovernmentArea.createdate&amp;quot; type=&amp;quot;91&amp;quot; size=&amp;quot;0&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.LocalGovernmentArea.modifieddate&amp;quot; type=&amp;quot;91&amp;quot; size=&amp;quot;0&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.LocalGovernmentArea.lganame&amp;quot; type=&amp;quot;12&amp;quot; size=&amp;quot;60&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.LocalGovernmentArea.councilname&amp;quot; type=&amp;quot;12&amp;quot; size=&amp;quot;80&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.LocalGovernmentArea.abscode&amp;quot; type=&amp;quot;4&amp;quot; size=&amp;quot;10&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.LocalGovernmentArea.ltocode&amp;quot; type=&amp;quot;4&amp;quot; size=&amp;quot;10&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.LocalGovernmentArea.vgcode&amp;quot; type=&amp;quot;4&amp;quot; size=&amp;quot;10&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.LocalGovernmentArea.wbcode&amp;quot; type=&amp;quot;4&amp;quot; size=&amp;quot;10&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;#SHAPE#&amp;quot; type=&amp;quot;-98&amp;quot; size=&amp;quot;0&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.LocalGovernmentArea.objectid&amp;quot; type=&amp;quot;-99&amp;quot; size=&amp;quot;16&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;SE_Area(shape)&amp;quot; type=&amp;quot;8&amp;quot; size=&amp;quot;16&amp;quot; precision=&amp;quot;8&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;SE_Length(shape)&amp;quot; type=&amp;quot;8&amp;quot; size=&amp;quot;16&amp;quot; precision=&amp;quot;8&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;/FCLASS&amp;gt;&lt;br /&gt;&amp;lt;/LAYERINFO&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;LAYERINFO type=&amp;quot;featureclass&amp;quot; visible=&amp;quot;false&amp;quot; name=&amp;quot;Locality Labels&amp;quot; id=&amp;quot;Locality_Label_1&amp;quot; maxscale=&amp;quot;0.0000000308686210057027&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;FCLASS type=&amp;quot;point&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.placepoint.topoid&amp;quot; type=&amp;quot;4&amp;quot; size=&amp;quot;10&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.placepoint.createdate&amp;quot; type=&amp;quot;91&amp;quot; size=&amp;quot;0&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.placepoint.objectmoddate&amp;quot; type=&amp;quot;91&amp;quot; size=&amp;quot;0&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.placepoint.featuremoddate&amp;quot; type=&amp;quot;91&amp;quot; size=&amp;quot;0&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.placepoint.classsubtype&amp;quot; type=&amp;quot;4&amp;quot; size=&amp;quot;10&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.placepoint.featurereliabilitydate&amp;quot; type=&amp;quot;91&amp;quot; size=&amp;quot;0&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.placepoint.attributereliabilitydate&amp;quot; type=&amp;quot;91&amp;quot; size=&amp;quot;0&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.placepoint.capturesourcecode&amp;quot; type=&amp;quot;5&amp;quot; size=&amp;quot;5&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.placepoint.capturemethodcode&amp;quot; type=&amp;quot;5&amp;quot; size=&amp;quot;5&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.placepoint.planimetricaccuracy&amp;quot; type=&amp;quot;6&amp;quot; size=&amp;quot;6&amp;quot; precision=&amp;quot;2&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.placepoint.verticalaccuracy&amp;quot; type=&amp;quot;6&amp;quot; size=&amp;quot;6&amp;quot; precision=&amp;quot;2&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.placepoint.operationalstatus&amp;quot; type=&amp;quot;5&amp;quot; size=&amp;quot;5&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.placepoint.generalnameoid&amp;quot; type=&amp;quot;4&amp;quot; size=&amp;quot;10&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.placepoint.generalname&amp;quot; type=&amp;quot;12&amp;quot; size=&amp;quot;50&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.placepoint.alternativelabel&amp;quot; type=&amp;quot;12&amp;quot; size=&amp;quot;50&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.placepoint.placetype&amp;quot; type=&amp;quot;5&amp;quot; size=&amp;quot;5&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.placepoint.population&amp;quot; type=&amp;quot;4&amp;quot; size=&amp;quot;10&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.placepoint.popsourcedate&amp;quot; type=&amp;quot;91&amp;quot; size=&amp;quot;0&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.placepoint.placesignificance&amp;quot; type=&amp;quot;5&amp;quot; size=&amp;quot;5&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;#SHAPE#&amp;quot; type=&amp;quot;-98&amp;quot; size=&amp;quot;0&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.placepoint.objectid&amp;quot; type=&amp;quot;-99&amp;quot; size=&amp;quot;16&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;SE_Area(shape)&amp;quot; type=&amp;quot;8&amp;quot; size=&amp;quot;16&amp;quot; precision=&amp;quot;8&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;SE_Length(shape)&amp;quot; type=&amp;quot;8&amp;quot; size=&amp;quot;16&amp;quot; precision=&amp;quot;8&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;/FCLASS&amp;gt;&lt;br /&gt;&amp;lt;EXTENSION type=&amp;quot;StoredQuery&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;STOREDQUERIES&amp;gt;&lt;br /&gt;&amp;lt;STOREDQUERY name=&amp;quot;generalname&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;QUERY subfields=&amp;quot;&amp;quot; where=&amp;quot;generalname LIKE &amp;#39;[%var%]%&amp;#39;&amp;quot; &amp;gt;&lt;br /&gt;&amp;lt;/QUERY&amp;gt;&lt;br /&gt;&amp;lt;SQVAR name=&amp;quot;[%var%]&amp;quot; position=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.placepoint.generalname&amp;quot; type=&amp;quot;12&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;/SQVAR&amp;gt;&lt;br /&gt;&amp;lt;/STOREDQUERY&amp;gt;&lt;br /&gt;&amp;lt;/STOREDQUERIES&amp;gt;&lt;br /&gt;&amp;lt;/EXTENSION&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/LAYERINFO&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;LAYERINFO type=&amp;quot;featureclass&amp;quot; visible=&amp;quot;true&amp;quot; name=&amp;quot;Road Labels&amp;quot; id=&amp;quot;RoadSegment_Label_1&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;FCLASS type=&amp;quot;line&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.RoadSegment.topoid&amp;quot; type=&amp;quot;4&amp;quot; size=&amp;quot;10&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.RoadSegment.createdate&amp;quot; type=&amp;quot;91&amp;quot; size=&amp;quot;0&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.RoadSegment.objectmoddate&amp;quot; type=&amp;quot;91&amp;quot; size=&amp;quot;0&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.RoadSegment.featuremoddate&amp;quot; type=&amp;quot;91&amp;quot; size=&amp;quot;0&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.RoadSegment.classsubtype&amp;quot; type=&amp;quot;4&amp;quot; size=&amp;quot;10&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.RoadSegment.featurereliabilitydate&amp;quot; type=&amp;quot;91&amp;quot; size=&amp;quot;0&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.RoadSegment.attributereliabilitydate&amp;quot; type=&amp;quot;91&amp;quot; size=&amp;quot;0&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.RoadSegment.capturesourcecode&amp;quot; type=&amp;quot;5&amp;quot; size=&amp;quot;5&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.RoadSegment.capturemethodcode&amp;quot; type=&amp;quot;5&amp;quot; size=&amp;quot;5&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.RoadSegment.planimetricaccuracy&amp;quot; type=&amp;quot;6&amp;quot; size=&amp;quot;6&amp;quot; precision=&amp;quot;2&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.RoadSegment.verticalaccuracy&amp;quot; type=&amp;quot;6&amp;quot; size=&amp;quot;6&amp;quot; precision=&amp;quot;2&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.RoadSegment.operationalstatus&amp;quot; type=&amp;quot;5&amp;quot; size=&amp;quot;5&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.RoadSegment.roadnameoid&amp;quot; type=&amp;quot;4&amp;quot; size=&amp;quot;10&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.RoadSegment.roadnamebase&amp;quot; type=&amp;quot;12&amp;quot; size=&amp;quot;50&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.RoadSegment.roadnametype&amp;quot; type=&amp;quot;12&amp;quot; size=&amp;quot;20&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.RoadSegment.roadnamesuffix&amp;quot; type=&amp;quot;12&amp;quot; size=&amp;quot;10&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.RoadSegment.functionhierarchy&amp;quot; type=&amp;quot;5&amp;quot; size=&amp;quot;5&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.RoadSegment.roadontype&amp;quot; type=&amp;quot;5&amp;quot; size=&amp;quot;5&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.RoadSegment.surface&amp;quot; type=&amp;quot;5&amp;quot; size=&amp;quot;5&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.RoadSegment.lanecount&amp;quot; type=&amp;quot;5&amp;quot; size=&amp;quot;5&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;#SHAPE#&amp;quot; type=&amp;quot;-98&amp;quot; size=&amp;quot;0&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.RoadSegment.objectid&amp;quot; type=&amp;quot;-99&amp;quot; size=&amp;quot;16&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;SE_Area(shape)&amp;quot; type=&amp;quot;8&amp;quot; size=&amp;quot;16&amp;quot; precision=&amp;quot;8&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;SE_Length(shape)&amp;quot; type=&amp;quot;8&amp;quot; size=&amp;quot;16&amp;quot; precision=&amp;quot;8&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;/FCLASS&amp;gt;&lt;br /&gt;&amp;lt;/LAYERINFO&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;LAYERINFO type=&amp;quot;featureclass&amp;quot; visible=&amp;quot;true&amp;quot; name=&amp;quot;Town Labels&amp;quot; id=&amp;quot;Town_Label_1&amp;quot; minscale=&amp;quot;0.000246948968045622&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;FCLASS type=&amp;quot;point&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;OBJECTID&amp;quot; type=&amp;quot;8&amp;quot; size=&amp;quot;10&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;NAME&amp;quot; type=&amp;quot;12&amp;quot; size=&amp;quot;32&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;POSTCODE&amp;quot; type=&amp;quot;8&amp;quot; size=&amp;quot;10&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;POP_1996&amp;quot; type=&amp;quot;8&amp;quot; size=&amp;quot;10&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;#SHAPE#&amp;quot; type=&amp;quot;-98&amp;quot; size=&amp;quot;0&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;#ID#&amp;quot; type=&amp;quot;-99&amp;quot; size=&amp;quot;16&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;/FCLASS&amp;gt;&lt;br /&gt;&amp;lt;/LAYERINFO&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;LAYERINFO type=&amp;quot;featureclass&amp;quot; visible=&amp;quot;true&amp;quot; name=&amp;quot;Local Government Area&amp;quot; id=&amp;quot;LocalGovernmentArea_1&amp;quot; minscale=&amp;quot;0.000246948968045622&amp;quot; maxscale=&amp;quot;0.000926058630171081&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;FCLASS type=&amp;quot;polygon&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.LocalGovernmentArea.cadid&amp;quot; type=&amp;quot;4&amp;quot; size=&amp;quot;10&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.LocalGovernmentArea.createdate&amp;quot; type=&amp;quot;91&amp;quot; size=&amp;quot;0&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.LocalGovernmentArea.modifieddate&amp;quot; type=&amp;quot;91&amp;quot; size=&amp;quot;0&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.LocalGovernmentArea.lganame&amp;quot; type=&amp;quot;12&amp;quot; size=&amp;quot;60&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.LocalGovernmentArea.councilname&amp;quot; type=&amp;quot;12&amp;quot; size=&amp;quot;80&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.LocalGovernmentArea.abscode&amp;quot; type=&amp;quot;4&amp;quot; size=&amp;quot;10&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.LocalGovernmentArea.ltocode&amp;quot; type=&amp;quot;4&amp;quot; size=&amp;quot;10&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.LocalGovernmentArea.vgcode&amp;quot; type=&amp;quot;4&amp;quot; size=&amp;quot;10&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.LocalGovernmentArea.wbcode&amp;quot; type=&amp;quot;4&amp;quot; size=&amp;quot;10&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;#SHAPE#&amp;quot; type=&amp;quot;-98&amp;quot; size=&amp;quot;0&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.LocalGovernmentArea.objectid&amp;quot; type=&amp;quot;-99&amp;quot; size=&amp;quot;16&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;SE_Area(shape)&amp;quot; type=&amp;quot;8&amp;quot; size=&amp;quot;16&amp;quot; precision=&amp;quot;8&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;SE_Length(shape)&amp;quot; type=&amp;quot;8&amp;quot; size=&amp;quot;16&amp;quot; precision=&amp;quot;8&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;/FCLASS&amp;gt;&lt;br /&gt;&amp;lt;/LAYERINFO&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;LAYERINFO type=&amp;quot;featureclass&amp;quot; visible=&amp;quot;true&amp;quot; name=&amp;quot;Suburbs&amp;quot; id=&amp;quot;Suburb_1&amp;quot; minscale=&amp;quot;0.0000308686210057027&amp;quot; maxscale=&amp;quot;0.000308686210057027&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;FCLASS type=&amp;quot;polygon&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.Suburb.cadid&amp;quot; type=&amp;quot;4&amp;quot; size=&amp;quot;10&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.Suburb.createdate&amp;quot; type=&amp;quot;91&amp;quot; size=&amp;quot;0&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.Suburb.modifieddate&amp;quot; type=&amp;quot;91&amp;quot; size=&amp;quot;0&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.Suburb.suburbname&amp;quot; type=&amp;quot;12&amp;quot; size=&amp;quot;40&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.Suburb.postcode&amp;quot; type=&amp;quot;4&amp;quot; size=&amp;quot;10&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.Suburb.state&amp;quot; type=&amp;quot;5&amp;quot; size=&amp;quot;5&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;#SHAPE#&amp;quot; type=&amp;quot;-98&amp;quot; size=&amp;quot;0&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.Suburb.objectid&amp;quot; type=&amp;quot;-99&amp;quot; size=&amp;quot;16&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;SE_Area(shape)&amp;quot; type=&amp;quot;8&amp;quot; size=&amp;quot;16&amp;quot; precision=&amp;quot;8&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;SE_Length(shape)&amp;quot; type=&amp;quot;8&amp;quot; size=&amp;quot;16&amp;quot; precision=&amp;quot;8&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;/FCLASS&amp;gt;&lt;br /&gt;&amp;lt;/LAYERINFO&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;LAYERINFO type=&amp;quot;featureclass&amp;quot; visible=&amp;quot;true&amp;quot; name=&amp;quot;Topographic Map Index&amp;quot; id=&amp;quot;Topographic_Map_Index_1&amp;quot; maxscale=&amp;quot;0.000617372420114054&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;FCLASS type=&amp;quot;polygon&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.topomapindex.mapnumber&amp;quot; type=&amp;quot;12&amp;quot; size=&amp;quot;10&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.topomapindex.maptitle&amp;quot; type=&amp;quot;12&amp;quot; size=&amp;quot;32&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.topomapindex.nominalpresentationscale&amp;quot; type=&amp;quot;4&amp;quot; size=&amp;quot;8&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.topomapindex.mgazone&amp;quot; type=&amp;quot;5&amp;quot; size=&amp;quot;5&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.topomapindex.hundredkmapnumber&amp;quot; type=&amp;quot;4&amp;quot; size=&amp;quot;5&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.topomapindex.presentationformat&amp;quot; type=&amp;quot;5&amp;quot; size=&amp;quot;5&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;#SHAPE#&amp;quot; type=&amp;quot;-98&amp;quot; size=&amp;quot;0&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;delivsdm:geodb.topomapindex.objectid&amp;quot; type=&amp;quot;-99&amp;quot; size=&amp;quot;16&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;SE_Area(shape)&amp;quot; type=&amp;quot;8&amp;quot; size=&amp;quot;16&amp;quot; precision=&amp;quot;8&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;SE_Length(shape)&amp;quot; type=&amp;quot;8&amp;quot; size=&amp;quot;16&amp;quot; precision=&amp;quot;8&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;/FCLASS&amp;gt;&lt;br /&gt;&amp;lt;/LAYERINFO&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;LAYERINFO type=&amp;quot;featureclass&amp;quot; visible=&amp;quot;true&amp;quot; name=&amp;quot;NSW Border&amp;quot; id=&amp;quot;Border_1&amp;quot; minscale=&amp;quot;0.00617372420114054&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;FCLASS type=&amp;quot;line&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;IGDS_CLASS&amp;quot; type=&amp;quot;4&amp;quot; size=&amp;quot;5&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;IGDS_COLOR&amp;quot; type=&amp;quot;4&amp;quot; size=&amp;quot;5&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;GROUP&amp;quot; type=&amp;quot;4&amp;quot; size=&amp;quot;5&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;IGDS_STYLE&amp;quot; type=&amp;quot;4&amp;quot; size=&amp;quot;5&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;WEIGHT&amp;quot; type=&amp;quot;4&amp;quot; size=&amp;quot;5&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;#SHAPE#&amp;quot; type=&amp;quot;-98&amp;quot; size=&amp;quot;0&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;FIELD name=&amp;quot;#ID#&amp;quot; type=&amp;quot;-99&amp;quot; size=&amp;quot;16&amp;quot; precision=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;/FCLASS&amp;gt;&lt;br /&gt;&amp;lt;/LAYERINFO&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/SERVICEINFO&amp;gt;&lt;br /&gt;&amp;lt;/RESPONSE&amp;gt;&lt;br /&gt;&amp;lt;/ARCXML&amp;gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-1022007258252947614?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/1022007258252947614/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2010/05/blog-post.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/1022007258252947614'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/1022007258252947614'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2010/05/blog-post.html' title='ESRI ArcXML get service info'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-3701461603518714254</id><published>2010-04-29T00:47:00.000-07:00</published><updated>2010-04-29T00:54:13.291-07:00</updated><title type='text'>ArcGIS Polygon Search</title><content type='html'>&lt;div&gt;--Polygon Search for Transport Spending&lt;/div&gt; &lt;div&gt; &lt;/div&gt; &lt;div&gt;URL: &lt;a href="http://timagery.maps.nsw.gov.au/arcgis/rest/services/TransportSpending/MapServer/0/query"&gt;http://xxxxx/arcgis/rest/services/TransportSpending/MapServer/0/query&lt;/a&gt;&lt;/div&gt; &lt;div&gt;Filter Geometry:  {"rings":[[[272276.48887,6179999.947118772],[385469.50589442987,6361478.599097537]]]}&lt;/div&gt; &lt;div&gt;Geometry Type: Polygon&lt;/div&gt; &lt;div&gt;Input Spatial Reference (WKID): 28356&lt;/div&gt; &lt;div&gt;Spatial Relationship: contains&lt;/div&gt; &lt;div&gt;Where clause: empty&lt;br /&gt;&lt;br /&gt;I found this by sniffing the traffic of a page that I created by copying and pasting the html in &lt;a href="http://resources.esri.com/help/9.3/arcgisserver/apis/javascript/arcgis/help/jssamples_start.htm#jssamples/util_simplify.html"&gt;http://resources.esri.com/help/9.3/arcgisserver/apis/javascript/arcgis/help/jssamples_start.htm#jssamples/util_simplify.html&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-3701461603518714254?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/3701461603518714254/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2010/04/arcgis-polygon-search.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/3701461603518714254'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/3701461603518714254'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2010/04/arcgis-polygon-search.html' title='ArcGIS Polygon Search'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-2038953697789313474</id><published>2010-04-12T19:15:00.000-07:00</published><updated>2010-04-12T19:28:17.447-07:00</updated><title type='text'>Installing Erdas Professional 2010 on Amazon EC2</title><content type='html'>Erdas Professional can only be installed on Windows platform.&lt;br /&gt;1.&lt;img alt="Basic 64-bit  Microsoft Windows Server 2008" src="https://console.aws.amazon.com/images/logo_windows.gif" /&gt; &lt;b&gt;Basic  64-bit Microsoft Windows Server 2008&lt;/b&gt; (AMI Id: ami-cdc22ea4)&lt;span class="value"&gt;&lt;br /&gt;2. Download Erdas Apollo Professional 2010 from Erdas website (http://www.erdas.com/Products/ERDASProductInformation/tabid/84/currentid/3148/objectid/3148/default.aspx), you will need to register, and an instruction of how to download it from ftp.erdas.com will be given.&lt;br /&gt;3. Install PostgreSQL (at least 8.3) and PostGIS extension 1.5&lt;br /&gt;4. Create a new database using template_postgis. The username/password/database info will need to be entered into Apollo installation window at some point.&lt;br /&gt;5. Download and install the Erdas net-License Manager (http://www.erdas.com/Products/ERDASProductInformation/tabid/84/currentid/3148/objectid/3148/~/tabid/84/currentid/2491/default.aspx)&lt;br /&gt;6. Request evaluation license from Erdas websites, and follow the instruction of how to install it.&lt;br /&gt;7. Once the license file is installed, you should be able to access http://your-amazon-ec2:8080/apollo-client and http://your-amazon-ec2:8080/erdas-apollo.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-2038953697789313474?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/2038953697789313474/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2010/04/installing-erdas-professional-2010-on.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/2038953697789313474'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/2038953697789313474'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2010/04/installing-erdas-professional-2010-on.html' title='Installing Erdas Professional 2010 on Amazon EC2'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-6350506405987076910</id><published>2010-03-18T02:48:00.001-07:00</published><updated>2010-03-18T02:48:58.598-07:00</updated><title type='text'>mod_wsgi + apache</title><content type='html'>mod_wsgi&lt;br /&gt;&lt;br /&gt;sudo vim /etc/sysconfig/apache2&lt;br /&gt;sudo /usr/sbin/rcapache2 restart&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-6350506405987076910?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/6350506405987076910/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2010/03/modwsgi-apache.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/6350506405987076910'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/6350506405987076910'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2010/03/modwsgi-apache.html' title='mod_wsgi + apache'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-3217759775282044924</id><published>2010-03-15T01:49:00.000-07:00</published><updated>2010-03-15T01:50:05.983-07:00</updated><title type='text'>Netstat + find process Id</title><content type='html'>Many a times you would get a "Bind Exception", "Address already in use" kind of errors and need to find the process that's using the port. For example say the port is 8080. The following command will get you the pid and program name as well.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;netstat -nlept | grep "8080"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The result might look something like this...&lt;br /&gt;&lt;br /&gt;&lt;span style="color: orange;"&gt;Proto Recv-Q Send-Q Local Address           Foreign Address         State       User       Inode       PID/Program name &lt;/span&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;tcp6   0           0          :::8080                        :::*                              LISTEN      1000       994652    4024/java &lt;/span&gt; &lt;br /&gt;Where 4024 is the pid and it's a java app.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-3217759775282044924?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/3217759775282044924/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2010/03/netstat-find-process-id.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/3217759775282044924'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/3217759775282044924'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2010/03/netstat-find-process-id.html' title='Netstat + find process Id'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-7172256954181734884</id><published>2010-03-12T01:36:00.000-08:00</published><updated>2010-03-12T01:41:51.431-08:00</updated><title type='text'>IBM Cloud</title><content type='html'>It looks like arbitraty ports are firewalled by IBM (other than port 80 and 22 and maybe some others), so when I wanted to connect to one of my machine in the IBM Cloud on port 18080 http for example, I have to setup a reverse proxy for it.&lt;br /&gt;&lt;br /&gt;&amp;lt;Proxy http://mywebsite:18080 &amp;gt;&lt;br /&gt;   Order deny,allow&lt;br /&gt;   Deny from all&lt;br /&gt;   Allow from 123.123.123.123&lt;br /&gt;&amp;lt;/Proxy&amp;gt;&lt;br /&gt;&lt;br /&gt;ProxyRequests Off&lt;br /&gt;ProxyPass / http://localhost:18080/&lt;br /&gt;ProxyPassReverse / http://localhost:18080/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-7172256954181734884?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/7172256954181734884/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2010/03/ibm-cloud.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/7172256954181734884'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/7172256954181734884'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2010/03/ibm-cloud.html' title='IBM Cloud'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-3832266068898628505</id><published>2010-03-07T20:19:00.000-08:00</published><updated>2010-03-07T20:24:22.849-08:00</updated><title type='text'>Javascript stop event bubbling and stop browser default action</title><content type='html'>// stop event bubbling&lt;br /&gt;function stopBubble(e) {&lt;br /&gt;   if( e &amp;amp;&amp;amp; e.stopPropagation ) {&lt;br /&gt;       e.stopPropagation();&lt;br /&gt;   } else {&lt;br /&gt;//IE&lt;br /&gt;window.event.cancleBubble = true;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// stop browser default action, i.e, clicking an html link will open up that link.&lt;br /&gt;function stopDefault(e) {&lt;br /&gt;     if( e &amp;amp;&amp;amp; e.preventDefault )&lt;br /&gt;//Other than IE&lt;br /&gt;         e.preventDefault();&lt;br /&gt;     else&lt;br /&gt;//IE&lt;br /&gt;         window.event.returnValue = false;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; function loadLi() {&lt;br /&gt;     var li = document.getElementsByTagName("li");&lt;br /&gt;     //alert(li.length);&lt;br /&gt;     for ( var i = 0; i &lt; li.length; i++ ) {&lt;br /&gt;         li[i].onmouseover = function() {&lt;br /&gt;             this.style.backgroundColor = 'blue';&lt;br /&gt;         };&lt;br /&gt;     &lt;br /&gt;         li[i].onmouseout = function() {&lt;br /&gt;             this.style.backgroundColor = 'white';&lt;br /&gt;         };&lt;br /&gt;     }&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; function loadAnchor() {&lt;br /&gt;     var anchor = document.getElementsByTagName("a");&lt;br /&gt;     for ( var i = 0; i &lt; anchor.length; i++ ) {&lt;br /&gt;     &lt;br /&gt;         anchor[i].onmouseover = function(e) {&lt;br /&gt;             this.style.backgroundColor = 'red';&lt;br /&gt;             stopBubble(e);&lt;br /&gt;         };&lt;br /&gt;     &lt;br /&gt;         anchor[i].onmouseout = function(e) {&lt;br /&gt;             this.style.backgroundColor = 'white';&lt;br /&gt;             stopBubble(e);&lt;br /&gt;         };&lt;br /&gt;     &lt;br /&gt;         anchor[i].onclick = function(e) {&lt;br /&gt;             iframe.src = this.href;&lt;br /&gt;             return stopDefault(e);&lt;br /&gt;         }&lt;br /&gt;     }&lt;br /&gt; }&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-3832266068898628505?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/3832266068898628505/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2010/03/javascript-stop-event-bubbling-and-stop.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/3832266068898628505'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/3832266068898628505'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2010/03/javascript-stop-event-bubbling-and-stop.html' title='Javascript stop event bubbling and stop browser default action'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-4780964901467065360</id><published>2010-03-07T07:13:00.000-08:00</published><updated>2010-03-07T07:17:01.734-08:00</updated><title type='text'>Spring Framework + RMI + JBoss</title><content type='html'>Use RMI port 1199 (other than the default port 1099, JBoss RMI) with org.springframework.remoting.rmi.RmiServiceExporter.&lt;br /&gt;&lt;br /&gt;&amp;lt;bean id=&amp;quot;escortLocationService&amp;quot; class=&amp;quot;com.don.remoting.EscortLocationServiceImpl&amp;quot; &amp;gt;&lt;br /&gt; &amp;lt;/bean&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;bean id=&amp;quot;rmi&amp;quot; class=&amp;quot;org.springframework.remoting.rmi.RmiServiceExporter&amp;quot; &amp;gt;&lt;br /&gt;     &amp;lt;property name=&amp;quot;service&amp;quot; ref=&amp;quot;escortLocationService&amp;quot; /&amp;gt;&lt;br /&gt;     &amp;lt;property name=&amp;quot;serviceName&amp;quot; value=&amp;quot;EscortLocationService&amp;quot; /&amp;gt;&lt;br /&gt;     &amp;lt;property name=&amp;quot;serviceInterface&amp;quot; value=&amp;quot;com.don.remoting.EscortLocationService&amp;quot; /&amp;gt;&lt;br /&gt;     &amp;lt;property name=&amp;quot;registryPort&amp;quot; value=&amp;quot;1199&amp;quot;/&amp;gt;&lt;br /&gt; &amp;lt;/bean&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;bean id=&amp;quot;escortLocationServiceClient&amp;quot; class=&amp;quot;org.springframework.remoting.rmi.RmiProxyFactoryBean&amp;quot;&amp;gt;&lt;br /&gt;     &amp;lt;property name=&amp;quot;serviceUrl&amp;quot; value=&amp;quot;rmi://127.0.0.1:1199/EscortLocationService&amp;quot; /&amp;gt;&lt;br /&gt;     &amp;lt;property name=&amp;quot;serviceInterface&amp;quot; value=&amp;quot;com.don.remoting.EscortLocationService&amp;quot; /&amp;gt;&lt;br /&gt; &amp;lt;/bean&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;bean id=&amp;quot;escortLocationClient&amp;quot; class=&amp;quot;com.don.remoting.EscortLocationClient&amp;quot; &amp;gt;&lt;br /&gt;     &amp;lt;property name=&amp;quot;escortLocationService&amp;quot; ref=&amp;quot;escortLocationServiceClient&amp;quot; /&amp;gt;&lt;br /&gt; &amp;lt;/bean&amp;gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-4780964901467065360?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/4780964901467065360/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2010/03/spring-framework-rmi-jboss.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/4780964901467065360'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/4780964901467065360'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2010/03/spring-framework-rmi-jboss.html' title='Spring Framework + RMI + JBoss'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-1266973549298368920</id><published>2010-03-05T00:57:00.000-08:00</published><updated>2010-03-05T01:06:13.399-08:00</updated><title type='text'>Oracle multiple case select statement</title><content type='html'>In a table, I have 3 columns (checkbox1, checkbox2, checkbox3) representing values about "Where does the knowledge come from?".&lt;br /&gt;if checkbox1 == 1, that means the knowledge comes from "My_Course",&lt;br /&gt;checkbox2 -&gt; Internet,&lt;br /&gt;checkbox3 -&gt; Staff.&lt;br /&gt;&lt;br /&gt;if the checkbox1,2,3  == 0, then it's empty string.&lt;br /&gt;&lt;br /&gt;Basically I want to concatenate values from multiple columns into one value "Know_from_where":&lt;br /&gt;&lt;br /&gt;select student_type,&lt;br /&gt;(case checkbox1&lt;br /&gt; when 1 then 'My_Course, '&lt;br /&gt; when 0 then '' end )  ||&lt;br /&gt;(case checkbox2&lt;br /&gt; when 1 then 'Internet, '&lt;br /&gt; when 0 then ''&lt;br /&gt; end ) ||&lt;br /&gt;(case checkbox3&lt;br /&gt; when 1 then 'Staff, '&lt;br /&gt; when 0 then '' end ) Know_From_Where&lt;br /&gt;from infolit&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-1266973549298368920?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/1266973549298368920/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2010/03/oracle-multiple-case-select-statement.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/1266973549298368920'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/1266973549298368920'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2010/03/oracle-multiple-case-select-statement.html' title='Oracle multiple case select statement'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-8460703855173462305</id><published>2010-03-03T18:19:00.000-08:00</published><updated>2010-03-03T18:29:29.789-08:00</updated><title type='text'>springsource tool suite oracle jdbc driver + maven2 depend</title><content type='html'>&lt;repository&gt;&lt;pre&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;repository&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;id&amp;gt;repo1 maven org&amp;lt;/id&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;name&amp;gt;repo1 maven org&amp;lt;/name&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;url&amp;gt;http://repo1.maven.org/maven2&amp;lt;/url&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/repository&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;dependency&amp;gt;&lt;br /&gt;&lt;br /&gt;      &amp;lt;groupid&amp;gt;ojdbc&amp;lt;/groupid&amp;gt;&lt;br /&gt;&lt;br /&gt;          &amp;lt;artifactid&amp;gt;ojdbc&amp;lt;/artifactid&amp;gt;&lt;br /&gt;&lt;br /&gt;          &amp;lt;version&amp;gt;14&amp;lt;/version&amp;gt;&lt;br /&gt;&lt;br /&gt;      &amp;lt;/dependency&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;dependency&gt;&lt;version&gt;&lt;/version&gt;&lt;br /&gt;    &lt;/dependency&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Then you have to download ojdbc14.jar from oracle website (or wherever) and do:&lt;br /&gt;mvn install:install-file -DgroupId=ojdbc -DartifactId=ojdbc -Dversion=14 -Dpackaging=jar -Dfile=/path/to/ojdbc14.jar&lt;br /&gt;&lt;br /&gt;Xml re-generated using http://www.simplebits.com/cgi-bin/simplecode.pl?mode=process&lt;br /&gt;&lt;/repository&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-8460703855173462305?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/8460703855173462305/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2010/03/springsource-tool-suite-oracle-jdbc.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/8460703855173462305'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/8460703855173462305'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2010/03/springsource-tool-suite-oracle-jdbc.html' title='springsource tool suite oracle jdbc driver + maven2 depend'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-2606795162665815199</id><published>2009-06-12T22:25:00.000-07:00</published><updated>2009-06-12T22:27:20.730-07:00</updated><title type='text'>setting up hive + hadoop 0.20.0</title><content type='html'>Some errors:&lt;br /&gt;I got FAILED: Unknown exception : Wrong FS: hdfs://10.1.1.x:9000/tmp/hive-hadoop/1201106067, expected: hdfs://slave:9000,&lt;br /&gt;the solution: modify hadoop/conf/slaves to have the ip address 10.1.1.x (previously it was localhost&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-2606795162665815199?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/2606795162665815199/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2009/06/setting-up-hive-hadoop-0200.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/2606795162665815199'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/2606795162665815199'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2009/06/setting-up-hive-hadoop-0200.html' title='setting up hive + hadoop 0.20.0'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-5531162106613085704</id><published>2009-06-12T07:29:00.000-07:00</published><updated>2009-06-12T07:32:15.749-07:00</updated><title type='text'>Curtin v1.0</title><content type='html'>- Facilitate an online forum for each class, where materials are shared, students can discuss problems, give reviews, see photos..and the forum can be accessed from facebook? so starting small by doing what?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-5531162106613085704?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/5531162106613085704/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2009/06/curtin-v10.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/5531162106613085704'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/5531162106613085704'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2009/06/curtin-v10.html' title='Curtin v1.0'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-9070176640538512426</id><published>2009-05-30T10:58:00.000-07:00</published><updated>2009-05-30T11:00:18.400-07:00</updated><title type='text'>Most of my stuffs are in Diigo</title><content type='html'>Most of the stuffs (technical) that I encountered are now bookmarked in http://www.diigo.com/dashboard/dondonakal&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-9070176640538512426?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/9070176640538512426/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2009/05/most-of-my-stuffs-are-in-diigo.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/9070176640538512426'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/9070176640538512426'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2009/05/most-of-my-stuffs-are-in-diigo.html' title='Most of my stuffs are in Diigo'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-1094761352075435000</id><published>2009-05-30T10:42:00.001-07:00</published><updated>2009-05-30T11:03:18.616-07:00</updated><title type='text'>Web 2.1 ??</title><content type='html'>Watched some good videos about google wave (from google io 2009), and also a video about the history of how the web evolved until now..&lt;br /&gt;Just been thinking if it is possible to create a distributed version control over all the contents (at least the public ones) of the internet?&lt;br /&gt;If the companies out there just somehow stores every version of their websites, so we (as internet users) do not need to worry about stale links anymore as the company stores it along with the new pages..&lt;br /&gt;&lt;br /&gt;if the company goes down, then maybe it can submit the contents (public ones) to a public server maybe ??&lt;br /&gt;&lt;br /&gt;problems: copyright..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-1094761352075435000?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/1094761352075435000/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2009/05/web-21.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/1094761352075435000'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/1094761352075435000'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2009/05/web-21.html' title='Web 2.1 ??'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-8236015331571082439</id><published>2009-05-18T07:52:00.000-07:00</published><updated>2009-05-18T07:55:25.995-07:00</updated><title type='text'>Some improvements of web2.0?</title><content type='html'>Some improvements of web2.0? &lt;br /&gt;&lt;br /&gt;It would be nice if we can somehow add sticky notes to video??And also if there is a website that can process other websites, simplify their layouts so the end users are not trapped within a complex UI...i.e. www.curtin.edu.au I am at lost when navigating the website..a quick look of it will scare me of not finding what i want.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-8236015331571082439?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/8236015331571082439/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2009/05/some-improvements-of-web20.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/8236015331571082439'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/8236015331571082439'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2009/05/some-improvements-of-web20.html' title='Some improvements of web2.0?'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-2638992875230802426</id><published>2009-05-15T21:28:00.000-07:00</published><updated>2009-05-15T21:29:26.741-07:00</updated><title type='text'>Mahout Hadoop</title><content type='html'>Java regex to strip all non-alphanumeric chars&lt;br /&gt;word = word.replaceAll("\\W", "");&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-2638992875230802426?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/2638992875230802426/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2009/05/mahout-hadoop.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/2638992875230802426'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/2638992875230802426'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2009/05/mahout-hadoop.html' title='Mahout Hadoop'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-8705377731939348818</id><published>2009-05-09T08:28:00.001-07:00</published><updated>2009-05-09T08:36:38.105-07:00</updated><title type='text'>TortoiseHG explorer menu doesnt work in XP64</title><content type='html'>use 32bits explorer instead: (and then you can see the context menu)&lt;br /&gt;'%windir%\syswow64\explorer.exe /separate&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-8705377731939348818?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/8705377731939348818/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2009/05/tortoisehg-explorer-menu-doesnt-work-in_09.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/8705377731939348818'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/8705377731939348818'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2009/05/tortoisehg-explorer-menu-doesnt-work-in_09.html' title='TortoiseHG explorer menu doesnt work in XP64'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-6505298500025793773</id><published>2009-05-09T08:28:00.000-07:00</published><updated>2009-05-09T08:31:20.728-07:00</updated><title type='text'>TortoiseHG explorer menu doesnt work in XP64</title><content type='html'>use 32bits explorer instead: (and then you can see the context menu)&lt;br /&gt;'%windir%\syswow64\explorer.exe /separate&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-6505298500025793773?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/6505298500025793773/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2009/05/tortoisehg-explorer-menu-doesnt-work-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/6505298500025793773'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/6505298500025793773'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2009/05/tortoisehg-explorer-menu-doesnt-work-in.html' title='TortoiseHG explorer menu doesnt work in XP64'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-1054734583532495925</id><published>2009-05-07T20:11:00.000-07:00</published><updated>2009-05-07T20:13:38.644-07:00</updated><title type='text'>IPhone mobile terminalhttp://code.google.com/p/mobileterminal/wiki/TipsAndTricks</title><content type='html'>This article is obtained from http://code.google.com/p/mobileterminal/wiki/TipsAndTricks&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;Updated Aug 16, 2008 by catfacts3192&lt;br /&gt;Labels:  Featured&lt;br /&gt;TipsAndTricks  &lt;br /&gt;Tips and Tricks for working with Mobile Terminal.&lt;br /&gt;Introduction&lt;br /&gt;&lt;br /&gt;This page is a collection of tips and tricks that people have found useful. Please feel free to leave your own in the comments, but put feature requests in the Issues section.&lt;br /&gt;Tips&lt;br /&gt;Hide the Keyboard&lt;br /&gt;&lt;br /&gt;Tap twice quickly on the screen to hide the keyboard. Repeat to bring it back.&lt;br /&gt;Control Characters&lt;br /&gt;&lt;br /&gt;You can send a control-C by pressing the "bullet" key (First press ".?123", then "#+=", then the circle on the middle right), then press the C key. This can be useful when you want to escape out of a long running program such as ping. Control-C can also be accessed with a short Up-Right and Control is a short Down-Right swipe, after which the cursor will turn highlight red, from here press any character q, x, c, A to complete or the delete button to exit Control mode.&lt;br /&gt;&lt;br /&gt;Escape is control-[ or a short Up-Left swip, which may come in handy with vi. Tab is control-I or a short Down-Left swip (yay tab completion).&lt;br /&gt;Swipe Controls&lt;br /&gt;&lt;br /&gt;Swipe Type  Direction  Action&lt;br /&gt;Short  Up-Right  Control-C&lt;br /&gt;Short  Down-Right  Control-&lt;br /&gt;Short  Up-Left  Esc&lt;br /&gt;Short  Down-Left  Tab&lt;br /&gt;Short  up/down/left/right  arrow keys (respectively)&lt;br /&gt;Long  Up  None (functions as up-arrow)&lt;br /&gt;Long  Down  Enter&lt;br /&gt;Long  Left  None&lt;br /&gt;Long  Right  None&lt;br /&gt;Two Finger  Up  Config&lt;br /&gt;Two Finger  Down  Hide Keyboard&lt;br /&gt;Two Finger  Left  Page-Up/Next&lt;br /&gt;Two Finger  Right  Page-Down/PREV&lt;br /&gt;&lt;br /&gt;None of the Two Finger Swipes seem to work right in 2.0 firmware&lt;br /&gt;Multiple Terminals&lt;br /&gt;&lt;br /&gt;Terminal comes with four terminal windows. Tap on the battery icon to go right, tap directally on the time to go left, and tap on the carrier name (AT&amp;T or iPod) to crash Terminal (or do a really quick killall Terminal depending on how you look at it).&lt;br /&gt;Things to do with your terminal&lt;br /&gt;&lt;br /&gt;While this is in no way a full how-to for UNIX systems, these are some of the commands that you may find useful for your Terminal.&lt;br /&gt;Copy&lt;br /&gt;&lt;br /&gt;Usage:&lt;br /&gt;&lt;br /&gt;1. cp file /&lt;br /&gt;2. cp -r folder /&lt;br /&gt;3. cp folder /&lt;br /&gt;4. cp -r /folder .&lt;br /&gt;5. cp /file ..&lt;br /&gt;&lt;br /&gt;   1. Copies file from the current directory to / the root directory &lt;br /&gt;&lt;br /&gt;Command  cp&lt;br /&gt;Common Flags  -r&lt;br /&gt;# Copies the folder "folder" and its subdirectories and files to the root&lt;br /&gt;# Copies the folder "folder" to the root, without its subdirectories&lt;br /&gt;# copies /folder to current directory ( . stands for current directory )&lt;br /&gt;# copies /file to the directory above the current ( .. stands for the directory above this )&lt;br /&gt;Delete&lt;br /&gt;&lt;br /&gt;Usage:&lt;br /&gt;&lt;br /&gt;1. rm file&lt;br /&gt;2. rm -fr folder&lt;br /&gt;3. rm -r non-empty-folder&lt;br /&gt;4. rm -r empty-folder&lt;br /&gt;&lt;br /&gt;   1. removes file completely (there is no trash, files deleted with rm are GONE) &lt;br /&gt;&lt;br /&gt;Command  rm&lt;br /&gt;Common Flags  -f -r&lt;br /&gt;# removes folder and its contents recursivly&lt;br /&gt;# this will fail, if a folder has contents you must use -f&lt;br /&gt;# this is fine, it will remove empty-folder&lt;br /&gt;Free Space&lt;br /&gt;&lt;br /&gt;Usage:&lt;br /&gt;&lt;br /&gt;1. df&lt;br /&gt;2. df -h&lt;br /&gt;&lt;br /&gt;   1. This will output ... &lt;br /&gt;&lt;br /&gt;Command  df&lt;br /&gt;Common Flags  -h&lt;br /&gt;&lt;br /&gt;Filesystem           1K-blocks      Used Available Use% Mounted on&lt;br /&gt;/dev/disk0s1           2048000    465184   1562336  23% /&lt;br /&gt;devfs                       18        18         0 100% /dev&lt;br /&gt;/dev/disk0s2          13811364   9972572   3838792  73% /private/var&lt;br /&gt;&lt;br /&gt;# This will output ... (-h is for Human-Readable)&lt;br /&gt;&lt;br /&gt;Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;/dev/disk0s1          2.0G  455M  1.5G  23% /&lt;br /&gt;devfs                  18K   18K     0 100% /dev&lt;br /&gt;/dev/disk0s2           14G  9.6G  3.7G  73% /private/var&lt;br /&gt;&lt;br /&gt;Make Folder&lt;br /&gt;&lt;br /&gt;Usage:&lt;br /&gt;&lt;br /&gt;1. mkdir my-dir&lt;br /&gt;2. mkdir my dir&lt;br /&gt;3. mkdir my\ dir - or - mkdir "my dir"&lt;br /&gt;4. mkdir /mydir&lt;br /&gt;5. mkdir ~/myowndir&lt;br /&gt;&lt;br /&gt;   1. makes the directory my-dir &lt;br /&gt;&lt;br /&gt;Command  mkdir&lt;br /&gt;Common Flags  none&lt;br /&gt;# makes the directories my and dir&lt;br /&gt;# makes the directory "my dir" with a space&lt;br /&gt;# makes the directory mydir below the root&lt;br /&gt;# makes the directory myowndir inside your home folder&lt;br /&gt;&lt;br /&gt;(root home folder is /private/var/root, mobile is /private/var/mobile)&lt;br /&gt;Move About&lt;br /&gt;&lt;br /&gt;Usage:&lt;br /&gt;&lt;br /&gt;1. cd&lt;br /&gt;2. cd ~&lt;br /&gt;3. cd /&lt;br /&gt;4. cd ..&lt;br /&gt;5. cd adir&lt;br /&gt;6. cd /mydir&lt;br /&gt;&lt;br /&gt;   1. goes to your home directory &lt;br /&gt;&lt;br /&gt;Command  cd&lt;br /&gt;Common Flags  none&lt;br /&gt;# same as cd&lt;br /&gt;# goes to the root&lt;br /&gt;# goes up one directory&lt;br /&gt;# goes to adir (if it exists)&lt;br /&gt;# goes to /mydir&lt;br /&gt;Direct Output&lt;br /&gt;&lt;br /&gt;Usage:&lt;br /&gt;&lt;br /&gt;1. ping yahoo.com &gt;output.txt&lt;br /&gt;2. df -h &gt;freespace&lt;br /&gt;3. echo "hello world" &gt;hello_world.txt&lt;br /&gt;4. ls -R / &gt;/dev/null&lt;br /&gt;&lt;br /&gt;   1. puts the output of the ping command into a txt file &lt;br /&gt;&lt;br /&gt;Command  * &gt;*.*&lt;br /&gt;# put the output of "df -h" into freespace&lt;br /&gt;# puts "hello world" into hello_world.txt&lt;br /&gt;# runs the command "ls -R /" (careful thats a lot of output) but doesn't do anything with the output&lt;br /&gt;Background Processes&lt;br /&gt;&lt;br /&gt;Usage:&lt;br /&gt;&lt;br /&gt;1. killall SpringBoard &amp;&lt;br /&gt;2. killall SpringBoard &gt;/dev/null &amp;&lt;br /&gt;&lt;br /&gt;   1. runs the command in the background &lt;br /&gt;&lt;br /&gt;Command  * &amp;&lt;br /&gt;# runs the command in the background and hides the output&lt;br /&gt;Common unix binaries&lt;br /&gt;&lt;br /&gt;Get the latest iphone-binkit from http://iphone.natetrue.com which contains lots of useful unix binaries. Also there ssh, apache, python, ruby. Join #iphone-shell on irc.osx86.hu for more discussion.&lt;br /&gt;&lt;br /&gt;For some tips on setting up and using sshd and an ssh client see:&lt;br /&gt;&lt;br /&gt;http://www.thebends.org/~allen/code/iphone-apps/binary/openssh-4.6p1/README&lt;br /&gt;&lt;br /&gt;Binary packages: http://www.thebends.org/~allen/code/iphone-apps/binary/openssh-4.6p1-iphone-binary.tar.gz&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-1054734583532495925?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/1054734583532495925/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2009/05/iphone-mobile-terminalhttpcodegooglecom.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/1054734583532495925'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/1054734583532495925'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2009/05/iphone-mobile-terminalhttpcodegooglecom.html' title='IPhone mobile terminalhttp://code.google.com/p/mobileterminal/wiki/TipsAndTricks'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-4741623478835773122</id><published>2009-05-07T19:43:00.000-07:00</published><updated>2009-05-07T19:45:21.741-07:00</updated><title type='text'>Mobile Browser + Access Keys</title><content type='html'>Access Keys is just a shortcut for some commands that you can execute by pressing a combination of keys on the keyboard.&lt;br /&gt;&lt;br /&gt;Depending on your browser, you should&lt;br /&gt;&lt;br /&gt;    * Mozilla Firefox 1.5: hold Alt, press access key&lt;br /&gt;    * Mozilla Firefox 2, 3 on Windows and Linux: hold Alt-Shift, press access key&lt;br /&gt;          o Mozilla Firefox on Mac OS X: hold Ctrl, press access key&lt;br /&gt;    * Internet Explorer 6: hold Alt, press access key&lt;br /&gt;    * Internet Explorer 7: hold Alt-Shift, press access key&lt;br /&gt;    * Opera (all platforms): press Shift-Esc, then press access key (Shift-Esc will display the list of choices)&lt;br /&gt;    * Google Chrome: hold Alt, press access key&lt;br /&gt;    * Safari: hold Ctrl-Alt, press access key&lt;br /&gt;&lt;br /&gt;See access keys for more information on this concept.&lt;br /&gt;This is helpful to navigate the site for people with disabilities.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-4741623478835773122?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/4741623478835773122/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2009/05/mobile-browser-access-keys.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/4741623478835773122'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/4741623478835773122'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2009/05/mobile-browser-access-keys.html' title='Mobile Browser + Access Keys'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-4903394171199146436</id><published>2009-05-07T01:12:00.000-07:00</published><updated>2009-05-07T01:15:14.925-07:00</updated><title type='text'>XAMPP allows user</title><content type='html'>in apache/conf/extra/httpd-xampp.conf&lt;br /&gt; where the directory is : xampp/security/htdocs&lt;br /&gt; - Allow from ip address&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-4903394171199146436?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/4903394171199146436/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2009/05/xampp-allows-user.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/4903394171199146436'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/4903394171199146436'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2009/05/xampp-allows-user.html' title='XAMPP allows user'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-6823713931614014387</id><published>2009-05-06T23:56:00.000-07:00</published><updated>2009-05-07T00:02:13.049-07:00</updated><title type='text'>Enabling b2evolution file:// uri</title><content type='html'>1. add 'file' into the $allowed_uri_scheme array&lt;br /&gt;2. This only works with IE, not FF atm.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-6823713931614014387?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/6823713931614014387/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2009/05/enabling-b2evolution-file-uri.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/6823713931614014387'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/6823713931614014387'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2009/05/enabling-b2evolution-file-uri.html' title='Enabling b2evolution file:// uri'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-3488890357418976869</id><published>2009-05-05T19:50:00.000-07:00</published><updated>2009-05-06T23:55:27.303-07:00</updated><title type='text'>Mercurial HG + Tortoise HG + Putty + PuttyLink</title><content type='html'>Problem cloning HG repo when it is copied from Windows to linux and they have different version:&lt;br /&gt;1. Have a look at .hg\requires file and maybe delete the line that has fncache&lt;br /&gt;2. Try cloning it again hg clone ssh://user@host//path&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-3488890357418976869?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/3488890357418976869/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2009/05/mercurial-hg-tortoise-hg-putty.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/3488890357418976869'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/3488890357418976869'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2009/05/mercurial-hg-tortoise-hg-putty.html' title='Mercurial HG + Tortoise HG + Putty + PuttyLink'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-4837827233812754728</id><published>2009-04-30T23:19:00.000-07:00</published><updated>2009-05-06T01:06:39.758-07:00</updated><title type='text'>Javac stuffs + WinSCP</title><content type='html'>javac -classpath ..\..\..\mysql-connector-java-5.0.5-bin.jar myfile.java&lt;br /&gt;&lt;br /&gt;cmd /c fc "!" "!^!" | more &amp;&amp; pause&lt;br /&gt;&lt;br /&gt;B2Evolution:&lt;br /&gt;&lt;br /&gt;The latest B2Evolution 3.1.0 beta:&lt;br /&gt;- easy to manage the widgets in Blog Settings, can add/remove/reposition/edit the widget.&lt;br /&gt;Edit the widget -&gt; change the text etc&lt;br /&gt;and you can also edit the index.main.php to have what you want.&lt;br /&gt;&lt;br /&gt;Doco for skins 2.0 =&gt; http://manual.b2evolution.net/Skins_2.0&lt;br /&gt;&lt;br /&gt;- i just created a new custom skin, basically copy and paste from custom skin&lt;br /&gt;&lt;br /&gt;usermod -G group userid&lt;br /&gt;groups&lt;br /&gt;hg clone ssh://userid@server//path/to/app dirToSave&lt;br /&gt;&lt;br /&gt;Putty Tips&lt;br /&gt;&gt; Every time I accidentally press Ctrl+s in Putty when connected to any=20&lt;br /&gt;&gt; Linux box via ssh, my session stops responding. How do I restore it?&lt;br /&gt;Try ctrl-q.  If I remember correctly, this is leftover from the old days&lt;br /&gt;when a dumb terminal would send a ctrl-s character if it was receiving&lt;br /&gt;data faster than it could display it, and then send a ctrl-q when it&lt;br /&gt;could handle it again.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-4837827233812754728?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/4837827233812754728/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2009/04/javac-stuffs.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/4837827233812754728'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/4837827233812754728'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2009/04/javac-stuffs.html' title='Javac stuffs + WinSCP'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-798064310103025385</id><published>2009-04-30T20:20:00.000-07:00</published><updated>2009-04-30T20:54:15.147-07:00</updated><title type='text'>b2evolution upgrade to 2.4.5 + mysql bak</title><content type='html'>Backup your database:&lt;br /&gt;mysqldump -umyname -p b2evolution &gt; dumpfile.sql&lt;br /&gt;&lt;br /&gt;Backup your b2evolution folder, copy and paste should be ok.&lt;br /&gt;&lt;br /&gt;Then: from /b2evolution/doc/upgradefrom_b2evo.html&lt;br /&gt;&lt;br /&gt;Upgrading from a previous version of b2evolution&lt;br /&gt;&lt;br /&gt;Before you begin, please note that some network features of b2evolution require you to agree our simple Terms of service.&lt;br /&gt;&lt;br /&gt;   1. Backup all your b2evolution files. Take special care of the files you may have modified, including /conf, /skins, /plugins, your /media directory and possibly stubfiles, hacks or custom templates...&lt;br /&gt;   2. You should also backup your database if you can. This functionality should be provided by your host.&lt;br /&gt;   3. If you are upgrading from a version prior to 2.0, we highly recommend you clean up outdated files. To achieve this, delete your b2evolution folders except /media. Folders to delete include /admin, /conf, /cron, /htsrv, /inc, /install, /plugins, /skins, /skins_adm, /xmlsrv. Depending on your version, you may not have all of these folders on your server. Also, again, make sure you have a backup before deleting.&lt;br /&gt;   4. Upload all new b2evolution files from the /blogs folder to your site. We cannot stress this enough: ALL FILES! And that means you cannot reuse your /conf files, default skin templates or default plugins as they are.&lt;br /&gt;&lt;br /&gt;      Since your custom skins and custom plugins should be using different names, they will not be overwritten. Same for your media files.&lt;br /&gt;&lt;br /&gt;      The one file you must absolutely restore from your backup (see step 1) though is /blogs/conf/_basic_config.php. You will need to either restore or recreate that file in order to proceed with upgrade.&lt;br /&gt;   5. Run the installation/upgrade script on your server. It is located in http://yoursite.com/yourblogsfolder/install/ . Then, simply follow the on screen instructions.&lt;br /&gt;&lt;br /&gt;      The installer/upgrader will allow you to run a database upgrade from any b2evolution version to the new one.&lt;br /&gt;   6. Check to make sure the new installation works.&lt;br /&gt;   7. Check the online manual for specific upgrade instructions to your new version of b2evolution.&lt;br /&gt;   8. On production servers, it is recommended that you delete the /install subfolder.&lt;br /&gt;   9. If you had hacks or other customizations to the core files, your can bring those back now. We recommend you get yourself a diff/merge tool like WinMerge. This will allow you to easily compare your old (backuped) files with the new files (even whole directories at once) and report changes accordingly.&lt;br /&gt;&lt;br /&gt;The next step is to upgrade the skins..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-798064310103025385?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/798064310103025385/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2009/04/b2evolution-upgrade-to-245-mysql-bak.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/798064310103025385'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/798064310103025385'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2009/04/b2evolution-upgrade-to-245-mysql-bak.html' title='b2evolution upgrade to 2.4.5 + mysql bak'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-6922597062025065438</id><published>2009-04-29T20:13:00.000-07:00</published><updated>2009-04-30T01:19:32.362-07:00</updated><title type='text'>Solaris SunOs</title><content type='html'>Few important directories&lt;br /&gt;- /etc/sudoers&lt;br /&gt;- /etc/local/samba/lib/smb.conf&lt;br /&gt;&lt;br /&gt;Find text in files:&lt;br /&gt;find /directoryToFind -type f  -exec grep Thankyou {} \;&lt;br /&gt;grep -lir "Support Request and Feedback Form" *&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-6922597062025065438?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/6922597062025065438/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2009/04/solaris-sunos.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/6922597062025065438'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/6922597062025065438'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2009/04/solaris-sunos.html' title='Solaris SunOs'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-3688829234819216318</id><published>2009-04-29T09:47:00.000-07:00</published><updated>2009-04-29T09:59:56.959-07:00</updated><title type='text'>ORCA is LIVE</title><content type='html'>ORCA is finally live!!&lt;br /&gt;http://www.orcacard.com/ERG-Seattle/p1_001.do&lt;br /&gt;After years of waiting, finally the Seattle community can buy smartcards to be used in the public transport system from www.orcacard.com&lt;br /&gt;You can buy cards, register them, add products into the cards, configure autoloads and so on.&lt;br /&gt;This is also a huge accomplishment for ERG, the software provider.&lt;br /&gt;&lt;br /&gt;orcacard is one of the two public websites, where the other one is for the institutions like Boeing and Microsoft.&lt;br /&gt;&lt;br /&gt;Another two websites are private, they are for the agencies and call-center.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-3688829234819216318?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/3688829234819216318/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2009/04/orca-is-live.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/3688829234819216318'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/3688829234819216318'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2009/04/orca-is-live.html' title='ORCA is LIVE'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-1456474253334299055</id><published>2009-04-29T08:02:00.000-07:00</published><updated>2009-04-29T08:05:45.938-07:00</updated><title type='text'>b2evolution</title><content type='html'>I am trying to fix problem on b2evolution 1.9.3 where the admin user cannot review a new post.&lt;br /&gt;&lt;br /&gt;scenario:&lt;br /&gt;1. Write a new post,&lt;br /&gt;2. Then click review.&lt;br /&gt;&lt;br /&gt;Instead of showing the review, it will return to the blog, as if I click "Exit to blog" link.&lt;br /&gt;&lt;br /&gt;There are about 6 blogs in the same domain and only one has this problem.&lt;br /&gt;This happens every time I try to login as admin where the path to index php not does have the blog id as parameter, i.e.&lt;br /&gt;it works if I login like this www.mysite.com/blogs/admin.php,&lt;br /&gt;&lt;br /&gt;but it does NOT work if I do this (clicking the login button) www.mysite.com/blogs/employee/index.php?blogID=3&lt;br /&gt;&lt;br /&gt;Still trying to fix this problem&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-1456474253334299055?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/1456474253334299055/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2009/04/b2evolution.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/1456474253334299055'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/1456474253334299055'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2009/04/b2evolution.html' title='b2evolution'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-4386002383590838996</id><published>2009-04-27T22:00:00.000-07:00</published><updated>2009-04-27T22:20:09.590-07:00</updated><title type='text'>Internet explorer does not display *.ico file</title><content type='html'>internet explorer does not display *.ico file when it is not in the correct icon format (png, jpg, gif, etc, read &lt;a href="http://www.gtalbot.org/BrowserBugsSection/MSIE7Bugs/"&gt;http://www.gtalbot.org/BrowserBugsSection/MSIE7Bugs/&lt;/a&gt; and &lt;a href="http://blogs.msdn.com/jeffdav/archive/2007/03/01/why-doesn-t-the-favicon-for-my-site-appear-in-ie7.aspx"&gt;http://blogs.msdn.com/jeffdav/archive/2007/03/01/why-doesn-t-the-favicon-for-my-site-appear-in-ie7.aspx&lt;/a&gt; ).&lt;br /&gt;&lt;br /&gt;It has to be in the proper ico file, so you can use free icon editor such as IconFx http://icofx.ro/ to edit your icon file and save it as proper *.ico (16x16).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-4386002383590838996?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/4386002383590838996/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2009/04/internet-explorer-does-not-display-ico.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/4386002383590838996'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/4386002383590838996'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2009/04/internet-explorer-does-not-display-ico.html' title='Internet explorer does not display *.ico file'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-5872624921164966630</id><published>2009-04-24T01:57:00.000-07:00</published><updated>2009-04-24T02:03:24.664-07:00</updated><title type='text'>Using IETester to simulate IE5.5, 6, 7, 8</title><content type='html'>I used IETester to simulate IE5.5, 6, 7, 8 java script engine, to prove that an issue originated from the usage of IE8.&lt;br /&gt;IETester is quite easy to use, altough I don't know where to setup the compatibilty option &lt;strong&gt;(Tools &gt; Compatibility View Settings in IE8)..&lt;/strong&gt;&lt;br /&gt;http://www.my-debugbar.com/wiki/IETester/HomePage&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-5872624921164966630?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/5872624921164966630/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2009/04/using-ietester-to-simulate-ie55-6-7-8.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/5872624921164966630'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/5872624921164966630'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2009/04/using-ietester-to-simulate-ie55-6-7-8.html' title='Using IETester to simulate IE5.5, 6, 7, 8'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-3306068774592605667</id><published>2009-04-21T04:19:00.000-07:00</published><updated>2009-04-21T04:21:59.808-07:00</updated><title type='text'>Firefox save webpage as maff or mht</title><content type='html'>With 2 firefox add-ons, we can save a webpage as a single compressed file MozillaCompressedFile(https://addons.mozilla.org/en-US/firefox/addon/212) or MHT (https://addons.mozilla.org/en-US/firefox/addons/policy/0/8051/48485)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-3306068774592605667?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/3306068774592605667/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2009/04/firefox-save-webpage-as-maff-or-mht.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/3306068774592605667'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/3306068774592605667'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2009/04/firefox-save-webpage-as-maff-or-mht.html' title='Firefox save webpage as maff or mht'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-4398788691266611454</id><published>2009-04-20T07:14:00.000-07:00</published><updated>2009-04-20T07:26:02.069-07:00</updated><title type='text'>ubuntu linux server/desktop + nfs</title><content type='html'>Trying to configure nfs to work between linux ubuntu desktop and linux ubuntu server turned out to be quite hard..&lt;br /&gt;&lt;br /&gt;nfs server side:&lt;br /&gt;1. install nfs-common&lt;br /&gt;&lt;code&gt;  sudo aptitude -P install nfs-kernel-server nfs-common portmap&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;2. add some directories to be exported&lt;code&gt;&lt;br /&gt;sudo vi /etc/exports&lt;br /&gt;/tempshare ip-add-client&lt;br /&gt;where ip-add-client is the host that is allowed to access the nfs&lt;br /&gt;&lt;br /&gt;3. add ip-add-client entries into hosts.allow&lt;br /&gt;    &lt;/code&gt;portmap: &lt;code&gt;ip-add-client&lt;/code&gt;&lt;br /&gt;        mountd: &lt;code&gt;ip-add-client&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;4. sudo exportfs -a&lt;br /&gt;&lt;br /&gt;5. if it doesnt work later, restart the server&lt;br /&gt;&lt;br /&gt;nfs client side:&lt;br /&gt;1. install nfs-common &lt;/code&gt;&lt;code&gt;&lt;br /&gt;sudo aptitude -P install nfs-kernel-server nfs-common portmap&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;2. sudo mount.nfs ip-add-server:/shared_dir mount_dir&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-4398788691266611454?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/4398788691266611454/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2009/04/ubuntu-linux-serverdesktop-nfs.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/4398788691266611454'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/4398788691266611454'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2009/04/ubuntu-linux-serverdesktop-nfs.html' title='ubuntu linux server/desktop + nfs'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-799300748971258367</id><published>2009-04-13T02:16:00.000-07:00</published><updated>2009-04-13T02:35:41.134-07:00</updated><title type='text'>New software</title><content type='html'>&lt;p&gt;I am surprised to find out how easy it is to browse the web using Opera browser. You can easily navigate through the links using Shift-Up/Right/Down/Left. &lt;/p&gt;&lt;p&gt;And if you minimize the browser, it trims its memory usage way down (typical of .Net WinForm application). I am not aware if this behaviour is available in Firefox or Google Chrome. &lt;/p&gt;&lt;p&gt;Now I can surf the internet without touching my mice at all!!&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Also I am disappointed that Altiris SVS does not run under 64 bits OS..how painful it is..&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-799300748971258367?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/799300748971258367/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2009/04/new-software.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/799300748971258367'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/799300748971258367'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2009/04/new-software.html' title='New software'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-8429865957455615400</id><published>2009-04-01T00:24:00.000-07:00</published><updated>2009-04-01T00:28:35.869-07:00</updated><title type='text'>SQLServer_2005 + VisualStudio_2008</title><content type='html'>*.mdf file can be used as a database replacement (you do have to install SQLServer to access the mdf file).&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Just be aware that the log file *LDF must be deleted every time a new *mdf file is deployed. Otherwise the connection cannot be established.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-8429865957455615400?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/8429865957455615400/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2009/04/sqlserver2005-visualstudio2008.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/8429865957455615400'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/8429865957455615400'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2009/04/sqlserver2005-visualstudio2008.html' title='SQLServer_2005 + VisualStudio_2008'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-8087068995376253076</id><published>2009-03-31T11:09:00.000-07:00</published><updated>2009-03-31T12:37:09.849-07:00</updated><title type='text'>opensuse10+apache</title><content type='html'>gensslcert&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;apache 2.0&lt;/div&gt;&lt;div&gt;error: "There is either no index document or the directory is read-protected"&lt;/div&gt;&lt;div&gt;solution: The default-server.conf might be missing &lt;/div&gt;&lt;div&gt;&amp;lt;Directory "/srv/www/yourdomain"&amp;gt;&lt;/div&gt;&lt;div&gt;Options None&lt;/div&gt;&lt;div&gt;AllowOverride None&lt;/div&gt;&lt;div&gt;Order allow,deny&lt;/div&gt;&lt;div&gt;Allow from all&lt;/div&gt;&lt;div&gt;&amp;lt;/directory&amp;gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-8087068995376253076?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/8087068995376253076/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2009/03/opensuse10apache.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/8087068995376253076'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/8087068995376253076'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2009/03/opensuse10apache.html' title='opensuse10+apache'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8091041671120395175.post-7885769660942820018</id><published>2009-03-29T17:59:00.000-07:00</published><updated>2009-03-30T01:11:12.599-07:00</updated><title type='text'>Grails + Acegi + IntelliJ</title><content type='html'>- Create new Grails application project.&lt;div&gt;- Create a new domain class using 'grails create-domain-class domain' and make sure the name does not have 'order' in it. For some reason, the IntelliJ generated domain is not recognized as a valid domain class by grails.&lt;/div&gt;&lt;div&gt;- Added some fields to the domain class&lt;/div&gt;&lt;div&gt;- Generate the Controllerclass using IntelliJ (grails create-controller script is not good enough)&lt;/div&gt;&lt;div&gt;- Modified the 'def index = ...' into 'def scaffold = ...'&lt;/div&gt;&lt;div&gt;- run-app&lt;/div&gt;&lt;div&gt;- grails install-plugin acegi&lt;/div&gt;&lt;div&gt;- grails create-auth-domains  User Role Requestmap&lt;/div&gt;&lt;div&gt;- grails generate-manager&lt;/div&gt;&lt;div&gt;- grails generate-registration&lt;/div&gt;&lt;div&gt;- grails run-app&lt;/div&gt;&lt;div&gt;- Create userroles : ROLE_ADMIN and ROLE_USER&lt;/div&gt;&lt;div&gt;- Create user: admin with ROLE_ADMIN and user with ROLE_USER&lt;/div&gt;&lt;div&gt;- Create mapping: i.e. /Inventory/** for ROLE_ADMIN&lt;/div&gt;&lt;div&gt;-  grails run-app&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;To enable HTTPS:&lt;/div&gt;&lt;div&gt;Look here &lt;a href="http://www.stainlesscode.com/site/comments/acegi_spring_security_https_and_grails/"&gt;http://www.stainlesscode.com/site/comments/acegi_spring_security_https_and_grails/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;basically: &lt;/div&gt;&lt;div&gt;-&lt;span&gt;&lt;span&gt; grails install-templates, ( the following code is generated from http://www.simplebits.com )&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="  white-space: pre-wrap; font-family:-webkit-monospace;font-size:13px;"&gt;&lt;code&gt; &amp;lt;filter&amp;gt;  &lt;br /&gt;  &amp;lt;filter-name&amp;gt;Acegi Channel Processing Filter&amp;lt;/filter-name&amp;gt;  &lt;br /&gt;  &amp;lt;filter-class&amp;gt;org.springframework.security.util.FilterToBeanProxy&amp;lt;/filter-class&amp;gt;  &lt;br /&gt;  &amp;lt;init-param&amp;gt;  &lt;br /&gt;    &amp;lt;param-name&amp;gt;targetClass&amp;lt;/param-name&amp;gt;  &lt;br /&gt;    &amp;lt;param-value&amp;gt;org.springframework.security.securechannel.ChannelProcessingFilter&amp;lt;/param-value&amp;gt;  &lt;br /&gt;  &amp;lt;/init-param&amp;gt;  &lt;br /&gt;&amp;lt;/filter&amp;gt;  &lt;br /&gt;  &lt;br /&gt;&amp;lt;filter-mapping&amp;gt;  &lt;br /&gt;  &amp;lt;filter-name&amp;gt;Acegi Channel Processing Filter&amp;lt;/filter-name&amp;gt;  &lt;br /&gt;  &amp;lt;url-pattern&amp;gt;/*&amp;lt;/url-pattern&amp;gt;  &lt;br /&gt;&amp;lt;/filter-mapping&amp;gt; &lt;/code&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="  white-space: pre-wrap;font-family:-webkit-monospace;font-size:13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;- Navigate to the src/templates/war and add the filter to the web.xml template there:- This following code should be put into yout grails-app/conf/spring/resource.groovy file (the entire file is reproduced here):&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="  white-space: pre-wrap; font-family:-webkit-monospace;font-size:13px;"&gt;&lt;code&gt; import org.springframework.security.securechannel.ChannelProcessingFilter  &lt;br /&gt;import org.springframework.security.securechannel.ChannelDecisionManagerImpl  &lt;br /&gt;import org.springframework.security.securechannel.SecureChannelProcessor  &lt;br /&gt;import org.springframework.security.securechannel.InsecureChannelProcessor  &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;// Place your Spring DSL code here&lt;br /&gt;beans = {&lt;br /&gt;   secureChannelProcessor(SecureChannelProcessor)  &lt;br /&gt;    insecureChannelProcessor(InsecureChannelProcessor)  &lt;br /&gt;  &lt;br /&gt;    channelDecisionManager(ChannelDecisionManagerImpl) {  &lt;br /&gt;        channelProcessors = [secureChannelProcessor, insecureChannelProcessor]  &lt;br /&gt;    }  &lt;br /&gt;  &lt;br /&gt;    channelProcessingFilter(ChannelProcessingFilter) {  &lt;br /&gt;        channelDecisionManager=channelDecisionManager  &lt;br /&gt;        filterInvocationDefinitionSource='''  &lt;br /&gt;              CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON  &lt;br /&gt;              PATTERN_TYPE_APACHE_ANT  &lt;br /&gt;              /**=REQUIRES_SECURE_CHANNEL  &lt;br /&gt;              '''  &lt;br /&gt;    }  &lt;br /&gt;} &lt;/code&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="  white-space: pre-wrap;font-family:-webkit-monospace;font-size:13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;- grails run-app --https&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Links:&lt;/div&gt;&lt;div&gt;&lt;a href="http://luxsci.com/blog/256-bit-aes-encryption-for-ssl-and-tls-maximal-security.html"&gt;http://luxsci.com/blog/256-bit-aes-encryption-for-ssl-and-tls-maximal-security.html&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8091041671120395175-7885769660942820018?l=lydonchandra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lydonchandra.blogspot.com/feeds/7885769660942820018/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lydonchandra.blogspot.com/2009/03/grails-acegi-intellij.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/7885769660942820018'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8091041671120395175/posts/default/7885769660942820018'/><link rel='alternate' type='text/html' href='http://lydonchandra.blogspot.com/2009/03/grails-acegi-intellij.html' title='Grails + Acegi + IntelliJ'/><author><name>Lydonchandra</name><uri>http://www.blogger.com/profile/03946047243303331506</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
