<?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-6940382390287743679</id><updated>2011-09-09T22:58:11.719-07:00</updated><category term='xmlhttpresponse'/><category term='dhtml goodies'/><category term='web application development'/><category term='JSP'/><category term='SQL'/><category term='javascript'/><category term='ajax'/><category term='Date'/><category term='state=0'/><category term='web development'/><category term='gwt'/><category term='jmaki'/><category term='Oracle'/><category term='echo2'/><category term='openlazlo'/><category term='yahoo ui'/><category term='JDBC'/><category term='INVALID_STATE_ERR'/><category term='comet'/><category term='dwt'/><category term='JDK'/><category term='dojo'/><category term='response'/><category term='Eclipse'/><category term='DHTML'/><category term='Apache'/><category term='Glassfish'/><category term='request'/><category term='Servlet'/><title type='text'>Web Tech</title><subtitle type='html'>A discussion of Ajax/Comet technologies.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://bear-webtech.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6940382390287743679/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://bear-webtech.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>bear</name><uri>http://www.blogger.com/profile/13788777451867601166</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>9</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6940382390287743679.post-1379063285458749183</id><published>2007-07-28T13:32:00.000-07:00</published><updated>2007-07-28T13:37:41.726-07:00</updated><title type='text'>Yahoo UI</title><content type='html'>I have been working with Yahoo &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;UI&lt;/span&gt; and the Yahoo Maps &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;API&lt;/span&gt; lately. The libraries are very impressive. Here is a good blog for Yahoo &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;UI&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://yuiblog.com/blog/2006/12/14/maps-plus-yui/"&gt;http://yuiblog.com/blog/2006/12/14/maps-plus-yui/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The blog helped me get past the basic map loading technique hijacking my entire page.&lt;br /&gt;&lt;br /&gt;Yahoo &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;UI&lt;/span&gt; is very complete and easy to use. I look forward to delving deeper into the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;API&lt;/span&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6940382390287743679-1379063285458749183?l=bear-webtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bear-webtech.blogspot.com/feeds/1379063285458749183/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6940382390287743679&amp;postID=1379063285458749183' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6940382390287743679/posts/default/1379063285458749183'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6940382390287743679/posts/default/1379063285458749183'/><link rel='alternate' type='text/html' href='http://bear-webtech.blogspot.com/2007/07/yahoo-ui.html' title='Yahoo UI'/><author><name>bear</name><uri>http://www.blogger.com/profile/13788777451867601166</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-6940382390287743679.post-3707763248942183369</id><published>2007-07-28T13:30:00.000-07:00</published><updated>2007-07-28T13:43:02.557-07:00</updated><title type='text'>Updated survey</title><content type='html'>I've updated the tech survey that served as the genesis for this blog. My updates are based on some &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;recent learnings&lt;/span&gt; about Yahoo &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;UI&lt;/span&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6940382390287743679-3707763248942183369?l=bear-webtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bear-webtech.blogspot.com/feeds/3707763248942183369/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6940382390287743679&amp;postID=3707763248942183369' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6940382390287743679/posts/default/3707763248942183369'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6940382390287743679/posts/default/3707763248942183369'/><link rel='alternate' type='text/html' href='http://bear-webtech.blogspot.com/2007/07/updated-survey.html' title='Updated survey'/><author><name>bear</name><uri>http://www.blogger.com/profile/13788777451867601166</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-6940382390287743679.post-7946519436929159848</id><published>2007-06-06T18:20:00.000-07:00</published><updated>2007-06-07T10:39:43.292-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Date'/><category scheme='http://www.blogger.com/atom/ns#' term='JDBC'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><title type='text'>JDBC SQL types vs Oracle SQL types</title><content type='html'>I have just had a frustrating experience with Oracle and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;JDBC&lt;/span&gt;. Imagine you want to select a set of records from a table that fall between two date/time values, and you want to do this with a prepared statement. Using the standard java.sql.Date and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;PreparedStatement&lt;/span&gt;.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;setDate&lt;/span&gt;() method will not work properly with Oracle 9.&lt;br /&gt;&lt;br /&gt;&lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_3"&gt;Here's&lt;/span&gt; what I had to do:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;((&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;OraclePreparedStatement&lt;/span&gt;)&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;stmt&lt;/span&gt;).&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;setDATE&lt;/span&gt;(2, new oracle.sql.DATE(new java.sql.Timestamp(startDate.getTime())));&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;:D&lt;br /&gt;&lt;br /&gt;An explanation:&lt;br /&gt;&lt;br /&gt;First, I needed to cast to &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;OraclePreparedStatement&lt;/span&gt; to have access to the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;setDATE&lt;/span&gt;() function (as opposed to &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;PreparedStatement&lt;/span&gt;.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;setDate&lt;/span&gt;()). The &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;setDATE&lt;/span&gt;() function takes the crucial oracle.sql.DATE object that maps between &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;JDBC&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;SQL&lt;/span&gt; types and the Oracle DATE &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;SQL&lt;/span&gt; type. Think of it this way; I can instantiate oracle.sql.DATE with a java.sql.Date, Timestamp, Time, String or other object, and it will try to map those objects to the Oracle DATE &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;SQL&lt;/span&gt; type. In this case, I needed an object that preserved the time information along with the date. Therefore, I instantiated the oracle.sql.DATE object with java.sql.Timestamp. Had I instantiated the DATE object with java.sql.Date, it may have succeeded, but time information would be zeroed out.&lt;br /&gt;&lt;br /&gt;&lt;div align="left"&gt;The upside to this method is that it is an intuitive way to handle Oracle dates with prepared statements. The downside is its dependence on Oracle &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;JDBC&lt;/span&gt; extensions. But, with the right &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;DAO&lt;/span&gt; architecture, redesign can be minimal when things change.&lt;/div&gt;&lt;br /&gt;&lt;p&gt;An alternative to the previous method would be to map a java.sql.Timestamp object to the DATE field using the following:&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:courier new;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;stmt&lt;/span&gt;.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;setTimestamp&lt;/span&gt;(2, new java.sql.Timestamp(startDate.getTime()));&lt;/span&gt;&lt;/p&gt;I am to understand from the &lt;a href="http://www.oracle.com/technology/tech/java/sqlj_jdbc/htdocs/jdbc_faq.htm#08_00"&gt;Oracle &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;JDBC&lt;/span&gt; &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_21"&gt;FAQ&lt;/span&gt; &lt;/a&gt;that since Oracle 9.2, the Oracle DATE &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;SQL&lt;/span&gt; type has been mapped to java.sql.Date. The &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_23"&gt;FAQ&lt;/span&gt; calls attention to the fact that there will be conflicts if you depend on time information in a DATE field. The above methods both work with Oracle 9.2.0.6.0, so I am not sure what aspect of functionality will be impacted.&lt;br /&gt;&lt;p&gt;Below is a quick summary:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;java.util.Date - Holds date and time information; really of no use here other than to get the date/time into the method.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;java.sql.Date - Corresponds to a generic &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_24"&gt;JDBC&lt;/span&gt; DATE &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_25"&gt;SQL&lt;/span&gt; type. Holds only the date part (2007-06-06).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;java.sql.Timestamp - Corresponds to a generic &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_26"&gt;JDBC&lt;/span&gt; TIMESTAMP &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_27"&gt;SQL&lt;/span&gt; type. Holds date AND time (2007-06-06 02:32:04).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Oracle &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_28"&gt;SQL&lt;/span&gt; DATE type - Stores date and time information, but no nanoseconds. Previous to Oracle 9.2, mapped to java.sql.Timestamp. Post 9.2, maps to java.sql.Date.&lt;/li&gt;&lt;li&gt;Oracle &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_29"&gt;SQL&lt;/span&gt; TIMESTAMP type - New in Oracle 9.2. Stores date and time information; includes nanoseconds. Since Oracle 9.2, mapped to java.sql.Timestamp.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;oracle.sql.DATE - Corresponds to the Oracle DATE &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_30"&gt;SQL&lt;/span&gt; type. Holds date and time, but in order to function properly, should be instantiated with a java.sql.Timestamp object that also holds date and time.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_31"&gt;PreparedStatement&lt;/span&gt;.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_32"&gt;setDate&lt;/span&gt;(int, java.sql.Date) - Set a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_33"&gt;JDBC&lt;/span&gt; DATE &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_34"&gt;SQL&lt;/span&gt; type field in the prepared statement. Only preserves the date part.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_35"&gt;PreparedStatement&lt;/span&gt;.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_36"&gt;setTimestamp&lt;/span&gt;(int, java.sql.Timestamp) - Set a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_37"&gt;JDBC&lt;/span&gt; TIMESTAMP &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_38"&gt;SQL&lt;/span&gt; type field in the prepared statement. Preserves date and time, and can be tricked into setting an Oracle DATE type field with date and time information.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_39"&gt;OraclePreparedStatement&lt;/span&gt;.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_40"&gt;setDATE&lt;/span&gt;(int, oracle.sql.DATE) - Set an Oracle DATE &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_41"&gt;SQL&lt;/span&gt; type field in the prepared statement. Preserves date and time. In my opinion, the most intuitive method (once you understand it) to set Oracle DATE fields in prepared statements.&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/6940382390287743679-7946519436929159848?l=bear-webtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bear-webtech.blogspot.com/feeds/7946519436929159848/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6940382390287743679&amp;postID=7946519436929159848' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6940382390287743679/posts/default/7946519436929159848'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6940382390287743679/posts/default/7946519436929159848'/><link rel='alternate' type='text/html' href='http://bear-webtech.blogspot.com/2007/06/jdbc-sql-types-vs-oracle-sql-types.html' title='JDBC SQL types vs Oracle SQL types'/><author><name>bear</name><uri>http://www.blogger.com/profile/13788777451867601166</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>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6940382390287743679.post-8545777082347236580</id><published>2007-03-21T06:18:00.000-07:00</published><updated>2007-03-21T06:51:24.906-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='web development'/><category scheme='http://www.blogger.com/atom/ns#' term='gwt'/><category scheme='http://www.blogger.com/atom/ns#' term='echo2'/><category scheme='http://www.blogger.com/atom/ns#' term='dhtml goodies'/><category scheme='http://www.blogger.com/atom/ns#' term='jmaki'/><category scheme='http://www.blogger.com/atom/ns#' term='dojo'/><category scheme='http://www.blogger.com/atom/ns#' term='openlazlo'/><category scheme='http://www.blogger.com/atom/ns#' term='DHTML'/><title type='text'>OpenLazlo Exploration</title><content type='html'>I went to the OpenLazlo site recently (&lt;a href="http://www.openlaszlo.org/"&gt;http://www.openlaszlo.org/&lt;/a&gt;) and tried out the demos. They work very well. As I was looking through the overview to understand how it works, some questions came to mind.&lt;br /&gt;&lt;br /&gt;OpenLazlo is a fairly interesting and unique design. Code is developed in Javascript and compiled into Flash. As I was reading, I started to wonder why they would choose this architecture. Who are they trying to appeal to? Flash is a stable and widely supported web design technology. You may find Javascript programmers wishing to wander into the world of Flash, but don't you stand to alienate staunch supporters of either technology? Is Flash performance/functionality so much superior/widely supported compared to Javascript to warrant the need to adopt the different technology? If you know Javascript, why not just use an existing and fully functional Javascript library such as Dojo or DHTML Goodies? Is there any consolation for Flash developers that don't know Javascript?&lt;br /&gt;&lt;br /&gt;As I mentioned, the demo widgets worked very well, but there was nothing revolutionary in the functionality when considering the possibilities with other, pure Javascript libraries. Other offerings, such as Google Web Toolkit and Echo2, also choose the code conversion method of bringing rich user interfaces to the web. Developers using these frameworks are able to write purly in Java code and compile to Javascript and DHTML. This may enable Java programmers to venture into the web design arena, but is the transposition of a traditional application programming language on top of a web architecture a flexible enough concept? jMaki takes a different approach, embedding Javascript components in JSP/Servlet Tag libraries. Components can be placed on the page with JSP-type tags. This could be a good solution for the multitude of web designers with less programming skills.&lt;br /&gt;&lt;br /&gt;What are your thoughts on these questions? Your personal experiences with these different technologies are welcome.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6940382390287743679-8545777082347236580?l=bear-webtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bear-webtech.blogspot.com/feeds/8545777082347236580/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6940382390287743679&amp;postID=8545777082347236580' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6940382390287743679/posts/default/8545777082347236580'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6940382390287743679/posts/default/8545777082347236580'/><link rel='alternate' type='text/html' href='http://bear-webtech.blogspot.com/2007/03/openlazlo-exploration.html' title='OpenLazlo Exploration'/><author><name>bear</name><uri>http://www.blogger.com/profile/13788777451867601166</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>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6940382390287743679.post-8211606876041411744</id><published>2007-03-20T08:20:00.000-07:00</published><updated>2007-03-20T08:21:05.115-07:00</updated><title type='text'>Just registered with Technorati</title><content type='html'>See my Technorati technical profile here:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://technorati.com/claim/ncj3tf2i2h" rel="me"&gt;Technorati Profile&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6940382390287743679-8211606876041411744?l=bear-webtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bear-webtech.blogspot.com/feeds/8211606876041411744/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6940382390287743679&amp;postID=8211606876041411744' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6940382390287743679/posts/default/8211606876041411744'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6940382390287743679/posts/default/8211606876041411744'/><link rel='alternate' type='text/html' href='http://bear-webtech.blogspot.com/2007/03/just-registered-with-technorati.html' title='Just registered with Technorati'/><author><name>bear</name><uri>http://www.blogger.com/profile/13788777451867601166</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-6940382390287743679.post-75294412851815383</id><published>2007-03-20T08:01:00.000-07:00</published><updated>2007-03-20T08:03:08.566-07:00</updated><title type='text'>Great Ajax Blog</title><content type='html'>This is a great Ajax (and other) blog...&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.ajaxian.com/"&gt;http://www.ajaxian.com/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6940382390287743679-75294412851815383?l=bear-webtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bear-webtech.blogspot.com/feeds/75294412851815383/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6940382390287743679&amp;postID=75294412851815383' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6940382390287743679/posts/default/75294412851815383'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6940382390287743679/posts/default/75294412851815383'/><link rel='alternate' type='text/html' href='http://bear-webtech.blogspot.com/2007/03/great-ajax-blog.html' title='Great Ajax Blog'/><author><name>bear</name><uri>http://www.blogger.com/profile/13788777451867601166</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-6940382390287743679.post-3133491191924886767</id><published>2007-03-12T02:30:00.000-07:00</published><updated>2007-03-20T08:32:17.218-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Servlet'/><category scheme='http://www.blogger.com/atom/ns#' term='JSP'/><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='JDK'/><category scheme='http://www.blogger.com/atom/ns#' term='Glassfish'/><category scheme='http://www.blogger.com/atom/ns#' term='Apache'/><title type='text'>My Development Environment</title><content type='html'>&lt;p&gt;This is my development evironment: &lt;/p&gt;&lt;ul&gt;&lt;li&gt;Eclipse 3.2.2 - Eclipse is a really good IDE with a wealth of plugins. Netbeans has good JSP/Servlet/EJB wizards and integration with Glassfish, but Eclipse foundation has countered that with their own Web Tools Platform (WTP) (&lt;a href="http://www.eclipse.org/webtools/main.php"&gt;http://www.eclipse.org/webtools/main.php&lt;/a&gt;). The only problem is that it is a project to install and configure WTP with an existing Eclipse installation. Better to start with the complete bundled package. &lt;/li&gt;&lt;li&gt;Glassfish v1 - I switched from Apache to Glassfish due to problems with Ajax on Apache 5.5. So far I am happy with it, but beware the autodeploy mechanism. Some old Javascript became stuck in one of the directories, and it was very difficult to figure out why I could not update it. Eventually, I found the directory with the old .js file and deleted it. Now I just use asadmin deploydir and undeploy. &lt;/li&gt;&lt;li&gt;Apache 5.5 - I have used Apache since the beginning. There is a good Eclipse plugin that made servlet development so much easier. The reason I started something else was becuase of the Ajax problem. Maybe v6 will clear up the problem. &lt;/li&gt;&lt;li&gt;JDK 6.0 - Just keeping up with the latest.&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/6940382390287743679-3133491191924886767?l=bear-webtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bear-webtech.blogspot.com/feeds/3133491191924886767/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6940382390287743679&amp;postID=3133491191924886767' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6940382390287743679/posts/default/3133491191924886767'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6940382390287743679/posts/default/3133491191924886767'/><link rel='alternate' type='text/html' href='http://bear-webtech.blogspot.com/2007/03/my-development-environment.html' title='My Development Environment'/><author><name>bear</name><uri>http://www.blogger.com/profile/13788777451867601166</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-6940382390287743679.post-7292810889508184607</id><published>2007-03-10T05:57:00.000-08:00</published><updated>2007-03-11T01:25:52.632-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xmlhttpresponse'/><category scheme='http://www.blogger.com/atom/ns#' term='response'/><category scheme='http://www.blogger.com/atom/ns#' term='INVALID_STATE_ERR'/><category scheme='http://www.blogger.com/atom/ns#' term='ajax'/><category scheme='http://www.blogger.com/atom/ns#' term='request'/><category scheme='http://www.blogger.com/atom/ns#' term='state=0'/><title type='text'>XMLHTTPResponse.status = 0</title><content type='html'>I am getting XMLHTTPResponse.status = 0 sometimes in my Ajax calls.&lt;br /&gt;&lt;br /&gt;Anybody's insight as to why this is happening is much appreciated.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6940382390287743679-7292810889508184607?l=bear-webtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bear-webtech.blogspot.com/feeds/7292810889508184607/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6940382390287743679&amp;postID=7292810889508184607' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6940382390287743679/posts/default/7292810889508184607'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6940382390287743679/posts/default/7292810889508184607'/><link rel='alternate' type='text/html' href='http://bear-webtech.blogspot.com/2007/03/xmlhttpresponsestatus-0.html' title='XMLHTTPResponse.status = 0'/><author><name>bear</name><uri>http://www.blogger.com/profile/13788777451867601166</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>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6940382390287743679.post-1351328902835844944</id><published>2007-03-07T08:01:00.000-08:00</published><updated>2007-07-28T13:30:36.739-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dwt'/><category scheme='http://www.blogger.com/atom/ns#' term='web application development'/><category scheme='http://www.blogger.com/atom/ns#' term='gwt'/><category scheme='http://www.blogger.com/atom/ns#' term='comet'/><category scheme='http://www.blogger.com/atom/ns#' term='ajax'/><category scheme='http://www.blogger.com/atom/ns#' term='yahoo ui'/><category scheme='http://www.blogger.com/atom/ns#' term='dojo'/><title type='text'>Ajax/Web Application Development</title><content type='html'>I am trying to research different Ajax/Comet technologies, but there is so much disparate information and crossover, that I am having trouble classifying them according to my needs. This blog is an attempt to create a classification of the different Ajax/Comet development tools available. I am just going to throw some things out there and see what evolves...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;General technologies:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Ajax - A method of asynchronous communication between a browser and server that enables parts of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;DHTML&lt;/span&gt; pages to be updated without a full page refresh.&lt;/li&gt;&lt;li&gt;Comet - A method of communication between a browser and server that enables a communication channel to be kept open so a server can continually update the browser without client-side requests. &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Javascript widget/component libraries:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://dojotoolkit.org/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Dojo&lt;/span&gt; &lt;/a&gt;- Client side javascript communicates with [arbitrary server-side code?]. Consists of a Javascript library with several window controls and effects. Supports Ajax.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.dhtmlgoodies.com/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;DHTML&lt;/span&gt; Goodies &lt;/a&gt;- Client side javascript communicates with arbitrary server-side code. Cascade/Tile Windows!&lt;/li&gt;&lt;li&gt;&lt;a href="http://prototype-window.xilinus.com/"&gt;Prototype Windows &lt;/a&gt;- similar to &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;Dojo&lt;/span&gt; and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;DHTML&lt;/span&gt; Goodies. Built on Prototype and script.aculo.us.&lt;/li&gt;&lt;li&gt;&lt;a href="http://openrico.org/"&gt;Rico&lt;/a&gt; - similar to &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;Dojo&lt;/span&gt; and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;DHTML&lt;/span&gt; Goodies, except no windows. Built on Prototype.&lt;/li&gt;&lt;li&gt;&lt;a href="http://developer.yahoo.com/yui/"&gt;Yahoo &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;UI&lt;/span&gt; &lt;/a&gt;- Client side javascript &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;librar&lt;/span&gt; with several window controls and effects. Very complete set of controls and offers some smooth animation effects. Supports Ajax. &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.dsource.org/projects/dwt"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;DWT&lt;/span&gt;&lt;/a&gt; - similar to &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;Dojo&lt;/span&gt; and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;DHTML&lt;/span&gt; Goodies. Modeled after Eclipse &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;SWT&lt;/span&gt;.&lt;/li&gt;&lt;li&gt;Kabuki &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;AjaxTK&lt;/span&gt; - client developer toolkit for Javascript widgets. Uses &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;DWT&lt;/span&gt;. Created by &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;Zimbra&lt;/span&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Frameworks:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://code.google.com/webtoolkit/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;GWT&lt;/span&gt;&lt;/a&gt; - Google Web Toolkit. A Java library that allows a developer to create a rich browser application entirely in Java code. Translates the Java code into &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;DHTML&lt;/span&gt;, XML, and Javascript. Supports Ajax. &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.nextapp.com/platform/echo2/echo/"&gt;Echo2&lt;/a&gt; - A complete &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;IDE&lt;/span&gt; and code library that allows a developer to create a rich browser application. Similar to &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;GWT&lt;/span&gt; in that you develop entirely in [language?], and this is translated to [javascript, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;dhtml&lt;/span&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;xml&lt;/span&gt;?]. Supports Ajax and Comet. &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.openlaszlo.org/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;OpenLazlo&lt;/span&gt;&lt;/a&gt; - Code in Javascript, compile to Flash.&lt;/li&gt;&lt;li&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_23"&gt;Zimbra&lt;/span&gt; - ??&lt;/li&gt;&lt;li&gt;&lt;a href="https://ajax.dev.java.net/about.html"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_24"&gt;jMaki&lt;/span&gt;&lt;/a&gt; - a framework that allows you to wrap javascript widgets in &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_25"&gt;jsp&lt;/span&gt; tags. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_26"&gt;Plugins&lt;/span&gt; available for &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_27"&gt;Netbeans&lt;/span&gt; and Eclipse. Currently has support for some &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_28"&gt;Dojo&lt;/span&gt;, Yahoo &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_29"&gt;UI&lt;/span&gt;, and Prototype widgets, but you can create your own. Also provides full access to the html and javascript. (samples seem very slow)&lt;/li&gt;&lt;li&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_30"&gt;ZK&lt;/span&gt; - framework that utilizes &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_31"&gt;ZUML&lt;/span&gt; to develop web based &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_32"&gt;GUI's&lt;/span&gt;. No Javascript or Ajax knowledge required.&lt;/li&gt;&lt;li&gt;&lt;a href="http://struts.apache.org/"&gt;Struts&lt;/a&gt; - A &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_33"&gt;servlet&lt;/span&gt;-based Java framework that implements the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_34"&gt;MVC&lt;/span&gt;2 pattern. Consists of the architectural components to implement &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_35"&gt;MVC&lt;/span&gt;2 and some additional &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_36"&gt;taglibs&lt;/span&gt; that implement special html-based controls. Ajax can be implemented with struts, as Ajax can be used with &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_37"&gt;servlets&lt;/span&gt;, but it is not really applicable to say that Struts supports Ajax.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.pushlets.com/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_38"&gt;Pushlets&lt;/span&gt;&lt;/a&gt; - A &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_39"&gt;servlet&lt;/span&gt;-based Java framework that implements event-based server-side push communication with a browser. A communication channel is kept open between the browser and server so that a server can update the browser continually without a request. Don't know if Ajax is responsible for the communication channel.&lt;/li&gt;&lt;li&gt;Ruby on Rails - What are these and why are they so special?&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;... will update as your comments come in.&lt;/p&gt;&lt;p&gt;I am going to start breaking these up into frameworks, widget/component libraries, ...&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6940382390287743679-1351328902835844944?l=bear-webtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bear-webtech.blogspot.com/feeds/1351328902835844944/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6940382390287743679&amp;postID=1351328902835844944' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6940382390287743679/posts/default/1351328902835844944'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6940382390287743679/posts/default/1351328902835844944'/><link rel='alternate' type='text/html' href='http://bear-webtech.blogspot.com/2007/03/ajaxweb-application-development.html' title='Ajax/Web Application Development'/><author><name>bear</name><uri>http://www.blogger.com/profile/13788777451867601166</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>
