<?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-935222733255608566</id><updated>2012-01-31T13:02:21.328-08:00</updated><category term='jsext'/><category term='run process'/><category term='jspx'/><category term='javascript'/><category term='swing'/><category term='Spring Framework'/><category term='look and feel'/><category term='REPOSITORY'/><category term='LARGE DATA'/><category term='run cmd'/><category term='Windows7'/><category term='applet'/><category term='Interface'/><category term='SOA'/><category term='CLOB'/><category term='binary'/><category term='firefox'/><category term='delete'/><category term='Ref Cursor'/><category term='forms'/><category term='file'/><category term='intellisense'/><category term='BLOB'/><category term='deploy'/><category term='debug'/><category term='VS 2008'/><category term='SCM'/><category term='dot net'/><category term='Plugin'/><category term='java'/><category term='ajax'/><category term='stream'/><category term='REPCMD'/><category term='random'/><category term='laf'/><category term='principles'/><category term='ajax toolkits'/><category term='Run command'/><category term='HUGE DATA'/><category term='ADF'/><category term='oracle'/><category term='replace'/><category term='C#'/><category term='VİewObject'/><category term='jquery'/><category term='sign'/><category term='Eclipse'/><category term='weblogic'/><category term='certificate'/><category term='JSF'/><category term='HTML ASCII Characters'/><category term='ftp'/><category term='.NET'/><title type='text'>Articles &amp; Samples</title><subtitle type='html'>All about the software development</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://mucahiduslu.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/935222733255608566/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://mucahiduslu.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>MUCAHID USLU</name><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>30</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-935222733255608566.post-1007381301830096246</id><published>2012-01-27T04:50:00.000-08:00</published><updated>2012-01-27T04:50:46.649-08:00</updated><title type='text'>IEnumerable vs IQueryable</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;The difference is that IQueryable&lt;t&gt; is the interface that allows LINQ-to-SQL (LINQ.-to-anything really) to work. So if you further refine your query on an IQueryable&lt;t&gt;, that query will be executed in the database, if possible. &lt;/t&gt;&lt;/t&gt;&lt;br /&gt;For the IEnumerable&lt;t&gt; case, it will be LINQ-to-object, meaning that all objects matching the original query will have to be loaded into memory from the database.&lt;/t&gt;&lt;br /&gt;In code:&lt;br /&gt;&lt;pre class="lang-cs prettyprint"&gt;&lt;code&gt;&lt;span class="typ"&gt;IQueryable&lt;/span&gt;&lt;span class="pun"&gt;&amp;lt;&lt;/span&gt;&lt;span class="typ"&gt;Customer&lt;/span&gt;&lt;span class="pun"&gt;&amp;gt;&lt;/span&gt;&lt;span class="pln"&gt; custs &lt;/span&gt;&lt;span class="pun"&gt;=&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;...;&lt;/span&gt;&lt;span class="pln"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="com"&gt;// ..&lt;/span&gt;&lt;span class="pln"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="kwd"&gt;var&lt;/span&gt;&lt;span class="pln"&gt; customers &lt;/span&gt;&lt;span class="pun"&gt;=&lt;/span&gt;&lt;span class="pln"&gt; custs&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="typ"&gt;Where&lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="pln"&gt;c &lt;/span&gt;&lt;span class="pun"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="pln"&gt; c&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="typ"&gt;IsGold&lt;/span&gt;&lt;span class="pun"&gt;);&lt;/span&gt;&lt;span class="pln"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;That code will execute SQL to only select gold customers. The following code, on the other hand, will execute the original query in the database, then filtering out the non-gold customers in the memory:&lt;br /&gt;&lt;pre class="lang-cs prettyprint"&gt;&lt;code&gt;&lt;span class="typ"&gt;IEnumerable&lt;/span&gt;&lt;span class="pun"&gt;&amp;lt;&lt;/span&gt;&lt;span class="typ"&gt;Customer&lt;/span&gt;&lt;span class="pun"&gt;&amp;gt;&lt;/span&gt;&lt;span class="pln"&gt; custs &lt;/span&gt;&lt;span class="pun"&gt;=&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;...;&lt;/span&gt;&lt;span class="pln"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="com"&gt;// ..&lt;/span&gt;&lt;span class="pln"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="kwd"&gt;var&lt;/span&gt;&lt;span class="pln"&gt; customers &lt;/span&gt;&lt;span class="pun"&gt;=&lt;/span&gt;&lt;span class="pln"&gt; custs&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="typ"&gt;Where&lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="pln"&gt;c &lt;/span&gt;&lt;span class="pun"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="pln"&gt; c&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="typ"&gt;IsGold&lt;/span&gt;&lt;span class="pun"&gt;);&lt;/span&gt;&lt;span class="pln"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;This is quite an important difference, and working on IQueryable&lt;t&gt; can in many cases save you from returning too many rows from the database. Another prime example is doing paging: If you use Take and Skip on IQueryable, you will only get the number of rows requested; doing that on an IEnumerable&lt;t&gt; will cause all of your rows to be loaded in memory.&lt;/t&gt;&lt;/t&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/935222733255608566-1007381301830096246?l=mucahiduslu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mucahiduslu.blogspot.com/feeds/1007381301830096246/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=935222733255608566&amp;postID=1007381301830096246' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/935222733255608566/posts/default/1007381301830096246'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/935222733255608566/posts/default/1007381301830096246'/><link rel='alternate' type='text/html' href='http://mucahiduslu.blogspot.com/2012/01/ienumerable-vs-iqueryable.html' title='IEnumerable&lt;T&gt; vs IQueryable&lt;T&gt;'/><author><name>MUCAHID USLU</name><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-935222733255608566.post-7419746026294632999</id><published>2012-01-25T03:44:00.001-08:00</published><updated>2012-01-25T03:44:28.164-08:00</updated><title type='text'>Linq to DataTable</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;public static DataTable LINQToDataTable&lt;t&gt;(IEnumerable&lt;t&gt; varlist)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp;&amp;nbsp; // Mucahid USLU mucuslu@hotmail.com&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; DataTable dtReturn = new DataTable();&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; // column names &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; PropertyInfo[] oProps = null;&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; if (varlist == null) return dtReturn;&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; foreach (T rec in varlist)&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; {&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; // Use reflection to get property names, to create table, Only first time, others will follow &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;&amp;nbsp; if (oProps == null)&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;&amp;nbsp; {&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oProps = ((Type)rec.GetType()).GetProperties();&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach (PropertyInfo pi in oProps)&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Type colType = pi.PropertyType;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((colType.IsGenericType) &amp;amp;&amp;amp; (colType.GetGenericTypeDefinition()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ==typeof(Nullable&amp;lt;&amp;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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; colType = colType.GetGenericArguments()[0];&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dtReturn.Columns.Add(new DataColumn(pi.Name, colType));&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&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;&amp;nbsp; }&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;&amp;nbsp; DataRow dr = dtReturn.NewRow();&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;&amp;nbsp; foreach (PropertyInfo pi in oProps)&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;&amp;nbsp; {&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dr[pi.Name] = pi.GetValue(rec, null) == null ?DBNull.Value :pi.GetValue&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (rec,null);&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;&amp;nbsp; }&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;&amp;nbsp; dtReturn.Rows.Add(dr);&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; }&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; return dtReturn;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/t&gt;&lt;/t&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/935222733255608566-7419746026294632999?l=mucahiduslu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mucahiduslu.blogspot.com/feeds/7419746026294632999/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=935222733255608566&amp;postID=7419746026294632999' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/935222733255608566/posts/default/7419746026294632999'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/935222733255608566/posts/default/7419746026294632999'/><link rel='alternate' type='text/html' href='http://mucahiduslu.blogspot.com/2012/01/linq-to-datatable.html' title='Linq to DataTable'/><author><name>MUCAHID USLU</name><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-935222733255608566.post-4583747250290345727</id><published>2011-12-01T01:00:00.001-08:00</published><updated>2011-12-01T01:00:31.619-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='HTML ASCII Characters'/><title type='text'>HTML ASCII Characters</title><content type='html'>&lt;table bgcolor="#EEFFDD" border="" cellpadding="0" cellspacing="1" width="600"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td colspan="3" align="CENTER" height="15%" valign="MIDDLE"&gt;&lt;h3&gt;HTML ASCII Characters&lt;/h3&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;&lt;td align="CENTER" height="15%" valign="MIDDLE" width="15%"&gt;&lt;h3&gt;codes&lt;/h3&gt;     &lt;/td&gt;&lt;td align="CENTER" height="15%" valign="MIDDLE" width="15%"&gt;&lt;h3&gt;characters&lt;/h3&gt;     &lt;/td&gt;&lt;td align="CENTER" height="15%" valign="MIDDLE" width="55%"&gt;&lt;h3&gt;character names&lt;/h3&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;&lt;td align="LEFT" height="10%"&gt;        &lt;/td&gt;&lt;td align="CENTER" height="10%"&gt; &lt;/td&gt;             &lt;td height="10%"&gt;  ASCII: space (usually one em wide)&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;&lt;td align="LEFT"&gt;  !   &lt;/td&gt;&lt;td align="CENTER"&gt;!&lt;/td&gt;   &lt;td&gt;  ASCII: exclamation mark                         &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  "   &lt;/td&gt;&lt;td align="CENTER"&gt;"&lt;/td&gt;   &lt;td&gt;  ASCII: quotation mark                      &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  #   &lt;/td&gt;&lt;td align="CENTER"&gt;#&lt;/td&gt;   &lt;td&gt;  ASCII: number sign                              &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  $   &lt;/td&gt;&lt;td align="CENTER"&gt;$&lt;/td&gt;   &lt;td&gt;  ASCII: dollar sign                              &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  %   &lt;/td&gt;&lt;td align="CENTER"&gt;%&lt;/td&gt;   &lt;td&gt;  ASCII: percent sign                             &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  &amp;amp;   &lt;/td&gt;&lt;td align="CENTER"&gt;&amp;amp;&lt;/td&gt;   &lt;td&gt;  ASCII: ampersand                           &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  '   &lt;/td&gt;&lt;td align="CENTER"&gt;'&lt;/td&gt;   &lt;td&gt;  ASCII: apostrophe-quote                         &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  (   &lt;/td&gt;&lt;td align="CENTER"&gt;(&lt;/td&gt;   &lt;td&gt;  ASCII: opening parenthesis                      &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  )   &lt;/td&gt;&lt;td align="CENTER"&gt;)&lt;/td&gt;   &lt;td&gt;  ASCII: closing parenthesis                      &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  *   &lt;/td&gt;&lt;td align="CENTER"&gt;*&lt;/td&gt;   &lt;td&gt;  ASCII: asterisk                                 &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  +   &lt;/td&gt;&lt;td align="CENTER"&gt;+&lt;/td&gt;   &lt;td&gt;  ASCII: plus sign                                &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  ,   &lt;/td&gt;&lt;td align="CENTER"&gt;,&lt;/td&gt;   &lt;td&gt;  ASCII: comma                                    &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  -   &lt;/td&gt;&lt;td align="CENTER"&gt;-&lt;/td&gt;   &lt;td&gt;  ASCII: hyphen-minus                             &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  .   &lt;/td&gt;&lt;td align="CENTER"&gt;.&lt;/td&gt;   &lt;td&gt;  ASCII: period                                   &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  /   &lt;/td&gt;&lt;td align="CENTER"&gt;/&lt;/td&gt;   &lt;td&gt;  ASCII: slash                                    &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  0   &lt;/td&gt;&lt;td align="CENTER"&gt;0&lt;/td&gt;   &lt;td&gt;  ASCII: digit zero                               &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  1   &lt;/td&gt;&lt;td align="CENTER"&gt;1&lt;/td&gt;   &lt;td&gt;  ASCII: digit one                                &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  2   &lt;/td&gt;&lt;td align="CENTER"&gt;2&lt;/td&gt;   &lt;td&gt;  ASCII: digit two                                &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  3   &lt;/td&gt;&lt;td align="CENTER"&gt;3&lt;/td&gt;   &lt;td&gt;  ASCII: digit three                              &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  4   &lt;/td&gt;&lt;td align="CENTER"&gt;4&lt;/td&gt;   &lt;td&gt;  ASCII: digit four                               &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  5   &lt;/td&gt;&lt;td align="CENTER"&gt;5&lt;/td&gt;   &lt;td&gt;  ASCII: digit five                               &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  6   &lt;/td&gt;&lt;td align="CENTER"&gt;6&lt;/td&gt;   &lt;td&gt;  ASCII: digit six                                &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  7   &lt;/td&gt;&lt;td align="CENTER"&gt;7&lt;/td&gt;   &lt;td&gt;  ASCII: digit seven                              &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  8   &lt;/td&gt;&lt;td align="CENTER"&gt;8&lt;/td&gt;   &lt;td&gt;  ASCII: digit eight                              &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  9   &lt;/td&gt;&lt;td align="CENTER"&gt;9&lt;/td&gt;   &lt;td&gt;  ASCII: digit nine                               &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  :   &lt;/td&gt;&lt;td align="CENTER"&gt;:&lt;/td&gt;   &lt;td&gt;  ASCII: colon                                    &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  ;   &lt;/td&gt;&lt;td align="CENTER"&gt;;&lt;/td&gt;   &lt;td&gt;  ASCII: semicolon                                &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  &amp;lt;   &lt;/td&gt;&lt;td align="CENTER"&gt;&amp;lt;&lt;/td&gt;   &lt;td&gt;  ASCII: less-than sign                      &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  =   &lt;/td&gt;&lt;td align="CENTER"&gt;=&lt;/td&gt;   &lt;td&gt;  ASCII: equals sign                              &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  &amp;gt;   &lt;/td&gt;&lt;td align="CENTER"&gt;&amp;gt;&lt;/td&gt;   &lt;td&gt;  ASCII: greater-than sign                   &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  ?   &lt;/td&gt;&lt;td align="CENTER"&gt;?&lt;/td&gt;   &lt;td&gt;  ASCII: question mark                            &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  @   &lt;/td&gt;&lt;td align="CENTER"&gt;@&lt;/td&gt;   &lt;td&gt;  ASCII: commercial at                            &lt;/td&gt;&lt;/tr&gt;      &lt;tr&gt;&lt;td align="LEFT"&gt;  A   &lt;/td&gt;&lt;td align="CENTER"&gt;A&lt;/td&gt;   &lt;td&gt;  ASCII: Latin Capital Letter A                   &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  B   &lt;/td&gt;&lt;td align="CENTER"&gt;B&lt;/td&gt;   &lt;td&gt;  ASCII: Latin Capital Letter B                   &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  C   &lt;/td&gt;&lt;td align="CENTER"&gt;C&lt;/td&gt;   &lt;td&gt;  ASCII: Latin Capital Letter C                   &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  D   &lt;/td&gt;&lt;td align="CENTER"&gt;D&lt;/td&gt;   &lt;td&gt;  ASCII: Latin Capital Letter D                   &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  E   &lt;/td&gt;&lt;td align="CENTER"&gt;E&lt;/td&gt;   &lt;td&gt;  ASCII: Latin Capital Letter E                   &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  F   &lt;/td&gt;&lt;td align="CENTER"&gt;F&lt;/td&gt;   &lt;td&gt;  ASCII: Latin Capital Letter F                   &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  G   &lt;/td&gt;&lt;td align="CENTER"&gt;G&lt;/td&gt;   &lt;td&gt;  ASCII: Latin Capital Letter G                   &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  H   &lt;/td&gt;&lt;td align="CENTER"&gt;H&lt;/td&gt;   &lt;td&gt;  ASCII: Latin Capital Letter H                   &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  I   &lt;/td&gt;&lt;td align="CENTER"&gt;I&lt;/td&gt;   &lt;td&gt;  ASCII: Latin Capital Letter I                   &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  J   &lt;/td&gt;&lt;td align="CENTER"&gt;J&lt;/td&gt;   &lt;td&gt;  ASCII: Latin Capital Letter J                   &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  K   &lt;/td&gt;&lt;td align="CENTER"&gt;K&lt;/td&gt;   &lt;td&gt;  ASCII: Latin Capital Letter K                   &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  L   &lt;/td&gt;&lt;td align="CENTER"&gt;L&lt;/td&gt;   &lt;td&gt;  ASCII: Latin Capital Letter L                   &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  M   &lt;/td&gt;&lt;td align="CENTER"&gt;M&lt;/td&gt;   &lt;td&gt;  ASCII: Latin Capital Letter M                   &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  N   &lt;/td&gt;&lt;td align="CENTER"&gt;N&lt;/td&gt;   &lt;td&gt;  ASCII: Latin Capital Letter N                   &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  O   &lt;/td&gt;&lt;td align="CENTER"&gt;O&lt;/td&gt;   &lt;td&gt;  ASCII: Latin Capital Letter O                   &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  P   &lt;/td&gt;&lt;td align="CENTER"&gt;P&lt;/td&gt;   &lt;td&gt;  ASCII: Latin Capital Letter P                   &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  Q   &lt;/td&gt;&lt;td align="CENTER"&gt;Q&lt;/td&gt;   &lt;td&gt;  ASCII: Latin Capital Letter Q                   &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  R   &lt;/td&gt;&lt;td align="CENTER"&gt;R&lt;/td&gt;   &lt;td&gt;  ASCII: Latin Capital Letter R                   &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  S   &lt;/td&gt;&lt;td align="CENTER"&gt;S&lt;/td&gt;   &lt;td&gt;  ASCII: Latin Capital Letter S                   &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  T   &lt;/td&gt;&lt;td align="CENTER"&gt;T&lt;/td&gt;   &lt;td&gt;  ASCII: Latin Capital Letter T                   &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  U   &lt;/td&gt;&lt;td align="CENTER"&gt;U&lt;/td&gt;   &lt;td&gt;  ASCII: Latin Capital Letter U                   &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  V   &lt;/td&gt;&lt;td align="CENTER"&gt;V&lt;/td&gt;   &lt;td&gt;  ASCII: Latin Capital Letter V                   &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  W   &lt;/td&gt;&lt;td align="CENTER"&gt;W&lt;/td&gt;   &lt;td&gt;  ASCII: Latin Capital Letter W                   &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  X   &lt;/td&gt;&lt;td align="CENTER"&gt;X&lt;/td&gt;   &lt;td&gt;  ASCII: Latin Capital Letter X                   &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  Y   &lt;/td&gt;&lt;td align="CENTER"&gt;Y&lt;/td&gt;   &lt;td&gt;  ASCII: Latin Capital Letter Y                   &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  Z   &lt;/td&gt;&lt;td align="CENTER"&gt;Z&lt;/td&gt;   &lt;td&gt;  ASCII: Latin Capital Letter Z                   &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  [   &lt;/td&gt;&lt;td align="CENTER"&gt;[&lt;/td&gt;   &lt;td&gt;  ASCII: opening square bracket                   &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  \   &lt;/td&gt;&lt;td align="CENTER"&gt;\&lt;/td&gt;   &lt;td&gt;  ASCII: backslash                                &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  ]   &lt;/td&gt;&lt;td align="CENTER"&gt;]&lt;/td&gt;   &lt;td&gt;  ASCII: closing square bracket                   &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  ^   &lt;/td&gt;&lt;td align="CENTER"&gt;^&lt;/td&gt;   &lt;td&gt;  ASCII: spacing circumflex                       &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  _   &lt;/td&gt;&lt;td align="CENTER"&gt;_&lt;/td&gt;   &lt;td&gt;  ASCII: spacing underscore                       &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  `   &lt;/td&gt;&lt;td align="CENTER"&gt;`&lt;/td&gt;   &lt;td&gt;  ASCII: spacing grave                            &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  a   &lt;/td&gt;&lt;td align="CENTER"&gt;a&lt;/td&gt;   &lt;td&gt;  ASCII: Latin Small Letter A                     &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  b   &lt;/td&gt;&lt;td align="CENTER"&gt;b&lt;/td&gt;   &lt;td&gt;  ASCII: Latin Small Letter B                     &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  c   &lt;/td&gt;&lt;td align="CENTER"&gt;c&lt;/td&gt;   &lt;td&gt;  ASCII: Latin Small Letter C                     &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  d   &lt;/td&gt;&lt;td align="CENTER"&gt;d&lt;/td&gt;   &lt;td&gt;  ASCII: Latin Small Letter D                     &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  e   &lt;/td&gt;&lt;td align="CENTER"&gt;e&lt;/td&gt;   &lt;td&gt;  ASCII: Latin Small Letter E                     &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  f   &lt;/td&gt;&lt;td align="CENTER"&gt;f&lt;/td&gt;   &lt;td&gt;  ASCII: Latin Small Letter F                     &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  g   &lt;/td&gt;&lt;td align="CENTER"&gt;g&lt;/td&gt;   &lt;td&gt;  ASCII: Latin Small Letter G                     &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  h   &lt;/td&gt;&lt;td align="CENTER"&gt;h&lt;/td&gt;   &lt;td&gt;  ASCII: Latin Small Letter H                     &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  i   &lt;/td&gt;&lt;td align="CENTER"&gt;i&lt;/td&gt;   &lt;td&gt;  ASCII: Latin Small Letter I                     &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  j   &lt;/td&gt;&lt;td align="CENTER"&gt;j&lt;/td&gt;   &lt;td&gt;  ASCII: Latin Small Letter J                     &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  k   &lt;/td&gt;&lt;td align="CENTER"&gt;k&lt;/td&gt;   &lt;td&gt;  ASCII: Latin Small Letter K                     &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  l   &lt;/td&gt;&lt;td align="CENTER"&gt;l&lt;/td&gt;   &lt;td&gt;  ASCII: Latin Small Letter L                     &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  m   &lt;/td&gt;&lt;td align="CENTER"&gt;m&lt;/td&gt;   &lt;td&gt;  ASCII: Latin Small Letter M                     &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  n   &lt;/td&gt;&lt;td align="CENTER"&gt;n&lt;/td&gt;   &lt;td&gt;  ASCII: Latin Small Letter N                     &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  o   &lt;/td&gt;&lt;td align="CENTER"&gt;o&lt;/td&gt;   &lt;td&gt;  ASCII: Latin Small Letter O                     &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  p   &lt;/td&gt;&lt;td align="CENTER"&gt;p&lt;/td&gt;   &lt;td&gt;  ASCII: Latin Small Letter P                     &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  q   &lt;/td&gt;&lt;td align="CENTER"&gt;q&lt;/td&gt;   &lt;td&gt;  ASCII: Latin Small Letter Q                     &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  r   &lt;/td&gt;&lt;td align="CENTER"&gt;r&lt;/td&gt;   &lt;td&gt;  ASCII: Latin Small Letter R                     &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  s   &lt;/td&gt;&lt;td align="CENTER"&gt;s&lt;/td&gt;   &lt;td&gt;  ASCII: Latin Small Letter S                     &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  t   &lt;/td&gt;&lt;td align="CENTER"&gt;t&lt;/td&gt;   &lt;td&gt;  ASCII: Latin Small Letter T                     &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  u   &lt;/td&gt;&lt;td align="CENTER"&gt;u&lt;/td&gt;   &lt;td&gt;  ASCII: Latin Small Letter U                     &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  v   &lt;/td&gt;&lt;td align="CENTER"&gt;v&lt;/td&gt;   &lt;td&gt;  ASCII: Latin Small Letter V                     &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  w   &lt;/td&gt;&lt;td align="CENTER"&gt;w&lt;/td&gt;   &lt;td&gt;  ASCII: Latin Small Letter W                     &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  x   &lt;/td&gt;&lt;td align="CENTER"&gt;x&lt;/td&gt;   &lt;td&gt;  ASCII: Latin Small Letter X                     &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  y   &lt;/td&gt;&lt;td align="CENTER"&gt;y&lt;/td&gt;   &lt;td&gt;  ASCII: Latin Small Letter Y                     &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  z   &lt;/td&gt;&lt;td align="CENTER"&gt;z&lt;/td&gt;   &lt;td&gt;  ASCII: Latin Small Letter Z                     &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  {   &lt;/td&gt;&lt;td align="CENTER"&gt;{&lt;/td&gt;   &lt;td&gt;  ASCII: opening curly bracket                    &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  |   &lt;/td&gt;&lt;td align="CENTER"&gt;|&lt;/td&gt;   &lt;td&gt;  ASCII: vertical bar                             &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  }   &lt;/td&gt;&lt;td align="CENTER"&gt;}&lt;/td&gt;   &lt;td&gt;  ASCII: closing curly bracket                    &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  ~   &lt;/td&gt;&lt;td align="CENTER"&gt;~&lt;/td&gt;   &lt;td&gt;  ASCII: tilde                                    &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;     &lt;/td&gt;&lt;td align="CENTER"&gt;&lt;/td&gt;   &lt;td&gt;  ASCII: DEL (ctrl DELETE)                        &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  €   &lt;/td&gt;&lt;td align="CENTER"&gt;?&lt;/td&gt;   &lt;td&gt;                                                  &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  &lt;/td&gt;&lt;td align="CENTER"&gt;&lt;/td&gt;&lt;td&gt;                                                  &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  ‚&lt;/td&gt;&lt;td align="CENTER"&gt;‚&lt;/td&gt;&lt;td&gt;  ASCII: Comma                                    &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  ƒ&lt;/td&gt;&lt;td align="CENTER"&gt;ƒ&lt;/td&gt;&lt;td&gt;  ASCII: Latin Small Letter F Script              &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  „&lt;/td&gt;&lt;td align="CENTER"&gt;„&lt;/td&gt;&lt;td&gt;  ASCII: Double Prime Quote Mark Low              &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  …&lt;/td&gt;&lt;td align="CENTER"&gt;…&lt;/td&gt;&lt;td&gt;  ASCII: Ellipsis Low                             &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  †&lt;/td&gt;&lt;td align="CENTER"&gt;†&lt;/td&gt;&lt;td&gt;  ASCII: Dagger                                   &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  ‡&lt;/td&gt;&lt;td align="CENTER"&gt;‡&lt;/td&gt;&lt;td&gt;  ASCII: Double Dagger                            &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  ˆ&lt;/td&gt;&lt;td align="CENTER"&gt;ˆ&lt;/td&gt;&lt;td&gt;  ASCII: Circumflex                               &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  ‰&lt;/td&gt;&lt;td align="CENTER"&gt;‰&lt;/td&gt;&lt;td&gt;  ASCII: Per Mille (thousand) sign                &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  Š&lt;/td&gt;&lt;td align="CENTER"&gt;Š&lt;/td&gt;&lt;td&gt;  ASCII: Latin Capital Letter S Hacek             &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  ‹&lt;/td&gt;&lt;td align="CENTER"&gt;‹&lt;/td&gt;&lt;td&gt;  ASCII: Less-than sign                           &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  Œ&lt;/td&gt;&lt;td align="CENTER"&gt;Œ&lt;/td&gt;&lt;td&gt;  ASCII: Latin Capital Letter OE                  &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  &lt;/td&gt;&lt;td align="CENTER"&gt;&lt;/td&gt;&lt;td&gt;                                                  &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  Ž&lt;/td&gt;&lt;td align="CENTER"&gt;Ž&lt;/td&gt;&lt;td&gt;                                                  &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  &lt;/td&gt;&lt;td align="CENTER"&gt;&lt;/td&gt;&lt;td&gt;                                                  &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  &lt;/td&gt;&lt;td align="CENTER"&gt;&lt;/td&gt;&lt;td&gt;                                                  &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  ‘&lt;/td&gt;&lt;td align="CENTER"&gt;‘&lt;/td&gt;&lt;td&gt;  ASCII: Opening Single Quotation Mark            &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  ’&lt;/td&gt;&lt;td align="CENTER"&gt;’&lt;/td&gt;&lt;td&gt;  ASCII: Closing Single Quotation Mark            &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  “&lt;/td&gt;&lt;td align="CENTER"&gt;“&lt;/td&gt;&lt;td&gt;  ASCII: Opening Double Quotation Mark            &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  ”&lt;/td&gt;&lt;td align="CENTER"&gt;”&lt;/td&gt;&lt;td&gt;  ASCII: Closing Double Quotation Mark            &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  •&lt;/td&gt;&lt;td align="CENTER"&gt;•&lt;/td&gt;&lt;td&gt;  ASCII: Bullet                                   &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  –&lt;/td&gt;&lt;td align="CENTER"&gt;–&lt;/td&gt;&lt;td&gt;  ASCII: Hyphen or En-dash                        &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  —&lt;/td&gt;&lt;td align="CENTER"&gt;—&lt;/td&gt;&lt;td&gt;  ASCII: Em-dash                                  &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  ˜&lt;/td&gt;&lt;td align="CENTER"&gt;˜&lt;/td&gt;&lt;td&gt;  ASCII: Tilde accent                             &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  ™&lt;/td&gt;&lt;td align="CENTER"&gt;™&lt;/td&gt;&lt;td&gt;  ASCII: Trade Mark sign                          &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  š&lt;/td&gt;&lt;td align="CENTER"&gt;š&lt;/td&gt;&lt;td&gt;  ASCII: Latin Small Letter S Hacek               &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  ›&lt;/td&gt;&lt;td align="CENTER"&gt;›&lt;/td&gt;&lt;td&gt;  ASCII: Greater-Than sign                        &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  œ&lt;/td&gt;&lt;td align="CENTER"&gt;œ&lt;/td&gt;&lt;td&gt;  ASCII: Latin Small Letter OE                    &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  &lt;/td&gt;&lt;td align="CENTER"&gt;&lt;/td&gt;&lt;td&gt;                                                  &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  ž&lt;/td&gt;&lt;td align="CENTER"&gt;ž&lt;/td&gt;&lt;td&gt;                                             &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  Ÿ&lt;/td&gt;&lt;td align="CENTER"&gt;Ÿ&lt;/td&gt;&lt;td&gt;  ASCII: Latin Capital Letter Y Umlaut       &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  &amp;nbsp;&lt;/td&gt;&lt;td align="CENTER"&gt; &lt;/td&gt;&lt;td&gt;                                            &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  ¡&lt;/td&gt;&lt;td align="CENTER"&gt;¡&lt;/td&gt;&lt;td&gt;  ASCII: Latin Small Letter I                     &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  ¢&lt;/td&gt;&lt;td align="CENTER"&gt;¢&lt;/td&gt;&lt;td&gt;  ASCII: Cent                                     &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  £&lt;/td&gt;&lt;td align="CENTER"&gt;£&lt;/td&gt;&lt;td&gt;  ASCII: Pound Sterling                           &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  ¤&lt;/td&gt;&lt;td align="CENTER"&gt;¤&lt;/td&gt;&lt;td&gt;  ASCII: Currency sign                            &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  ¥&lt;/td&gt;&lt;td align="CENTER"&gt;¥&lt;/td&gt;&lt;td&gt;  ASCII: Yen                                      &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  ¦&lt;/td&gt;&lt;td align="CENTER"&gt;¦&lt;/td&gt;&lt;td&gt;  ASCII: Latin Letter Pipe                        &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  §&lt;/td&gt;&lt;td align="CENTER"&gt;§&lt;/td&gt;&lt;td&gt;  ASCII: Section sign                             &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  ¨&lt;/td&gt;&lt;td align="CENTER"&gt;¨&lt;/td&gt;&lt;td&gt;  ASCII: Umlaut accent                            &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  ©&lt;/td&gt;&lt;td align="CENTER"&gt;©&lt;/td&gt;&lt;td&gt;  ASCII: Copyright sign                           &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  ª&lt;/td&gt;&lt;td align="CENTER"&gt;ª&lt;/td&gt;&lt;td&gt;  ASCII: Superscript Small Letter A               &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  «&lt;/td&gt;&lt;td align="CENTER"&gt;«&lt;/td&gt;&lt;td&gt;  ASCII: Left Double-Angle Quotation Mark         &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  ¬&lt;/td&gt;&lt;td align="CENTER"&gt;¬&lt;/td&gt;&lt;td&gt;  ASCII: NOT (Math)                               &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  ­&lt;/td&gt;&lt;td align="CENTER"&gt;­&lt;/td&gt;&lt;td&gt;  ASCII: Hyphen                              &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  ®&lt;/td&gt;&lt;td align="CENTER"&gt;®&lt;/td&gt;&lt;td&gt;  ASCII: Registered Name                          &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  ¯&lt;/td&gt;&lt;td align="CENTER"&gt;¯&lt;/td&gt;&lt;td&gt;  ASCII: APL Overbar. Macron accent               &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  °&lt;/td&gt;&lt;td align="CENTER"&gt;°&lt;/td&gt;&lt;td&gt;  ASCII: Ring accent                              &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  ±&lt;/td&gt;&lt;td align="CENTER"&gt;±&lt;/td&gt;&lt;td&gt;  ASCII: Plus-Minus sign                          &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  ²&lt;/td&gt;&lt;td align="CENTER"&gt;²&lt;/td&gt;&lt;td&gt;  ASCII: Superscript Numeral Two, Squared         &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  ³&lt;/td&gt;&lt;td align="CENTER"&gt;³&lt;/td&gt;&lt;td&gt;  ASCII: Superscript Numeral Three, Cubed         &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  ´&lt;/td&gt;&lt;td align="CENTER"&gt;´&lt;/td&gt;&lt;td&gt;  ASCII: Grave accent (?)                         &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  µ&lt;/td&gt;&lt;td align="CENTER"&gt;µ&lt;/td&gt;&lt;td&gt;  ASCII: Mu or Micro sign                         &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  ¶&lt;/td&gt;&lt;td align="CENTER"&gt;¶&lt;/td&gt;&lt;td&gt;  ASCII: Paragraph or Pilcrow sign                &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  ·&lt;/td&gt;&lt;td align="CENTER"&gt;·&lt;/td&gt;&lt;td&gt;  ASCII: Middle Dot                               &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  ¸&lt;/td&gt;&lt;td align="CENTER"&gt;¸&lt;/td&gt;&lt;td&gt;  ASCII: Cedilla Accent                           &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  ¹&lt;/td&gt;&lt;td align="CENTER"&gt;¹&lt;/td&gt;&lt;td&gt;  ASCII: Superscript Numeral One                  &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  º&lt;/td&gt;&lt;td align="CENTER"&gt;º&lt;/td&gt;&lt;td&gt;  ASCII: Degree, Ring Accent                      &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  »&lt;/td&gt;&lt;td align="CENTER"&gt;»&lt;/td&gt;&lt;td&gt;  ASCII: Right Double-Angle Quotation Mark        &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  ¼&lt;/td&gt;&lt;td align="CENTER"&gt;¼&lt;/td&gt;&lt;td&gt;  ASCII: One Quarter                              &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  ½&lt;/td&gt;&lt;td align="CENTER"&gt;½&lt;/td&gt;&lt;td&gt;  ASCII: One Half                                 &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  ¾&lt;/td&gt;&lt;td align="CENTER"&gt;¾&lt;/td&gt;&lt;td&gt;  ASCII: Three Quarters                           &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  ¿&lt;/td&gt;&lt;td align="CENTER"&gt;¿&lt;/td&gt;&lt;td&gt;  ASCII: Turned Question Mark                     &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  À&lt;/td&gt;&lt;td align="CENTER"&gt;À&lt;/td&gt;&lt;td&gt;  ASCII: Capital Letter A Grave                   &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  Á&lt;/td&gt;&lt;td align="CENTER"&gt;Á&lt;/td&gt;&lt;td&gt;  ASCII: Latin Capital Letter A Acute             &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  Â&lt;/td&gt;&lt;td align="CENTER"&gt;Â&lt;/td&gt;&lt;td&gt;  ASCII: Latin Capital Letter A Circumflex        &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  Ã&lt;/td&gt;&lt;td align="CENTER"&gt;Ã&lt;/td&gt;&lt;td&gt;  ASCII: Latin Capital Letter A Tilde             &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  Ä&lt;/td&gt;&lt;td align="CENTER"&gt;Ä&lt;/td&gt;&lt;td&gt;  ASCII: Latin Capital Letter A Umlaut            &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  Å&lt;/td&gt;&lt;td align="CENTER"&gt;Å&lt;/td&gt;&lt;td&gt;  ASCII: Latin Capital Letter A Ring              &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  Æ&lt;/td&gt;&lt;td align="CENTER"&gt;Æ&lt;/td&gt;&lt;td&gt;  ASCII: Latin Capital Letter AE                  &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  Ç&lt;/td&gt;&lt;td align="CENTER"&gt;Ç&lt;/td&gt;&lt;td&gt;  ASCII: Latin Capital Letter C Cedilla           &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  È&lt;/td&gt;&lt;td align="CENTER"&gt;È&lt;/td&gt;&lt;td&gt;  ASCII: Latin Capital Letter E Grave             &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  É&lt;/td&gt;&lt;td align="CENTER"&gt;É&lt;/td&gt;&lt;td&gt;  ASCII: Latin Capital Letter A Acute             &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  Ê&lt;/td&gt;&lt;td align="CENTER"&gt;Ê&lt;/td&gt;&lt;td&gt;  ASCII: Latin Capital Letter E Circumflex        &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  Ë&lt;/td&gt;&lt;td align="CENTER"&gt;Ë&lt;/td&gt;&lt;td&gt;  ASCII: Latin Capital Letter E Umlaut            &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  Ì&lt;/td&gt;&lt;td align="CENTER"&gt;Ì&lt;/td&gt;&lt;td&gt;  ASCII: Latin Capital Letter I Grave             &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  Í&lt;/td&gt;&lt;td align="CENTER"&gt;Í&lt;/td&gt;&lt;td&gt;  ASCII: Latin Capital Letter I Acute             &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  Î&lt;/td&gt;&lt;td align="CENTER"&gt;Î&lt;/td&gt;&lt;td&gt;  ASCII: Latin Capital Letter I Circumflex        &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  Ï&lt;/td&gt;&lt;td align="CENTER"&gt;Ï&lt;/td&gt;&lt;td&gt;  ASCII: Latin Capital Letter I Umlaut            &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  Ð&lt;/td&gt;&lt;td align="CENTER"&gt;Ð&lt;/td&gt;&lt;td&gt;  ASCII: Latin Capital Letter Eth, D Bar          &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  Ñ&lt;/td&gt;&lt;td align="CENTER"&gt;Ñ&lt;/td&gt;&lt;td&gt;  ASCII: Latin Capital Letter N Tilde             &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  Ò&lt;/td&gt;&lt;td align="CENTER"&gt;Ò&lt;/td&gt;&lt;td&gt;  ASCII: Latin Capital Letter O Grave             &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  Ó&lt;/td&gt;&lt;td align="CENTER"&gt;Ó&lt;/td&gt;&lt;td&gt;  ASCII: Latin Capital Letter O Acute             &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  Ô&lt;/td&gt;&lt;td align="CENTER"&gt;Ô&lt;/td&gt;&lt;td&gt;  ASCII: Latin Capital Letter O Circumflex        &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  Õ&lt;/td&gt;&lt;td align="CENTER"&gt;Õ&lt;/td&gt;&lt;td&gt;  ASCII: Latin Capital Letter O Tilde             &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  Ö&lt;/td&gt;&lt;td align="CENTER"&gt;Ö&lt;/td&gt;&lt;td&gt;  ASCII: Latin Capital Letter O Umlaut            &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  ×&lt;/td&gt;&lt;td align="CENTER"&gt;×&lt;/td&gt;&lt;td&gt;  ASCII: Multiplication sign                      &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  Ø&lt;/td&gt;&lt;td align="CENTER"&gt;Ø&lt;/td&gt;&lt;td&gt;  ASCII: Greek Letter Phi                         &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  Ù&lt;/td&gt;&lt;td align="CENTER"&gt;Ù&lt;/td&gt;&lt;td&gt;  ASCII: Latin Capital Letter U Grave             &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  Ú&lt;/td&gt;&lt;td align="CENTER"&gt;Ú&lt;/td&gt;&lt;td&gt;  ASCII: Latin Capital Letter U Acute             &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  Û&lt;/td&gt;&lt;td align="CENTER"&gt;Û&lt;/td&gt;&lt;td&gt;  ASCII: Latin Capital Letter U Circumflex        &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  Ü&lt;/td&gt;&lt;td align="CENTER"&gt;Ü&lt;/td&gt;&lt;td&gt;  ASCII: Latin Capital Letter U Umlaut            &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  Ý&lt;/td&gt;&lt;td align="CENTER"&gt;Ý&lt;/td&gt;&lt;td&gt;  ASCII: Latin Capital Letter Y Acute             &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  Þ&lt;/td&gt;&lt;td align="CENTER"&gt;Þ&lt;/td&gt;&lt;td&gt;  ASCII: Latin Small Letter Thorn                 &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  ß&lt;/td&gt;&lt;td align="CENTER"&gt;ß&lt;/td&gt;&lt;td&gt;  ASCII: Latin Small Letter Sharp S, Ess-Zed      &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  à&lt;/td&gt;&lt;td align="CENTER"&gt;à&lt;/td&gt;&lt;td&gt;  ASCII: Latin Small Letter A Grave               &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  á&lt;/td&gt;&lt;td align="CENTER"&gt;á&lt;/td&gt;&lt;td&gt;  ASCII: Latin Small Letter A Acute               &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  â&lt;/td&gt;&lt;td align="CENTER"&gt;â&lt;/td&gt;&lt;td&gt;  ASCII: Latin Small Letter A Circumflex          &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  ã&lt;/td&gt;&lt;td align="CENTER"&gt;ã&lt;/td&gt;&lt;td&gt;  ASCII: Latin Small Letter A Tilde               &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  ä&lt;/td&gt;&lt;td align="CENTER"&gt;ä&lt;/td&gt;&lt;td&gt;  ASCII: Latin Small Letter A Umlaut              &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  å&lt;/td&gt;&lt;td align="CENTER"&gt;å&lt;/td&gt;&lt;td&gt;  ASCII: Latin Small Letter A Ring                &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  æ&lt;/td&gt;&lt;td align="CENTER"&gt;æ&lt;/td&gt;&lt;td&gt;  ASCII: Latin Small Letter AE                    &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  ç&lt;/td&gt;&lt;td align="CENTER"&gt;ç&lt;/td&gt;&lt;td&gt;  ASCII: Latin Small Letter C Cedilla             &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  è&lt;/td&gt;&lt;td align="CENTER"&gt;è&lt;/td&gt;&lt;td&gt;  ASCII: Latin Small Letter E Grave               &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  é&lt;/td&gt;&lt;td align="CENTER"&gt;é&lt;/td&gt;&lt;td&gt;  ASCII: Latin Small Letter E Acute               &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  ê&lt;/td&gt;&lt;td align="CENTER"&gt;ê&lt;/td&gt;&lt;td&gt;  ASCII: Latin Small Letter E Circumflex          &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  ë&lt;/td&gt;&lt;td align="CENTER"&gt;ë&lt;/td&gt;&lt;td&gt;  ASCII: Latin Small Letter E Umlaut              &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  ì&lt;/td&gt;&lt;td align="CENTER"&gt;ì&lt;/td&gt;&lt;td&gt;  ASCII: Latin Small Letter I Grave               &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  í&lt;/td&gt;&lt;td align="CENTER"&gt;í&lt;/td&gt;&lt;td&gt;  ASCII: Latin Small Letter I Acute               &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  î&lt;/td&gt;&lt;td align="CENTER"&gt;î&lt;/td&gt;&lt;td&gt;  ASCII: Latin Small Letter I Circumflex          &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  ï&lt;/td&gt;&lt;td align="CENTER"&gt;ï&lt;/td&gt;&lt;td&gt;  ASCII: Latin Small Letter I Umlaut              &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  ð&lt;/td&gt;&lt;td align="CENTER"&gt;ð&lt;/td&gt;&lt;td&gt;  ASCII: Latin Small Letter Eth                   &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  ñ&lt;/td&gt;&lt;td align="CENTER"&gt;ñ&lt;/td&gt;&lt;td&gt;  ASCII: Latin Small Letter N Tilde               &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  ò&lt;/td&gt;&lt;td align="CENTER"&gt;ò&lt;/td&gt;&lt;td&gt;  ASCII: Latin Small Letter O Grave               &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  ó&lt;/td&gt;&lt;td align="CENTER"&gt;ó&lt;/td&gt;&lt;td&gt;  ASCII: Latin Small Letter O Acute               &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  ô&lt;/td&gt;&lt;td align="CENTER"&gt;ô&lt;/td&gt;&lt;td&gt;  ASCII: Latin Small Letter O Circumflex          &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  õ&lt;/td&gt;&lt;td align="CENTER"&gt;õ&lt;/td&gt;&lt;td&gt;  ASCII: Latin Small Letter O Tilde               &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  ö&lt;/td&gt;&lt;td align="CENTER"&gt;ö&lt;/td&gt;&lt;td&gt;  ASCII: Latin Small Letter O Umlaut              &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  ÷&lt;/td&gt;&lt;td align="CENTER"&gt;÷&lt;/td&gt;&lt;td&gt;  ASCII: Division sign                            &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  ø&lt;/td&gt;&lt;td align="CENTER"&gt;ø&lt;/td&gt;&lt;td&gt;  ASCII: Greek Small Letter Phi                   &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  ù&lt;/td&gt;&lt;td align="CENTER"&gt;ù&lt;/td&gt;&lt;td&gt;  ASCII: Latin Small Letter U Grave               &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  ú&lt;/td&gt;&lt;td align="CENTER"&gt;ú&lt;/td&gt;&lt;td&gt;  ASCII: Latin Small Letter U Acute               &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  û&lt;/td&gt;&lt;td align="CENTER"&gt;û&lt;/td&gt;&lt;td&gt;  ASCII: Latin Small Letter U Circumflex          &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  ü&lt;/td&gt;&lt;td align="CENTER"&gt;ü&lt;/td&gt;&lt;td&gt;  ASCII: Latin Small Letter U Umlaut              &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  ý&lt;/td&gt;&lt;td align="CENTER"&gt;ý&lt;/td&gt;&lt;td&gt;  ASCII: Latin Small Letter Y Acute               &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  þ&lt;/td&gt;&lt;td align="CENTER"&gt;þ&lt;/td&gt;&lt;td&gt;  ASCII: Latin Capital Letter Thorn               &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td align="LEFT"&gt;  ÿ&lt;/td&gt;&lt;td align="CENTER"&gt;ÿ&lt;/td&gt;&lt;td&gt;  ASCII: Latin Small Letter Y Umlaut              &lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/935222733255608566-4583747250290345727?l=mucahiduslu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mucahiduslu.blogspot.com/feeds/4583747250290345727/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=935222733255608566&amp;postID=4583747250290345727' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/935222733255608566/posts/default/4583747250290345727'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/935222733255608566/posts/default/4583747250290345727'/><link rel='alternate' type='text/html' href='http://mucahiduslu.blogspot.com/2011/12/html-ascii-characters.html' title='HTML ASCII Characters'/><author><name>MUCAHID USLU</name><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-935222733255608566.post-812538716698507768</id><published>2010-10-30T10:19:00.000-07:00</published><updated>2010-10-30T10:55:52.766-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dot net'/><category scheme='http://www.blogger.com/atom/ns#' term='jquery'/><category scheme='http://www.blogger.com/atom/ns#' term='VS 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='intellisense'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows7'/><title type='text'>How to set jQuery intellisense plugin onto VS 2008 ?</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;This instruction is compliant with Windows 7.&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1- Install VS 2008 SP1 , you can download it for free &lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=FBEE1648-7106-44A7-9649-6D9F6D58056E&amp;amp;displaylang=en"&gt;here&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;div&gt;2- After installation of SP1, restart windows&lt;/div&gt;&lt;div&gt;.&lt;/div&gt;&lt;div&gt;3- Then, install jQuery intellisense hotfix, you can download for free &lt;a href="http://code.msdn.microsoft.com/KB958502/Release/ProjectReleases.aspx?ReleaseId=1736"&gt;here&lt;/a&gt;. (KB958502)&lt;/div&gt;&lt;div&gt;4- Restart VS 2008.&lt;/div&gt;5 - Add jQuery library and its vsdoc file to your application. You can download &lt;a href="http://docs.jquery.com/Downloading_jQuery#Download_jQuery"&gt;jQuery&lt;/a&gt; here and &lt;a href="http://www.box.net/shared/tql1ebu2lc"&gt;vsdoc&lt;/a&gt; for 1.4.2&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;img src="http://2.bp.blogspot.com/_evkCDxX_4-Y/TMxW9zNsWtI/AAAAAAAAAyM/c0mjym0oMro/s400/jQuery_intellisense.png" style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 254px; height: 280px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5533893661851146962" /&gt;Finally we can start to take advantage of jquery by adding reference to your code as shown below;&lt;img src="http://3.bp.blogspot.com/_evkCDxX_4-Y/TMxb_EqQPhI/AAAAAAAAAyU/T7TmFOtyIow/s400/jquery.png" style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 91px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5533899181272350226" /&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;script src="Scripts/jquery-1.4.2.js" type="text/javascript"&gt;&lt;/script&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&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/935222733255608566-812538716698507768?l=mucahiduslu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mucahiduslu.blogspot.com/feeds/812538716698507768/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=935222733255608566&amp;postID=812538716698507768' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/935222733255608566/posts/default/812538716698507768'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/935222733255608566/posts/default/812538716698507768'/><link rel='alternate' type='text/html' href='http://mucahiduslu.blogspot.com/2010/10/how-to-set-jquery-intellisense-plugin.html' title='How to set jQuery intellisense plugin onto VS 2008 ?'/><author><name>MUCAHID USLU</name><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://2.bp.blogspot.com/_evkCDxX_4-Y/TMxW9zNsWtI/AAAAAAAAAyM/c0mjym0oMro/s72-c/jQuery_intellisense.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-935222733255608566.post-5968531733215345459</id><published>2010-10-26T01:25:00.000-07:00</published><updated>2010-10-26T01:29:53.766-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='principles'/><title type='text'>Generally accepted principles of software architecting</title><content type='html'>&lt;strong&gt;SRP&lt;/strong&gt; - The Single Responsibility Principle -&lt;br /&gt;A class should have one, and only one, reason to change.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;OCP&lt;/strong&gt; - The Open Closed Principle -&lt;br /&gt;You should be able to extend a classes behavior, without modifying it.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;LSP&lt;/strong&gt; - The Liskov Substitution Principle-&lt;br /&gt;Derived classes must be substitutable for their base classes.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;DIP&lt;/strong&gt; - The Dependency Inversion Principle-&lt;br /&gt;Depend on abstractions, not on concretions.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;ISP&lt;/strong&gt; - The Interface Segregation Principle-&lt;br /&gt;Make fine grained interfaces that are client specific&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/935222733255608566-5968531733215345459?l=mucahiduslu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mucahiduslu.blogspot.com/feeds/5968531733215345459/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=935222733255608566&amp;postID=5968531733215345459' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/935222733255608566/posts/default/5968531733215345459'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/935222733255608566/posts/default/5968531733215345459'/><link rel='alternate' type='text/html' href='http://mucahiduslu.blogspot.com/2010/10/generally-accepted-principles-of.html' title='Generally accepted principles of software architecting'/><author><name>MUCAHID USLU</name><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-935222733255608566.post-7149973837359565945</id><published>2010-10-24T00:46:00.000-07:00</published><updated>2010-10-24T00:58:50.239-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Interface'/><title type='text'>Interface Declaration</title><content type='html'>in Java:&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;public interface Report {&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;public void prepare(Document doc);&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;public void preview();&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;public void print(Document doc);&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;in C#:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;public interface Report {&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt; &lt;/span&gt;void prepare(Document doc);&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt; &lt;/span&gt;void preview();&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt; &lt;/span&gt;public void print(Document doc);  // ! wrong , compiler throws error that " The modifier &lt;span class="Apple-tab-span" style="white-space:pre"&gt;             &lt;/span&gt;//'public' is not valid for this item"&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Of course, modifiers are unneccesary in Interfaces, because of the classes have to implements methods of Interface, .net platform forces us to clean than unneccesary spesifications.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/935222733255608566-7149973837359565945?l=mucahiduslu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mucahiduslu.blogspot.com/feeds/7149973837359565945/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=935222733255608566&amp;postID=7149973837359565945' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/935222733255608566/posts/default/7149973837359565945'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/935222733255608566/posts/default/7149973837359565945'/><link rel='alternate' type='text/html' href='http://mucahiduslu.blogspot.com/2010/10/interface-declaration.html' title='Interface Declaration'/><author><name>MUCAHID USLU</name><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-935222733255608566.post-6038086239030800158</id><published>2010-10-06T23:53:00.000-07:00</published><updated>2010-10-07T00:02:20.739-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='file'/><category scheme='http://www.blogger.com/atom/ns#' term='binary'/><category scheme='http://www.blogger.com/atom/ns#' term='stream'/><category scheme='http://www.blogger.com/atom/ns#' term='replace'/><title type='text'>Replace Text Fields in Binary Data File</title><content type='html'>/*&lt;br /&gt;* @author Mucahid Uslu&lt;br /&gt;*  E-Mail: mucuslu@gmail.com&lt;br /&gt;*  Java Developer&lt;br /&gt;*/ &lt;br /&gt;&lt;br /&gt;public static InputStream binaryReplace(File file, String oldStr, String newStr) {&lt;br /&gt;       RandomAccessFile raf=null;&lt;br /&gt;       List&lt;long&gt; nchars=new ArrayList&lt;long&gt;();&lt;br /&gt;       try {&lt;br /&gt;           raf = new RandomAccessFile(file, "r");&lt;br /&gt;           long high = file.length();&lt;br /&gt;  &lt;br /&gt;           long p = 0; // baslangic pos&lt;br /&gt;           long x=0; // kacinci byte uzerinde&lt;br /&gt;           long sline=0;  // kacinci satirda&lt;br /&gt;           while (x &lt;&gt;= x) {&lt;br /&gt;                   raf.seek(p);&lt;br /&gt;                   char c = (char) raf.readByte();&lt;br /&gt;                   if (c == '\n') {&lt;br /&gt;                       raf.skipBytes((int)p);&lt;br /&gt;                       x=p;&lt;br /&gt;                       sline++;&lt;br /&gt;                       System.out.println("Line no:"+sline+" char no: "+ p);&lt;br /&gt;                       nchars.add(p);&lt;br /&gt;                       p++;&lt;br /&gt;                       break;&lt;br /&gt;                   }&lt;br /&gt;                   p++;&lt;br /&gt;               }&lt;br /&gt;           }&lt;br /&gt;           raf.close();&lt;br /&gt;       } catch (IOException e) {&lt;br /&gt;           try {&lt;br /&gt;               raf.close();&lt;br /&gt;           } catch (IOException f) {&lt;br /&gt;               // TODO&lt;br /&gt;           }&lt;br /&gt;       }&lt;br /&gt;    &lt;br /&gt;     ByteBuffer bufContent = ByteBuffer.allocate(2*(int)file.length());  // thats enough space to //replace some text fields, if you append additional data, you should have allocate more..  M.U.&lt;br /&gt;  &lt;br /&gt;     String newLine=null;&lt;br /&gt;     InputStream in=null;&lt;br /&gt;     byte[] sbyte=null;&lt;br /&gt;     long size=0;&lt;br /&gt;     long off=0;&lt;br /&gt;     long endLine=0;&lt;br /&gt;&lt;br /&gt;       try {&lt;br /&gt;           in = new java.io.FileInputStream(file);&lt;br /&gt;       } catch (FileNotFoundException e) {&lt;br /&gt;           // TODO&lt;br /&gt;       }&lt;br /&gt;&lt;br /&gt;       ListIterator nlist = nchars.listIterator();&lt;br /&gt;       try {&lt;br /&gt;           while(nlist.hasNext()){&lt;br /&gt;               endLine=(Long)nlist.next();&lt;br /&gt;               size=endLine-off;&lt;br /&gt;               sbyte=new byte[(int)size];&lt;br /&gt;               in.read(sbyte, 0, (int)size);&lt;br /&gt;               newLine=new String(sbyte);&lt;br /&gt;               if(newLine.indexOf(newStr)&gt;0){&lt;br /&gt;                   newLine=newLine.replaceAll(oldStr,newStr);&lt;br /&gt;                   bufContent.put(newLine.getBytes());&lt;br /&gt;               }else{&lt;br /&gt;                   bufContent.put(sbyte);&lt;br /&gt;               }&lt;br /&gt;               off=endLine;&lt;br /&gt;           }&lt;br /&gt;       } catch (IOException e) {&lt;br /&gt;           // TODO&lt;br /&gt;       }&lt;br /&gt;       bufContent.position(0);&lt;br /&gt;       return ByteBufferToInputStream(bufContent);&lt;br /&gt;&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   private static InputStream ByteBufferToInputStream(final ByteBuffer buf) { // M.U.&lt;br /&gt;           return new InputStream() {&lt;br /&gt;                   public synchronized int read() throws IOException {                           &lt;br /&gt;                           return buf.hasRemaining() ? buf.get() : -1;&lt;br /&gt;                   }&lt;br /&gt;  &lt;br /&gt;                   public synchronized int read(byte[] bytes, int off, int len) throws IOException {                     &lt;br /&gt;                           int rv = Math.min(len, buf.remaining());                              &lt;br /&gt;                           buf.get(bytes, off, rv);&lt;br /&gt;                           return rv == 0 ? -1 : rv;&lt;br /&gt;                   }&lt;br /&gt;           };&lt;br /&gt;   }&lt;/long&gt;&lt;/long&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/935222733255608566-6038086239030800158?l=mucahiduslu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mucahiduslu.blogspot.com/feeds/6038086239030800158/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=935222733255608566&amp;postID=6038086239030800158' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/935222733255608566/posts/default/6038086239030800158'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/935222733255608566/posts/default/6038086239030800158'/><link rel='alternate' type='text/html' href='http://mucahiduslu.blogspot.com/2010/10/replace-text-fields-in-binary-data-file.html' title='Replace Text Fields in Binary Data File'/><author><name>MUCAHID USLU</name><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-935222733255608566.post-6522529140321247045</id><published>2010-09-28T08:10:00.000-07:00</published><updated>2010-09-28T08:13:19.420-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='look and feel'/><category scheme='http://www.blogger.com/atom/ns#' term='laf'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='swing'/><title type='text'>Java Swing - Look And Feel</title><content type='html'>1- (system default) UIManager.setLookAndFeel( UIManager.getSystemLookAndFeelClassName() );&lt;br /&gt;&lt;br /&gt;2- (windows) UIManager.setLookAndFeel( "com.sun.java.swing.plaf.windows.WindowsLookAndFeel" );&lt;br /&gt;&lt;br /&gt;3- (metal) UIManager.setLookAndFeel( "javax.swing.plaf.metal.MetalLookAndFeel" );&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/935222733255608566-6522529140321247045?l=mucahiduslu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mucahiduslu.blogspot.com/feeds/6522529140321247045/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=935222733255608566&amp;postID=6522529140321247045' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/935222733255608566/posts/default/6522529140321247045'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/935222733255608566/posts/default/6522529140321247045'/><link rel='alternate' type='text/html' href='http://mucahiduslu.blogspot.com/2010/09/java-swing-look-and-feel.html' title='Java Swing - Look And Feel'/><author><name>MUCAHID USLU</name><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-935222733255608566.post-4739763394435825595</id><published>2010-09-22T02:02:00.000-07:00</published><updated>2010-09-22T02:08:30.312-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Spring Framework'/><category scheme='http://www.blogger.com/atom/ns#' term='Plugin'/><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><title type='text'>SpringSource Update Site for Eclipse</title><content type='html'>&lt;span style="font-style: italic;"&gt;Verify that the dialog list the following update sites as enabled&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Eclipse 3.5&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;• Galileo&lt;br /&gt;(http://download.eclipse.org/releases/galileo)&lt;br /&gt;• SpringSource Update Site for Eclipse 3.5 (Snapshot)&lt;br /&gt;(http://dist.springsource.com/snapshot/TOOLS/update/e3.5)&lt;br /&gt;• SpringSource Update Site for Eclipse 3.5 (Snapshot, Dependencies)&lt;br /&gt;(http://dist.springsource.com/snapshot/TOOLS/composite/e3.5)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Eclipse 3.6&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;• Helios&lt;br /&gt;(http://download.eclipse.org/releases/helios)&lt;br /&gt;• SpringSource Update Site for Eclipse 3.6 (Snapshot)&lt;br /&gt;(http://dist.springsource.com/snapshot/TOOLS/update/e3.6)&lt;br /&gt;• SpringSource Update Site for Eclipse 3.6 (Snapshot, Dependencies)&lt;br /&gt;(http://dist.springsource.com/snapshot/TOOLS/composite/e3.6)&lt;br /&gt;h. If those update sites are correctly listed close the preference&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_evkCDxX_4-Y/TJnG1ZRF_uI/AAAAAAAAAx4/oHYe6M55q_A/s1600/spring-eclipse-1.JPG"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 533px; height: 403px;" src="http://2.bp.blogspot.com/_evkCDxX_4-Y/TJnG1ZRF_uI/AAAAAAAAAx4/oHYe6M55q_A/s400/spring-eclipse-1.JPG" alt="" id="BLOGGER_PHOTO_ID_5519661438937202402" 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/935222733255608566-4739763394435825595?l=mucahiduslu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mucahiduslu.blogspot.com/feeds/4739763394435825595/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=935222733255608566&amp;postID=4739763394435825595' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/935222733255608566/posts/default/4739763394435825595'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/935222733255608566/posts/default/4739763394435825595'/><link rel='alternate' type='text/html' href='http://mucahiduslu.blogspot.com/2010/09/springsource-update-site-for-eclipse.html' title='SpringSource Update Site for Eclipse'/><author><name>MUCAHID USLU</name><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://2.bp.blogspot.com/_evkCDxX_4-Y/TJnG1ZRF_uI/AAAAAAAAAx4/oHYe6M55q_A/s72-c/spring-eclipse-1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-935222733255608566.post-690157725641544600</id><published>2010-07-28T23:42:00.000-07:00</published><updated>2010-07-28T23:44:26.150-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CLOB'/><category scheme='http://www.blogger.com/atom/ns#' term='HUGE DATA'/><category scheme='http://www.blogger.com/atom/ns#' term='BLOB'/><category scheme='http://www.blogger.com/atom/ns#' term='LARGE DATA'/><category scheme='http://www.blogger.com/atom/ns#' term='oracle'/><title type='text'>What is the difference between CLOB and BLOB ?</title><content type='html'>A BLOB is a binary large object, and a CLOB is a&lt;br /&gt;character large object. The difference between characters and bytes is the&lt;br /&gt;Character set, i.e. the mapping between a character and the byte sequence&lt;br /&gt;it represents.&lt;br /&gt;- With a blob, you have to use the right character set to retrive the data,&lt;br /&gt;e.g. if someone writes a text into a BLOB using UTF-8 and you read it back&lt;br /&gt;using ISO-8859-1, you do not get the same string back out.&lt;br /&gt;- With a CLOB, the database takes care of the character set, you supply a&lt;br /&gt;String, and you get a String back, and you do not have to worry about which&lt;br /&gt;bytes are used to represent the characters. in fact, you do not have access&lt;br /&gt;to the byte represetnation, so its uselessi if you want to store bytes.&lt;br /&gt;&lt;br /&gt;So in any other database, if you want to store large text, use a CLOB, if&lt;br /&gt;you want to store an image, use a BLOB.&lt;br /&gt;&lt;br /&gt;Having said this, it seems to me (although I did not research it) that the&lt;br /&gt;Oracle drivers specify a default character set even for BLOBs, the method&lt;br /&gt;oracle.sql.BLOB.characterStreamValue() seems to do this(I never used it).&lt;br /&gt;So a Oracle BLOB can also be used with CLOB functionality. Looking at the&lt;br /&gt;jdbc specification, this seems to be a oracle-specific extension. It seems&lt;br /&gt;tom me that it is only a oracle-specific _jdbc_ extension. E.g. you cannot&lt;br /&gt;display a BLOB on console, whereas you can display a CLOB.&lt;br /&gt;&lt;br /&gt;So the short answer is, if you only use an oracle database and only use&lt;br /&gt;oracle jdbc, you can also use  BLOBs for text. If you want other access&lt;br /&gt;(e.g. sqlplus(console)) access to the text you stored, use a CLOB.&lt;br /&gt;I would consider it cleaner if one would always use a CLOB for text (Rather&lt;br /&gt;rely on standards as opposed to vendor-specific extensions)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/935222733255608566-690157725641544600?l=mucahiduslu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mucahiduslu.blogspot.com/feeds/690157725641544600/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=935222733255608566&amp;postID=690157725641544600' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/935222733255608566/posts/default/690157725641544600'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/935222733255608566/posts/default/690157725641544600'/><link rel='alternate' type='text/html' href='http://mucahiduslu.blogspot.com/2010/07/what-is-difference-between-clob-and.html' title='What is the difference between CLOB and BLOB ?'/><author><name>MUCAHID USLU</name><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-935222733255608566.post-6099527528024889370</id><published>2009-06-18T00:51:00.001-07:00</published><updated>2009-06-18T00:54:35.583-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Run command'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='run cmd'/><category scheme='http://www.blogger.com/atom/ns#' term='run process'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>How To Run A Process in C# .Net</title><content type='html'>&lt;div&gt; String cmdString = @"net use /delete " + mapdrive; // just a sample script, custom here..&lt;/div&gt;&lt;div&gt; ManagementClass processClass = new ManagementClass("Win32_Process");&lt;/div&gt;&lt;div&gt; object[] methodArgs = { cmdString, null, null, 0 };&lt;/div&gt;&lt;div&gt; object result = processClass.InvokeMethod("Create", methodArgs);&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/935222733255608566-6099527528024889370?l=mucahiduslu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mucahiduslu.blogspot.com/feeds/6099527528024889370/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=935222733255608566&amp;postID=6099527528024889370' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/935222733255608566/posts/default/6099527528024889370'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/935222733255608566/posts/default/6099527528024889370'/><link rel='alternate' type='text/html' href='http://mucahiduslu.blogspot.com/2009/06/how-to-run-process-in-c-net.html' title='How To Run A Process in C# .Net'/><author><name>MUCAHID USLU</name><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-935222733255608566.post-6209841065762057357</id><published>2009-05-13T04:20:00.000-07:00</published><updated>2009-05-13T04:25:21.756-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='forms'/><category scheme='http://www.blogger.com/atom/ns#' term='debug'/><title type='text'>Fix Debugging Problem On Forms 10g</title><content type='html'>If you work at shared library path and forms path has been registered in windows registry,&lt;div&gt;it unable to debug because forms path defined in \forms\server\default.env file&lt;/div&gt;&lt;div&gt;find and comment line  like that &lt;/div&gt;&lt;div&gt;#FORMS_PATH=C:\ORA10G\forms&lt;/div&gt;&lt;div&gt;then restart oc4j server and forms developer , &lt;/div&gt;&lt;div&gt;then it works as you see.&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/935222733255608566-6209841065762057357?l=mucahiduslu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mucahiduslu.blogspot.com/feeds/6209841065762057357/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=935222733255608566&amp;postID=6209841065762057357' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/935222733255608566/posts/default/6209841065762057357'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/935222733255608566/posts/default/6209841065762057357'/><link rel='alternate' type='text/html' href='http://mucahiduslu.blogspot.com/2009/05/fix-debugging-problem-on-forms-10g.html' title='Fix Debugging Problem On Forms 10g'/><author><name>MUCAHID USLU</name><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-935222733255608566.post-3260192290744166151</id><published>2009-05-05T00:27:00.000-07:00</published><updated>2009-05-05T00:28:15.614-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='random'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Generate Random Alpha-Numeric Values (C#.Net)</title><content type='html'>&lt;span style="FONT-SIZE: x-small" mce_style="font-size: x-small;"&gt;private string  GenerateRandomChars() {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Random rnd = new Random();&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;byte[] _byt=new  byte[8];&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;rnd.NextBytes(_byt);&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;return Convert.ToBase64String(_byt);&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/935222733255608566-3260192290744166151?l=mucahiduslu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mucahiduslu.blogspot.com/feeds/3260192290744166151/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=935222733255608566&amp;postID=3260192290744166151' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/935222733255608566/posts/default/3260192290744166151'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/935222733255608566/posts/default/3260192290744166151'/><link rel='alternate' type='text/html' href='http://mucahiduslu.blogspot.com/2009/05/generate-random-alpha-numeric-values.html' title='Generate Random Alpha-Numeric Values (C#.Net)'/><author><name>MUCAHID USLU</name><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-935222733255608566.post-6177221710457417878</id><published>2009-04-01T01:38:00.000-07:00</published><updated>2009-04-01T01:40:15.340-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='JSF'/><category scheme='http://www.blogger.com/atom/ns#' term='ADF'/><category scheme='http://www.blogger.com/atom/ns#' term='jspx'/><category scheme='http://www.blogger.com/atom/ns#' term='oracle'/><title type='text'>Adf Nedir?</title><content type='html'>&lt;div style="TEXT-ALIGN: center"&gt; &lt;p&gt;&lt;b&gt;Oracle ADF&lt;/b&gt;&lt;/p&gt;&lt;/div&gt; &lt;p&gt;Oracle'ın özellikle Forms uygulamalarını yeni nesil web tabanlı teknolojilere  yükseltmek için geliştirdiği framework.&lt;/p&gt; &lt;p&gt;Mimari olarak MVC - Model View Controller, kullanıcı arayüzünde 11g sürümü  ile birlikte RichClient library'ye geçişin gözlendiği, yazılım bileşenlerinin  kendi içerisinde ajax özelliği taşıması, bileşen kütüphanesinin yaygınlaşması ve  gelişebilmesi için kaynak kodlarının Apache ile paylaşıldığı ve neticesinde  Apache Trinidad MyFaces Component kütüphanesine ait bileşenlerin de  kullanılabildiği, Oracle 'ın uygulama geliştirme alanındaki geliştirmesine bu  yönde devam etme kararı aldığı, bir java framework'üdür.&lt;/p&gt; &lt;p&gt;Model katmanında kullanılabilen Oracle Business Components sayesinde kod  yazmadan dahi uygulama geliştirme mümkün. Öte yandan java tabanlı olduğu için  platformdan bağımsız bir IDE + Uygulama Sunucusu imkanı sunuyor.&lt;/p&gt; &lt;p&gt;Uygulama sunucusu olarak WebLogic kullanılmakta.&lt;/p&gt; &lt;p&gt;Bu konu hakkında Oracle'ın resmi sitesinde pekçok kaynak bulmak mümkün,  ayrıca şu blog sitelerinden yararlanılabilir;&lt;/p&gt;&lt;p&gt;-US- &lt;a class="external autonumber" title="http://thepeninsulasedge.com/frank_nimphius/" href="http://thepeninsulasedge.com/frank_nimphius/" rel="nofollow"&gt;[1]&lt;/a&gt; -NL- &lt;a class="external autonumber" title="http://technology.amis.nl/blog/" href="http://technology.amis.nl/blog/" rel="nofollow"&gt;[2]&lt;/a&gt; -TR- &lt;a class="external autonumber" title="http://adf.webloji.net/" href="http://adf.webloji.net/" rel="nofollow"&gt;[adf]&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/935222733255608566-6177221710457417878?l=mucahiduslu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mucahiduslu.blogspot.com/feeds/6177221710457417878/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=935222733255608566&amp;postID=6177221710457417878' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/935222733255608566/posts/default/6177221710457417878'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/935222733255608566/posts/default/6177221710457417878'/><link rel='alternate' type='text/html' href='http://mucahiduslu.blogspot.com/2009/04/adf-nedir.html' title='Adf Nedir?'/><author><name>MUCAHID USLU</name><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-935222733255608566.post-7270590075054570976</id><published>2009-03-01T23:34:00.000-08:00</published><updated>2009-03-01T23:37:51.334-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ADF'/><category scheme='http://www.blogger.com/atom/ns#' term='weblogic'/><title type='text'>Samples - ADF How to</title><content type='html'>&lt;a href="http://adf.webloji.net/?p=48" rel="bookmark"&gt;How to do page redirect in  managed bean&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://adf.webloji.net/?p=46" rel="bookmark"&gt;How to set session  invalid&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://adf.webloji.net/?p=44" rel="bookmark"&gt;How to get session  parameters&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://adf.webloji.net/?p=42" rel="bookmark"&gt;How to set session  parameters&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://adf.webloji.net/?p=40" rel="bookmark"&gt;How to set parameter value  of stored procedure in managed bean&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://adf.webloji.net/?p=37" rel="bookmark"&gt;Using Programmatic View  Objects for Alternative Data Sources&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;&lt;span&gt;&lt;a href="http://adf.webloji.net"&gt;How to Create a View Object on a REF CURSOR&lt;/a&gt; &lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;a href="http://adf.webloji.net/?p=34" rel="bookmark"&gt;SQL Tracing in an  Application Module&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;a href="http://adf.webloji.net/?p=24" rel="bookmark"&gt;How to execute a stored  procedure in oracle adf ?&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;a href="http://adf.webloji.net/?p=3" rel="bookmark"&gt;WEBLOGIC 10.3 and ADF  Installation&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/935222733255608566-7270590075054570976?l=mucahiduslu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mucahiduslu.blogspot.com/feeds/7270590075054570976/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=935222733255608566&amp;postID=7270590075054570976' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/935222733255608566/posts/default/7270590075054570976'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/935222733255608566/posts/default/7270590075054570976'/><link rel='alternate' type='text/html' href='http://mucahiduslu.blogspot.com/2009/03/samples-adf-how-to.html' title='Samples - ADF How to'/><author><name>MUCAHID USLU</name><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-935222733255608566.post-6572719703112403095</id><published>2009-01-17T12:48:00.000-08:00</published><updated>2009-01-17T12:50:19.133-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='jsext'/><title type='text'>JSEXT</title><content type='html'>Server Side Javascript, jsx extension&lt;div&gt;&lt;a href="http://jsext.webloji.net/"&gt;JSEXT&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/935222733255608566-6572719703112403095?l=mucahiduslu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mucahiduslu.blogspot.com/feeds/6572719703112403095/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=935222733255608566&amp;postID=6572719703112403095' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/935222733255608566/posts/default/6572719703112403095'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/935222733255608566/posts/default/6572719703112403095'/><link rel='alternate' type='text/html' href='http://mucahiduslu.blogspot.com/2009/01/jsext.html' title='JSEXT'/><author><name>MUCAHID USLU</name><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-935222733255608566.post-112465848335337921</id><published>2009-01-16T01:36:00.000-08:00</published><updated>2009-01-16T01:37:30.213-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ajax toolkits'/><title type='text'>Some popular Ajax Toolkits</title><content type='html'>&lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height: 12.05pt;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span class="Apple-style-span" style="font-family: 'Avenir 55 Roman'; "&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Avenir 55 Roman'; font-weight: bold; "&gt;Some popular Ajax Toolkits&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;table class="MsoNormalTable" border="1" cellspacing="0" cellpadding="0" style="border-collapse:collapse;mso-table-layout-alt:fixed;border:none;  mso-padding-alt:0cm 5.4pt 0cm 5.4pt"&gt;  &lt;tbody&gt;&lt;tr style="mso-yfti-irow:0;mso-yfti-firstrow:yes;height:15.7pt"&gt;   &lt;td width="83" valign="top" style="width:62.2pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:15.7pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   10.05pt;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;b&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:11.0pt;font-family:&amp;quot;Avenir 55 Roman&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 55 Roman&amp;quot;;color:black"&gt;Name&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:6.5pt;font-family:&amp;quot;Avenir 55 Roman&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 55 Roman&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="83" valign="top" style="width:62.2pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:15.7pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   10.05pt;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;b&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:11.0pt;font-family:&amp;quot;Avenir 55 Roman&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 55 Roman&amp;quot;;color:black"&gt;Client/Server&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:6.5pt;font-family:&amp;quot;Avenir 55 Roman&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 55 Roman&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="83" valign="top" style="width:62.2pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:15.7pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   10.05pt;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;b&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:11.0pt;font-family:&amp;quot;Avenir 55 Roman&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 55 Roman&amp;quot;;color:black"&gt;High/Low-level&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:6.5pt;font-family:&amp;quot;Avenir 55 Roman&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 55 Roman&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="83" valign="top" style="width:62.2pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:15.7pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   10.05pt;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;b&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:11.0pt;font-family:&amp;quot;Avenir 55 Roman&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 55 Roman&amp;quot;;color:black"&gt;Comments&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:6.5pt;font-family:&amp;quot;Avenir 55 Roman&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 55 Roman&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:1;height:39.65pt"&gt;   &lt;td width="83" valign="top" style="width:62.2pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:39.65pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   10.05pt;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:11.0pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;Prototype &lt;/span&gt;&lt;span style="font-size:8.5pt;mso-bidi-font-size:11.0pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;(http://prototypejs.org)&lt;/span&gt;&lt;span style="font-size:8.5pt;mso-bidi-font-size:5.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="83" valign="top" style="width:62.2pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:39.65pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   10.05pt;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:11.0pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;Client&lt;/span&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:6.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="83" valign="top" style="width:62.2pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:39.65pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   10.05pt;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:11.0pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;Low&lt;/span&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:6.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="83" valign="top" style="width:62.2pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:39.65pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   10.05pt;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:11.0pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;Remodels and extends JavaScript   following the Ruby scripting language. Many features for arrays, functions,   XHR, DOM and forms. &lt;/span&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:   6.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;   color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:2;height:23.65pt"&gt;   &lt;td width="83" valign="top" style="width:62.2pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:23.65pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   10.05pt;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:11.0pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;Scriptaculous &lt;/span&gt;&lt;span style="font-size:8.5pt;mso-bidi-font-size:11.0pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;(http://script.aculo.us)&lt;/span&gt;&lt;span style="font-size:8.5pt;mso-bidi-font-size:5.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="83" valign="top" style="width:62.2pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:23.65pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   10.05pt;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:11.0pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;Client&lt;/span&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:6.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="83" valign="top" style="width:62.2pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:23.65pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   10.05pt;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:11.0pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;High&lt;/span&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:6.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="83" valign="top" style="width:62.2pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:23.65pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   10.05pt;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:11.0pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;Special effects, drag and   drop, and widgets built on top of prototype.&lt;/span&gt;&lt;span style="font-size:   9.5pt;mso-bidi-font-size:6.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:3;height:39.65pt"&gt;   &lt;td width="83" valign="top" style="width:62.2pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:39.65pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   10.05pt;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:11.0pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;dojo &lt;/span&gt;&lt;span style="font-size:8.5pt;mso-bidi-font-size:11.0pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;(http://dojotoolkit.org)&lt;/span&gt;&lt;span style="font-size:8.5pt;mso-bidi-font-size:5.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="83" valign="top" style="width:62.2pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:39.65pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   10.05pt;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:11.0pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;Client&lt;/span&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:6.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="83" valign="top" style="width:62.2pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:39.65pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   10.05pt;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:11.0pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;Low-high&lt;/span&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:6.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="83" valign="top" style="width:62.2pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:39.65pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   10.05pt;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:11.0pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;Comprehensive set of   libraries covering everything from packaging &amp;amp; language features through   Ajax to UI widgets.&lt;/span&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:   6.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;   color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:4;height:23.65pt"&gt;   &lt;td width="83" valign="top" style="width:62.2pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:23.65pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   10.05pt;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:11.0pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;Yahoo User Interface   (YUI) &lt;/span&gt;&lt;span style="font-size:8.5pt;mso-bidi-font-size:11.0pt;   font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;   color:black"&gt;(http://developer.yahoo.com/yui/)&lt;/span&gt;&lt;span style="font-size:   8.5pt;mso-bidi-font-size:5.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="83" valign="top" style="width:62.2pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:23.65pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   10.05pt;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:11.0pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;Client&lt;/span&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:6.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="83" valign="top" style="width:62.2pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:23.65pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   10.05pt;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:11.0pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;Low-high&lt;/span&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:6.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="83" valign="top" style="width:62.2pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:23.65pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   10.05pt;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:11.0pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;Another comprehensive set   of libraries covering many aspects of Ajax development.&lt;/span&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:6.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:5;height:23.65pt"&gt;   &lt;td width="83" valign="top" style="width:62.2pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:23.65pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   10.05pt;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:11.0pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;Ext &lt;/span&gt;&lt;span style="font-size:8.5pt;mso-bidi-font-size:11.0pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;(http://extjs.com)&lt;/span&gt;&lt;span style="font-size:8.5pt;mso-bidi-font-size:5.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="83" valign="top" style="width:62.2pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:23.65pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   10.05pt;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:11.0pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;Client&lt;/span&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:6.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="83" valign="top" style="width:62.2pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:23.65pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   10.05pt;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:11.0pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;High&lt;/span&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:6.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="83" valign="top" style="width:62.2pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:23.65pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   10.05pt;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:11.0pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;Widget-based set of user   interface components with Ajax support.&lt;/span&gt;&lt;span style="font-size:9.5pt;   mso-bidi-font-size:6.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:6;height:23.65pt"&gt;   &lt;td width="83" valign="top" style="width:62.2pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:23.65pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   10.05pt;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:11.0pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;sarissa &lt;/span&gt;&lt;span style="font-size:8.5pt;mso-bidi-font-size:11.0pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;(http://sarissa.sf.net)&lt;/span&gt;&lt;span style="font-size:8.5pt;mso-bidi-font-size:5.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="83" valign="top" style="width:62.2pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:23.65pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   10.05pt;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:11.0pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;Client&lt;/span&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:6.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="83" valign="top" style="width:62.2pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:23.65pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   10.05pt;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:11.0pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;Low&lt;/span&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:6.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="83" valign="top" style="width:62.2pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:23.65pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   10.05pt;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:11.0pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;Rich library for working   with XML, providing cross-browser XPath and XSLT.&lt;/span&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:6.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:7;height:23.65pt"&gt;   &lt;td width="83" valign="top" style="width:62.2pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:23.65pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   10.05pt;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:11.0pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;Mochikit &lt;/span&gt;&lt;span style="font-size:8.5pt;mso-bidi-font-size:11.0pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;(http://mochikit.com)&lt;/span&gt;&lt;span style="font-size:8.5pt;mso-bidi-font-size:5.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="83" valign="top" style="width:62.2pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:23.65pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   10.05pt;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:11.0pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;Client&lt;/span&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:6.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="83" valign="top" style="width:62.2pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:23.65pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   10.05pt;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:11.0pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;Low-high&lt;/span&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:6.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="83" valign="top" style="width:62.2pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:23.65pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   10.05pt;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:11.0pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;General-purpose Ajax and   DHTML library, inspired by Python.&lt;/span&gt;&lt;span style="font-size:9.5pt;   mso-bidi-font-size:6.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:8;height:15.65pt"&gt;   &lt;td width="83" valign="top" style="width:62.2pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:15.65pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   10.05pt;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:11.0pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;jQuery &lt;/span&gt;&lt;span style="font-size:8.5pt;mso-bidi-font-size:11.0pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;(http://jquery.com)&lt;/span&gt;&lt;span style="font-size:8.5pt;mso-bidi-font-size:5.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="83" valign="top" style="width:62.2pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:15.65pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   10.05pt;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:11.0pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;Client&lt;/span&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:6.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="83" valign="top" style="width:62.2pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:15.65pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   10.05pt;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:11.0pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;Low&lt;/span&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:6.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="83" valign="top" style="width:62.2pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:15.65pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   10.05pt;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:11.0pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;Small, concise Ajax and   DOM helper library.&lt;/span&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:   6.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;   color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:9;height:31.65pt"&gt;   &lt;td width="83" valign="top" style="width:62.2pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:31.65pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   10.05pt;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:11.0pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;MooTools &lt;/span&gt;&lt;span style="font-size:8.5pt;mso-bidi-font-size:11.0pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;(http://mootools.net)&lt;/span&gt;&lt;span style="font-size:8.5pt;mso-bidi-font-size:5.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="83" valign="top" style="width:62.2pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:31.65pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   10.05pt;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:11.0pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;Client&lt;/span&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:6.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="83" valign="top" style="width:62.2pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:31.65pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   10.05pt;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:11.0pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;Low-high&lt;/span&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:6.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="83" valign="top" style="width:62.2pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:31.65pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   10.05pt;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:11.0pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;Modular library covering   everything from core classes to special effects. A promising newcomer.&lt;/span&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:6.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:10;height:55.65pt"&gt;   &lt;td width="83" valign="top" style="width:62.2pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:55.65pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   10.05pt;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:11.0pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;Ruby on Rails &lt;/span&gt;&lt;span style="font-size:8.5pt;mso-bidi-font-size:11.0pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;(http://www.rubyonrails.org)&lt;/span&gt;&lt;span style="font-size:8.5pt;mso-bidi-font-size:5.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="83" valign="top" style="width:62.2pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:55.65pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   10.05pt;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:11.0pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;Server&lt;/span&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:6.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="83" valign="top" style="width:62.2pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:55.65pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   10.05pt;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:11.0pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;Low-high&lt;/span&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:6.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="83" valign="top" style="width:62.2pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:55.65pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   10.05pt;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:11.0pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;Primarily a server-side   toolkit, but has first-rate support for Ajax, using Prototype and   Scriptaculous. Allows large parts of the client tier to be written on the   server, in Ruby.&lt;/span&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:6.5pt;   font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;   color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:11;height:23.65pt"&gt;   &lt;td width="83" valign="top" style="width:62.2pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:23.65pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   10.05pt;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:11.0pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;GWT &lt;/span&gt;&lt;span style="font-size:8.5pt;mso-bidi-font-size:11.0pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;(http://code.google.com/webtoolkit)&lt;/span&gt;&lt;span style="font-size:8.5pt;mso-bidi-font-size:5.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="83" valign="top" style="width:62.2pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:23.65pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   10.05pt;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:11.0pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;Client&lt;/span&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:6.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="83" valign="top" style="width:62.2pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:23.65pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   10.05pt;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:11.0pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;High&lt;/span&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:6.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="83" valign="top" style="width:62.2pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:23.65pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   10.05pt;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:11.0pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;Java framework that   allows Ajax client tier to be written in Java.&lt;/span&gt;&lt;span style="font-size:   9.5pt;mso-bidi-font-size:6.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:12;mso-yfti-lastrow:yes;height:47.65pt"&gt;   &lt;td width="83" valign="top" style="width:62.2pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:47.65pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   10.05pt;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:11.0pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;JSF &lt;/span&gt;&lt;span style="font-size:8.5pt;mso-bidi-font-size:11.0pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;(various vendors)&lt;/span&gt;&lt;span style="font-size:8.5pt;mso-bidi-font-size:5.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="83" valign="top" style="width:62.2pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:47.65pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   10.05pt;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:11.0pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;Server&lt;/span&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:6.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="83" valign="top" style="width:62.2pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:47.65pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   10.05pt;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:11.0pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;High&lt;/span&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:6.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="83" valign="top" style="width:62.2pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:47.65pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:   10.05pt;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-size:9.5pt;mso-bidi-font-size:11.0pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;Various JSF vendors have   Ajax-enabled some of their components, again allowing some Ajax functionality   without hand-writing JavaScript.&lt;/span&gt;&lt;span style="font-size:9.5pt;   mso-bidi-font-size:6.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size:16.0pt;mso-bidi-font-size:11.0pt; line-height:115%"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/935222733255608566-112465848335337921?l=mucahiduslu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mucahiduslu.blogspot.com/feeds/112465848335337921/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=935222733255608566&amp;postID=112465848335337921' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/935222733255608566/posts/default/112465848335337921'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/935222733255608566/posts/default/112465848335337921'/><link rel='alternate' type='text/html' href='http://mucahiduslu.blogspot.com/2009/01/some-popular-ajax-toolkits.html' title='Some popular Ajax Toolkits'/><author><name>MUCAHID USLU</name><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-935222733255608566.post-715367190880961287</id><published>2009-01-16T01:15:00.000-08:00</published><updated>2009-01-16T01:32:14.726-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ajax'/><title type='text'>AJAX - Get Started</title><content type='html'>&lt;div&gt;&lt;p class="Pa0"&gt;&lt;span class="A15"&gt;&lt;span style="font-size:8.5pt"&gt;The standard way to do Ajax is to use the XMLHttpRequest object, known as XHR by its friends. Use XHR directly, or via one of the helpful Ajax libraries such as Prototype or jQuery. How do we use XHR “by hand”? To start with, we need to get a reference to it:&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8.5pt;mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;; color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="Pa0"&gt;&lt;span class="A12"&gt;&lt;span style="font-size:7.0pt"&gt;if (window.XMLHttpRequest) { &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:7.0pt; font-family:Courier;mso-bidi-font-family:Courier;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="Pa0"&gt;&lt;span class="A12"&gt;&lt;span style="font-size:7.0pt"&gt;xhr = new XMLHttpRequest(); &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:7.0pt;font-family:Courier; mso-bidi-font-family:Courier;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="Pa0"&gt;&lt;span class="A12"&gt;&lt;span style="font-size:7.0pt"&gt;} else if (window.ActiveXObject) { &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:7.0pt;font-family: Courier;mso-bidi-font-family:Courier;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="Pa0"&gt;&lt;span class="A12"&gt;&lt;span style="font-size:7.0pt"&gt;xhr = new ActiveXObject(“Microsoft.XMLHTTP”); &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:7.0pt; font-family:Courier;mso-bidi-font-family:Courier;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="Pa0"&gt;&lt;span class="A12"&gt;&lt;span style="font-size:7.0pt"&gt;} &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:7.0pt;font-family:Courier;mso-bidi-font-family:Courier; color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="Pa3"&gt;&lt;span class="A15"&gt;&lt;span style="font-size:8.5pt"&gt;We can then open a connection to a URL:&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8.5pt;mso-bidi-font-family: &amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="Default" style="line-height:12.05pt"&gt;&lt;span class="A15"&gt;&lt;span style="font-size:8.5pt"&gt;Specify a callback function to receive the response:&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8.5pt"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="Pa7"&gt;&lt;span class="A15"&gt;&lt;span style="font-size:8.5pt"&gt;and then send the request:&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8.5pt;mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;; color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="Default" style="line-height:12.05pt"&gt;&lt;span class="A15"&gt;&lt;span style="font-size:8.5pt"&gt;The server may be busy, or the network may be slow. We don’t want to sit around doing nothing until the response arrives, and because we’ve assigned the callback function, we don’t have to. That’s the five-minute guide for the impatient. For those who like to know the details, we’ve listed the fuller details of the XHR object below. &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8.5pt"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="Pa0"&gt;&lt;span class="A12"&gt;&lt;span style="font-size:7.0pt"&gt;xhr.open( &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:7.0pt;font-family:Courier;mso-bidi-font-family:Courier; color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="Pa0"&gt;&lt;span class="A12"&gt;&lt;span style="font-size:7.0pt"&gt;“GET”, &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:7.0pt;font-family:Courier;mso-bidi-font-family:Courier; color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="Pa0"&gt;&lt;span class="A12"&gt;&lt;span style="font-size:7.0pt"&gt;“my-dynamic-content.jsp?id=” &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:7.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="Pa0"&gt;&lt;span class="A12"&gt;&lt;span style="font-size:7.0pt"&gt;+encodeURI(myId), &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:7.0pt;font-family:Courier;mso-bidi-font-family:Courier; color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="Pa0"&gt;&lt;span class="A12"&gt;&lt;span style="font-size:7.0pt"&gt;true &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:7.0pt;font-family:Courier;mso-bidi-font-family:Courier; color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="Pa0"&gt;&lt;span class="A12"&gt;&lt;span style="font-size:7.0pt"&gt;);&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:7.0pt;font-family:Courier;mso-bidi-font-family:Courier; color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="Pa0"&gt;&lt;span class="A12"&gt;&lt;span style="font-size:7.0pt"&gt;xhr.onreadystatechange = function(){ &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:7.0pt;font-family:Courier; mso-bidi-font-family:Courier;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="Pa0"&gt;&lt;span class="A12"&gt;&lt;span style="font-size:7.0pt"&gt;processReqChange(req); &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:7.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="Pa0"&gt;&lt;span class="A12"&gt;&lt;span style="font-size:7.0pt"&gt;} &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:7.0pt;font-family:Courier;mso-bidi-font-family:Courier; color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="Pa0"&gt;&lt;span class="A12"&gt;&lt;span style="font-size:7.0pt"&gt;xhr.send(null); &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:7.0pt;font-family:Courier;mso-bidi-font-family:Courier; color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="Pa0"&gt;&lt;span style="font-size:7.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:black"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;table class="MsoNormalTable" border="1" cellspacing="0" cellpadding="0" style="border-collapse:collapse;mso-table-layout-alt:fixed;border:none;  mso-padding-alt:0cm 5.4pt 0cm 5.4pt"&gt;  &lt;tbody&gt;&lt;tr style="mso-yfti-irow:0;mso-yfti-firstrow:yes;height:7.7pt"&gt;   &lt;td width="164" valign="top" style="width:123.0pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:7.7pt"&gt;   &lt;p class="Pa9"&gt;&lt;span class="A16"&gt;&lt;b&gt;&lt;span style="font-size:6.5pt"&gt;Method Name&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:6.5pt;font-family:&amp;quot;Avenir 55 Roman&amp;quot;,&amp;quot;sans-serif&amp;quot;;mso-bidi-font-family:   &amp;quot;Avenir 55 Roman&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="164" valign="top" style="width:123.0pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:7.7pt"&gt;   &lt;p class="Pa9"&gt;&lt;span class="A16"&gt;&lt;b&gt;&lt;span style="font-size:6.5pt"&gt;Parameters and   Descriptions&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:6.5pt;font-family:&amp;quot;Avenir 55 Roman&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 55 Roman&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:1;height:31.65pt"&gt;   &lt;td width="164" valign="top" style="width:123.0pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:31.65pt"&gt;   &lt;p class="Pa10"&gt;&lt;span class="A16"&gt;&lt;span style="font-size:6.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;"&gt;open(method, url, async)&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:6.5pt;mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="164" valign="top" style="width:123.0pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:31.65pt"&gt;   &lt;p class="Pa11"&gt;&lt;span class="A16"&gt;&lt;span style="font-size:6.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;"&gt;open a connection to a URL &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:6.5pt;mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="Pa11"&gt;&lt;span class="A16"&gt;&lt;span style="font-size:6.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;"&gt;method = HTTP verb (GET, POST, etc.)&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:6.5pt;mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="Pa11"&gt;&lt;span class="A16"&gt;&lt;span style="font-size:6.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;"&gt;url = url to open, may include   querystring&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:6.5pt;mso-bidi-font-family:   &amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="Pa11"&gt;&lt;span class="A16"&gt;&lt;span style="font-size:6.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;"&gt;async = whether to make asynchronous   request&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:6.5pt;mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;   color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:2;height:15.65pt"&gt;   &lt;td width="164" valign="top" style="width:123.0pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:15.65pt"&gt;   &lt;p class="Pa10"&gt;&lt;span class="A16"&gt;&lt;span style="font-size:6.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;"&gt;onreadystatechange&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:6.5pt;mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="164" valign="top" style="width:123.0pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:15.65pt"&gt;   &lt;p class="Pa12"&gt;&lt;span class="A16"&gt;&lt;span style="font-size:6.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;"&gt;assign a function object as callback   (similar to onclick, onload, etc. in browser event model)&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:6.5pt;mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:3;height:15.65pt"&gt;   &lt;td width="164" valign="top" style="width:123.0pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:15.65pt"&gt;   &lt;p class="Pa10"&gt;&lt;span class="A16"&gt;&lt;span style="font-size:6.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;"&gt;setRequestHeader(namevalue)&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:6.5pt;mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="164" valign="top" style="width:123.0pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:15.65pt"&gt;   &lt;p class="Pa11"&gt;&lt;span class="A16"&gt;&lt;span style="font-size:6.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;"&gt;add a header to the HTTP request &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:6.5pt;mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:4;height:15.65pt"&gt;   &lt;td width="164" valign="top" style="width:123.0pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:15.65pt"&gt;   &lt;p class="Pa10"&gt;&lt;span class="A16"&gt;&lt;span style="font-size:6.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;"&gt;send(body)&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:6.5pt;mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="164" valign="top" style="width:123.0pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:15.65pt"&gt;   &lt;p class="Pa11"&gt;&lt;span class="A16"&gt;&lt;span style="font-size:6.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;"&gt;send the request&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:6.5pt;mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="Pa11"&gt;&lt;span class="A16"&gt;&lt;span style="font-size:6.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;"&gt;body = string to be used as request   body&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:6.5pt;mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;   color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:5;height:7.65pt"&gt;   &lt;td width="164" valign="top" style="width:123.0pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:7.65pt"&gt;   &lt;p class="Pa10"&gt;&lt;span class="A16"&gt;&lt;span style="font-size:6.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;"&gt;abort()&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:6.5pt;mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="164" valign="top" style="width:123.0pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:7.65pt"&gt;   &lt;p class="Pa12"&gt;&lt;span class="A16"&gt;&lt;span style="font-size:6.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;"&gt;stop the XHR from listening for the   response&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:6.5pt;mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;   color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:6;height:15.65pt"&gt;   &lt;td width="164" valign="top" style="width:123.0pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:15.65pt"&gt;   &lt;p class="Pa10"&gt;&lt;span class="A16"&gt;&lt;span style="font-size:6.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;"&gt;readyState&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:6.5pt;mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="164" valign="top" style="width:123.0pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:15.65pt"&gt;   &lt;p class="Pa11"&gt;&lt;span class="A16"&gt;&lt;span style="font-size:6.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;"&gt;stage in lifecycle of response (only   populated after send() is called)&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:6.5pt;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:7;height:15.65pt"&gt;   &lt;td width="164" valign="top" style="width:123.0pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:15.65pt"&gt;   &lt;p class="Pa10"&gt;&lt;span class="A16"&gt;&lt;span style="font-size:6.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;"&gt;httpStatus&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:6.5pt;mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="164" valign="top" style="width:123.0pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:15.65pt"&gt;   &lt;p class="Pa12"&gt;&lt;span class="A16"&gt;&lt;span style="font-size:6.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;"&gt;The HTTP return code (integer, only   populated after response reaches the loaded state)&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:6.5pt;mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:8;height:15.65pt"&gt;   &lt;td width="164" valign="top" style="width:123.0pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:15.65pt"&gt;   &lt;p class="Pa10"&gt;&lt;span class="A16"&gt;&lt;span style="font-size:6.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;"&gt;responseText&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:6.5pt;mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="164" valign="top" style="width:123.0pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:15.65pt"&gt;   &lt;p class="Pa11"&gt;&lt;span class="A16"&gt;&lt;span style="font-size:6.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;"&gt;body of response as a JavaScript   string (only set after response reaches the interactive readyState)&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:6.5pt;mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:9;height:15.65pt"&gt;   &lt;td width="164" valign="top" style="width:123.0pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:15.65pt"&gt;   &lt;p class="Pa10"&gt;&lt;span class="A16"&gt;&lt;span style="font-size:6.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;"&gt;responseXML&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:6.5pt;mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="164" valign="top" style="width:123.0pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:15.65pt"&gt;   &lt;p class="Pa11"&gt;&lt;span class="A16"&gt;&lt;span style="font-size:6.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;"&gt;body of the response as a XML   document object (only set after response reaches the interactive readyState)&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:6.5pt;mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:10;height:15.45pt"&gt;   &lt;td width="164" valign="top" style="width:123.0pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:15.45pt"&gt;   &lt;p class="Pa10"&gt;&lt;span class="A16"&gt;&lt;span style="font-size:6.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;"&gt;getResponseHeader(name)&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:6.5pt;mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="164" valign="top" style="width:123.0pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:15.45pt"&gt;   &lt;p class="Pa11"&gt;&lt;span class="A16"&gt;&lt;span style="font-size:6.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;"&gt;read a response header by name&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:6.5pt;mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:11;mso-yfti-lastrow:yes;height:7.65pt"&gt;   &lt;td width="164" valign="top" style="width:123.0pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:7.65pt"&gt;   &lt;p class="Pa10"&gt;&lt;span class="A16"&gt;&lt;span style="font-size:6.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;"&gt;getAllResponseHeaders()&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:6.5pt;mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="164" valign="top" style="width:123.0pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;   height:7.65pt"&gt;   &lt;p class="Pa11"&gt;&lt;span class="A16"&gt;&lt;span style="font-size:6.5pt;font-family:&amp;quot;Avenir 35 Light&amp;quot;,&amp;quot;sans-serif&amp;quot;;   mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;"&gt;Get an array of all response header   names&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:6.5pt;mso-bidi-font-family:&amp;quot;Avenir 35 Light&amp;quot;;   color:black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/935222733255608566-715367190880961287?l=mucahiduslu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mucahiduslu.blogspot.com/feeds/715367190880961287/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=935222733255608566&amp;postID=715367190880961287' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/935222733255608566/posts/default/715367190880961287'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/935222733255608566/posts/default/715367190880961287'/><link rel='alternate' type='text/html' href='http://mucahiduslu.blogspot.com/2009/01/ajax-get-started.html' title='AJAX - Get Started'/><author><name>MUCAHID USLU</name><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-935222733255608566.post-4254390501897666764</id><published>2008-12-30T12:51:00.000-08:00</published><updated>2008-12-30T12:51:45.293-08:00</updated><title type='text'>James Cahill: Christmas blog</title><content type='html'>&lt;a href="http://jamescahill-blog.blogspot.com/2008/12/christmas-blog.html"&gt;James Cahill: Christmas blog&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/935222733255608566-4254390501897666764?l=mucahiduslu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://jamescahill-blog.blogspot.com/2008/12/christmas-blog.html' title='James Cahill: Christmas blog'/><link rel='replies' type='application/atom+xml' href='http://mucahiduslu.blogspot.com/feeds/4254390501897666764/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=935222733255608566&amp;postID=4254390501897666764' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/935222733255608566/posts/default/4254390501897666764'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/935222733255608566/posts/default/4254390501897666764'/><link rel='alternate' type='text/html' href='http://mucahiduslu.blogspot.com/2008/12/james-cahill-christmas-blog.html' title='James Cahill: Christmas blog'/><author><name>MUCAHID USLU</name><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-935222733255608566.post-3523796509216036910</id><published>2008-11-05T23:56:00.000-08:00</published><updated>2009-01-03T00:40:58.120-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='deploy'/><category scheme='http://www.blogger.com/atom/ns#' term='ADF'/><category scheme='http://www.blogger.com/atom/ns#' term='weblogic'/><title type='text'>Weblogic 10.3 Install and configuration for ADF Applications</title><content type='html'>Follow setup gui, after complete start quick launch, the server will be configured default weblogic user and password has been set weblogic.&lt;br /&gt;Before deploy your adf application, add these libraries to&lt;br /&gt;&lt;br /&gt;wlserver_10. 3/common/ deployable-libraries/&lt;br /&gt;&lt;br /&gt;and install the libraries.&lt;br /&gt;&lt;br /&gt;- adf.oracle.domain.ear&lt;br /&gt;- jsf-ri-12. war&lt;br /&gt;- jstl-1. 2. war&lt;br /&gt;&lt;br /&gt;Now, it is ready to install your adf application.&lt;br /&gt;&lt;br /&gt;Also you can create a jdbc data source at following menu,&lt;br /&gt;&lt;br /&gt;Services/JDBC/Data Sources/&lt;br /&gt;&lt;br /&gt;Also look at:&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;&lt;a href="http://adf.webloji.net"&gt;http://adf.webloji.net&lt;/a&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;Mücahid Uslu&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/935222733255608566-3523796509216036910?l=mucahiduslu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mucahiduslu.blogspot.com/feeds/3523796509216036910/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=935222733255608566&amp;postID=3523796509216036910' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/935222733255608566/posts/default/3523796509216036910'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/935222733255608566/posts/default/3523796509216036910'/><link rel='alternate' type='text/html' href='http://mucahiduslu.blogspot.com/2008/11/weblogic-103-install-and-configuration.html' title='Weblogic 10.3 Install and configuration for ADF Applications'/><author><name>MUCAHID USLU</name><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-935222733255608566.post-2003443863104428646</id><published>2008-10-15T05:45:00.000-07:00</published><updated>2008-10-15T05:57:13.588-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ftp'/><title type='text'>Easily ftp access with Java</title><content type='html'>I'd like to share at following code that my java class which contains ftp download and upload methods. Hope to enjoy it!&lt;br /&gt;&lt;br /&gt;Note: Here the buffer has been set to 32MB (33554432), It is recommended to set it dynmically depend on the file size in your code.&lt;br /&gt;&lt;br /&gt;package muco;&lt;br /&gt;&lt;br /&gt;import java.io.*;&lt;br /&gt;import java.net.*;&lt;br /&gt;&lt;br /&gt;public class FTPClient {&lt;br /&gt;public final String host;&lt;br /&gt;public final String user;&lt;br /&gt;protected final String password;&lt;br /&gt;protected URLConnection urlc;&lt;br /&gt;public FTPClient(String _host, String _user, String _password) {&lt;br /&gt;host= _host; user= _user; password= _password;&lt;br /&gt;urlc = null;&lt;br /&gt;}&lt;br /&gt;private URL makeURL(String targetfile) throws MalformedURLException {&lt;br /&gt;if (user== null)&lt;br /&gt;return new URL("ftp://"+ host+ "/"+ targetfile+ ";type=i");&lt;br /&gt;else&lt;br /&gt;return new URL("ftp://"+ user+ ":"+ password+ "@"+ host+ "/"+ targetfile+ ";type=i");&lt;br /&gt;}&lt;br /&gt;protected InputStream openDownloadStream(String targetfile) throws Exception {&lt;br /&gt;URL url= makeURL(targetfile);&lt;br /&gt;urlc = url.openConnection();&lt;br /&gt;InputStream is = urlc.getInputStream();&lt;br /&gt;return is;&lt;br /&gt;}&lt;br /&gt;protected OutputStream openUploadStream(String targetfile) throws Exception {&lt;br /&gt;URL url= makeURL(targetfile);&lt;br /&gt;urlc = url.openConnection();&lt;br /&gt;OutputStream os = urlc.getOutputStream();&lt;br /&gt;return os;&lt;br /&gt;}&lt;br /&gt;protected void close() {&lt;br /&gt;urlc= null;&lt;br /&gt;}&lt;br /&gt;public void Upload(String _localfile, String _targetfile) {&lt;br /&gt;try {&lt;br /&gt;OutputStream os= openUploadStream(_targetfile);&lt;br /&gt;FileInputStream is= new FileInputStream(_localfile);&lt;br /&gt;byte[] buf= new byte[33554432];&lt;br /&gt;int c;&lt;br /&gt;while (true) {&lt;br /&gt;//System.out.print(".");&lt;br /&gt;c= is.read(buf);&lt;br /&gt;if (c&lt;= 0) break;&lt;br /&gt;//System.out.print("[");&lt;br /&gt;os.write(buf, 0, c);&lt;br /&gt;//System.out.print("]");&lt;br /&gt;}&lt;br /&gt;os.close();&lt;br /&gt;is.close();&lt;br /&gt;close();&lt;br /&gt;}catch(Exception E) {&lt;br /&gt;System.err.println(E.getMessage());&lt;br /&gt;E.printStackTrace();&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;public void Download(&lt;br /&gt;String _localfile, String _targetfile) {&lt;br /&gt;try {&lt;br /&gt;InputStream is= openDownloadStream(_targetfile);&lt;br /&gt;FileOutputStream os= new FileOutputStream(_localfile);&lt;br /&gt;byte[] buf= new byte[33554432];&lt;br /&gt;int c;&lt;br /&gt;while (true) {&lt;br /&gt;c= is.read(buf);&lt;br /&gt;if (c&lt;= 0) break;&lt;br /&gt;os.write(buf, 0, c);&lt;br /&gt;}&lt;br /&gt;is.close();&lt;br /&gt;os.close();&lt;br /&gt;close();&lt;br /&gt;}catch(Exception E) {&lt;br /&gt;System.err.println(E.getMessage());&lt;br /&gt;E.printStackTrace();&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/935222733255608566-2003443863104428646?l=mucahiduslu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mucahiduslu.blogspot.com/feeds/2003443863104428646/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=935222733255608566&amp;postID=2003443863104428646' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/935222733255608566/posts/default/2003443863104428646'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/935222733255608566/posts/default/2003443863104428646'/><link rel='alternate' type='text/html' href='http://mucahiduslu.blogspot.com/2008/10/easily-ftp-access-by-java.html' title='Easily ftp access with Java'/><author><name>MUCAHID USLU</name><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-935222733255608566.post-5231787005237932996</id><published>2008-05-23T07:40:00.001-07:00</published><updated>2008-12-24T06:14:07.936-08:00</updated><title type='text'>ADF Faces / Access to Data Model from Backing/Managed Bean</title><content type='html'>import javax.faces.application.Application;&lt;br /&gt;import javax.faces.context.FacesContext;&lt;br /&gt;&lt;br /&gt;import oracle.binding.OperationBinding;&lt;br /&gt;import oracle.adf.model.binding.DCBindingContainer;&lt;br /&gt;import oracle.adf.model.binding.DCDataControl;&lt;br /&gt;import oracle.adf.model.binding.DCIteratorBinding;&lt;br /&gt;&lt;br /&gt;import oracle.adf.view.faces.component.core.data.CoreTable;&lt;br /&gt;&lt;br /&gt;import oracle.adf.view.faces.context.AdfFacesContext;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;import oracle.binding.BindingContainer;&lt;br /&gt;&lt;br /&gt;import oracle.jbo.ApplicationModule;&lt;br /&gt;&lt;br /&gt;import oracle.jbo.Row;&lt;br /&gt;import oracle.jbo.RowSet;&lt;br /&gt;import oracle.jbo.server.EntityImpl;&lt;br /&gt;import oracle.jbo.RowSetIterator;&lt;br /&gt;import oracle.jbo.ViewObject;&lt;br /&gt;import oracle.jbo.server.ViewRowImpl;&lt;br /&gt;import oracle.jbo.uicli.binding.JUCtrlValueBindingRef;&lt;br /&gt;&lt;br /&gt;public class ManagedBeanBase {&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt;* Contains page binding references&lt;br /&gt;* This can be populated manually or&lt;br /&gt;* automatically based on config setting&lt;br /&gt;* in faces-config.xml&lt;br /&gt;*&lt;br /&gt;* This is a sample of an entry you would put in&lt;br /&gt;* the faces-config.xml file. Notice the 'managed-property'&lt;br /&gt;* tag with property name 'bindings'. This property will be&lt;br /&gt;* set by the faces servlet using the setBindings method below.&lt;br /&gt;*&lt;br /&gt;* &lt;managed-bean&gt;&lt;br /&gt;* &lt;managed-bean-name&gt;MyPageBackingBean&lt;/MANAGED-BEAN-NAME&gt;&lt;br /&gt;* &lt;managed-bean-class&gt;MyPageMB&lt;/MANAGED-BEAN-CLASS&gt;&lt;br /&gt;* &lt;managed-bean-scope&gt;request&lt;/MANAGED-BEAN-SCOPE&gt;&lt;br /&gt;* &lt;managed-property&gt;&lt;br /&gt;* &lt;property-name&gt;bindings&lt;/PROPERTY-NAME&gt;&lt;br /&gt;* &lt;value&gt;#{bindings}&lt;/value&gt;&lt;br /&gt;* &lt;/MANAGED-PROPERTY&gt;&lt;br /&gt;* &lt;/MANAGED-BEAN&gt;&lt;br /&gt;*/&lt;br /&gt;*/&lt;br /&gt;protected BindingContainer bindings;&lt;br /&gt;&lt;br /&gt;public ManagedBeanBase() {&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public BindingContainer getBindings() {&lt;br /&gt;&lt;br /&gt;return this.bindings;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public void setBindings(BindingContainer bindings) {&lt;br /&gt;this.bindings = bindings;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt;* Use this to manually set page bindingings.&lt;br /&gt;*/&lt;br /&gt;public void setBindings(){&lt;br /&gt;FacesContext context = FacesContext.getCurrentInstance();&lt;br /&gt;Application app = context.getApplication();&lt;br /&gt;bindings = (DCBindingContainer) app.getVariableResolver().resolveVariable(context, "bindings");&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt;* Call this method to refresh the binding container&lt;br /&gt;* with any changes.&lt;br /&gt;*/&lt;br /&gt;protected void refreshBindingContainer(){&lt;br /&gt;&lt;br /&gt;DCBindingContainer dcBind = (DCBindingContainer)bindings;&lt;br /&gt;dcBind.refresh();&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt;* This method is used the removed the currently selected&lt;br /&gt;* row from and ADF (JSF) table. The method requires&lt;br /&gt;* that the table object be passed in as a parameter.&lt;br /&gt;*/&lt;br /&gt;protected void deleteSelectedRow(CoreTable pageTable){&lt;br /&gt;&lt;br /&gt;JUCtrlValueBindingRef rwData = (JUCtrlValueBindingRef)pageTable.getSelectedRowData();&lt;br /&gt;&lt;br /&gt;Row rw = rwData.getRow();&lt;br /&gt;&lt;br /&gt;rw.remove();&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt;* This method takes the name of a given iterator (as defined in the page def file)&lt;br /&gt;* and returns the current rowset.&lt;br /&gt;*/&lt;br /&gt;protected RowSetIterator getRowSetIterator(String p_iterator){&lt;br /&gt;&lt;br /&gt;DCBindingContainer dcBind = (DCBindingContainer)bindings;&lt;br /&gt;DCIteratorBinding iterBind= (DCIteratorBinding)dcBind.get(p_iterator);&lt;br /&gt;&lt;br /&gt;return iterBind.getLovRowSetIterator();&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt;* This method will return the ViewObject (object) associated&lt;br /&gt;* with a given iterator.&lt;br /&gt;*/&lt;br /&gt;protected ViewObject getViewObjectFromIterator(String p_iterator){&lt;br /&gt;&lt;br /&gt;DCBindingContainer dcBind = (DCBindingContainer)bindings;&lt;br /&gt;DCIteratorBinding iterBind= (DCIteratorBinding)dcBind.get(p_iterator);&lt;br /&gt;&lt;br /&gt;return iterBind.getViewObject();&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt;* This method will execute the query associated the view object&lt;br /&gt;* with which the iterator is associated.&lt;br /&gt;*/&lt;br /&gt;protected void executeIterQuery(String p_iterator){&lt;br /&gt;&lt;br /&gt;DCBindingContainer dcBind = (DCBindingContainer)bindings;&lt;br /&gt;&lt;br /&gt;DCIteratorBinding iterBind= (DCIteratorBinding)dcBind.get(p_iterator);&lt;br /&gt;&lt;br /&gt;iterBind.executeQuery();&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt;* This method issues a rollback again the current transaction.&lt;br /&gt;*/&lt;br /&gt;protected void rollbackCurrentChanges(){&lt;br /&gt;&lt;br /&gt;DCBindingContainer dcBind = (DCBindingContainer)bindings;&lt;br /&gt;dcBind.getDataControl().getApplicationModule().getTransaction().rollback();&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt;* Manually add a page component to the partial target list&lt;br /&gt;* for partial page refresh.&lt;br /&gt;*/&lt;br /&gt;protected void addPartialTarget(UIComponent p_target_object){&lt;br /&gt;AdfFacesContext.getCurrentInstance().addPartialTarget(p_target_object);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Links:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://adf.webloji.net/"&gt;http://adf.webloji.net/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/935222733255608566-5231787005237932996?l=mucahiduslu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mucahiduslu.blogspot.com/feeds/5231787005237932996/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=935222733255608566&amp;postID=5231787005237932996' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/935222733255608566/posts/default/5231787005237932996'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/935222733255608566/posts/default/5231787005237932996'/><link rel='alternate' type='text/html' href='http://mucahiduslu.blogspot.com/2008/05/adf-faces-base-class-for-backingmanaged_23.html' title='ADF Faces / Access to Data Model from Backing/Managed Bean'/><author><name>MUCAHID USLU</name><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-935222733255608566.post-7822311753332852940</id><published>2008-05-23T07:40:00.000-07:00</published><updated>2008-05-23T07:41:01.878-07:00</updated><title type='text'></title><content type='html'>An ADF Faces Base Class for a Backing/Managed Bean&lt;br /&gt;&lt;br /&gt;   Over the last few months, I've been working on an ADF based project for my current employer.  The project is my first venture into JSF and ADF.  In this time I've developed a little base class that I extend when creating a backing bean (or managed bean) for my pages.  The base class contains several helpful utility methods that I thought I would share.  Some of these I discovered for myself, and a few others were inspired by samples provided by folks like: Steve Muench, Frank Nimphius, and Jonas Jacobi.  I have put the code below.  Each method has a comment at the top to explain what the method does:&lt;br /&gt;&lt;br /&gt;The Code ...&lt;br /&gt;&lt;br /&gt;import javax.faces.application.Application;&lt;br /&gt;import javax.faces.context.FacesContext;&lt;br /&gt;&lt;br /&gt;import oracle.binding.OperationBinding;&lt;br /&gt;import oracle.adf.model.binding.DCBindingContainer;&lt;br /&gt;import oracle.adf.model.binding.DCDataControl;&lt;br /&gt;import oracle.adf.model.binding.DCIteratorBinding;&lt;br /&gt;&lt;br /&gt;import oracle.adf.view.faces.component.core.data.CoreTable;&lt;br /&gt;&lt;br /&gt;import oracle.adf.view.faces.context.AdfFacesContext;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;import oracle.binding.BindingContainer;&lt;br /&gt;&lt;br /&gt;import oracle.jbo.ApplicationModule;&lt;br /&gt;&lt;br /&gt;import oracle.jbo.Row;&lt;br /&gt;import oracle.jbo.RowSet;&lt;br /&gt;import oracle.jbo.server.EntityImpl;&lt;br /&gt;import oracle.jbo.RowSetIterator;&lt;br /&gt;import oracle.jbo.ViewObject;&lt;br /&gt;import oracle.jbo.server.ViewRowImpl;&lt;br /&gt;import oracle.jbo.uicli.binding.JUCtrlValueBindingRef;&lt;br /&gt;&lt;br /&gt;public class ManagedBeanBase {&lt;br /&gt;   &lt;br /&gt;   &lt;br /&gt;    /**&lt;br /&gt;    * Contains page binding references&lt;br /&gt;    * This can be populated manually or&lt;br /&gt;    * automatically based on config setting&lt;br /&gt;    * in faces-config.xml&lt;br /&gt;    *&lt;br /&gt;    * This is a sample of an entry you would put in&lt;br /&gt;    * the faces-config.xml file.  Notice the 'managed-property'&lt;br /&gt;    * tag with property name 'bindings'.  This property will be&lt;br /&gt;    * set by the faces servlet using the setBindings method below.&lt;br /&gt;    *&lt;br /&gt;    * &lt;managed-bean&gt;&lt;br /&gt;    * &lt;managed-bean-name&gt;MyPageBackingBean&lt;/managed-bean-name&gt;&lt;br /&gt;    * &lt;managed-bean-class&gt;MyPageMB&lt;/managed-bean-class&gt;&lt;br /&gt;    * &lt;managed-bean-scope&gt;request&lt;/managed-bean-scope&gt;&lt;br /&gt;    *   &lt;managed-property&gt;&lt;br /&gt;    *    &lt;property-name&gt;bindings&lt;/property-name&gt;&lt;br /&gt;    *    &lt;value&gt;#{bindings}&lt;/value&gt;&lt;br /&gt;    *   &lt;/managed-property&gt;&lt;br /&gt;    * &lt;/managed-bean&gt;&lt;br /&gt;    */&lt;br /&gt;    */&lt;br /&gt;    protected  BindingContainer  bindings;&lt;br /&gt;   &lt;br /&gt;    public ManagedBeanBase() {&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public BindingContainer getBindings() {&lt;br /&gt;&lt;br /&gt;        return this.bindings;&lt;br /&gt;    }&lt;br /&gt;   &lt;br /&gt;    public void setBindings(BindingContainer bindings) {&lt;br /&gt;        this.bindings = bindings;&lt;br /&gt;    }&lt;br /&gt;   &lt;br /&gt;    /**&lt;br /&gt;    *  Use this to manually set page bindingings.&lt;br /&gt;    */&lt;br /&gt;    public void setBindings(){&lt;br /&gt;        FacesContext context = FacesContext.getCurrentInstance();&lt;br /&gt;        Application app = context.getApplication();&lt;br /&gt;        bindings = (DCBindingContainer) app.getVariableResolver().resolveVariable(context, "bindings");&lt;br /&gt;    }&lt;br /&gt;   &lt;br /&gt;&lt;br /&gt;    /**&lt;br /&gt;    * Call this method to refresh the binding container&lt;br /&gt;    * with any changes.&lt;br /&gt;    */   &lt;br /&gt;    protected void refreshBindingContainer(){&lt;br /&gt;   &lt;br /&gt;        DCBindingContainer dcBind = (DCBindingContainer)bindings;&lt;br /&gt;        dcBind.refresh();&lt;br /&gt;       &lt;br /&gt;    }&lt;br /&gt;   &lt;br /&gt;    /**&lt;br /&gt;    * This method is used the removed the currently selected&lt;br /&gt;    * row from and ADF (JSF) table.  The method requires&lt;br /&gt;    * that the table object be passed in as a parameter.&lt;br /&gt;    */&lt;br /&gt;    protected void deleteSelectedRow(CoreTable pageTable){&lt;br /&gt; &lt;br /&gt;        JUCtrlValueBindingRef rwData = (JUCtrlValueBindingRef)pageTable.getSelectedRowData();&lt;br /&gt;       &lt;br /&gt;        Row rw = rwData.getRow();&lt;br /&gt;       &lt;br /&gt;        rw.remove();&lt;br /&gt;       &lt;br /&gt;    }&lt;br /&gt;   &lt;br /&gt;    /**&lt;br /&gt;    * This method takes the name of a given iterator (as defined in the page def file)&lt;br /&gt;    * and returns the current rowset.&lt;br /&gt;    */&lt;br /&gt;    protected RowSetIterator getRowSetIterator(String p_iterator){&lt;br /&gt;        &lt;br /&gt;        DCBindingContainer dcBind = (DCBindingContainer)bindings;&lt;br /&gt;        DCIteratorBinding iterBind= (DCIteratorBinding)dcBind.get(p_iterator);&lt;br /&gt;       &lt;br /&gt;        return iterBind.getLovRowSetIterator();&lt;br /&gt;       &lt;br /&gt;       &lt;br /&gt;    }&lt;br /&gt;   &lt;br /&gt;    /**&lt;br /&gt;    * This method will return the ViewObject (object) associated&lt;br /&gt;    * with a given iterator.&lt;br /&gt;    */&lt;br /&gt;    protected ViewObject getViewObjectFromIterator(String p_iterator){&lt;br /&gt;       &lt;br /&gt;        DCBindingContainer dcBind = (DCBindingContainer)bindings;&lt;br /&gt;        DCIteratorBinding iterBind= (DCIteratorBinding)dcBind.get(p_iterator);&lt;br /&gt;       &lt;br /&gt;        return iterBind.getViewObject();&lt;br /&gt;       &lt;br /&gt;       &lt;br /&gt;    }&lt;br /&gt;   &lt;br /&gt;    /**&lt;br /&gt;    * This method will execute the query associated the view object&lt;br /&gt;    * with which the iterator is associated.&lt;br /&gt;    */&lt;br /&gt;    protected void executeIterQuery(String p_iterator){&lt;br /&gt;       &lt;br /&gt;        DCBindingContainer dcBind = (DCBindingContainer)bindings;&lt;br /&gt;    &lt;br /&gt;        DCIteratorBinding iterBind= (DCIteratorBinding)dcBind.get(p_iterator);&lt;br /&gt;       &lt;br /&gt;        iterBind.executeQuery();&lt;br /&gt;       &lt;br /&gt;    }&lt;br /&gt;   &lt;br /&gt;    /**&lt;br /&gt;     *   This method issues a rollback again the current transaction.&lt;br /&gt;     */&lt;br /&gt;    protected void rollbackCurrentChanges(){&lt;br /&gt;        &lt;br /&gt;        DCBindingContainer dcBind = (DCBindingContainer)bindings;&lt;br /&gt;        dcBind.getDataControl().getApplicationModule().getTransaction().rollback();&lt;br /&gt;       &lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    /**&lt;br /&gt;    * Manually add a page component to the partial target list&lt;br /&gt;    * for partial page refresh.&lt;br /&gt;    */&lt;br /&gt;    protected void addPartialTarget(UIComponent p_target_object){&lt;br /&gt;        AdfFacesContext.getCurrentInstance().addPartialTarget(p_target_object);&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/935222733255608566-7822311753332852940?l=mucahiduslu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mucahiduslu.blogspot.com/feeds/7822311753332852940/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=935222733255608566&amp;postID=7822311753332852940' title='1 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/935222733255608566/posts/default/7822311753332852940'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/935222733255608566/posts/default/7822311753332852940'/><link rel='alternate' type='text/html' href='http://mucahiduslu.blogspot.com/2008/05/adf-faces-base-class-for-backingmanaged.html' title=''/><author><name>MUCAHID USLU</name><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-935222733255608566.post-1298267231716688692</id><published>2008-05-22T23:08:00.000-07:00</published><updated>2008-05-22T23:09:59.189-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VİewObject'/><category scheme='http://www.blogger.com/atom/ns#' term='JSF'/><category scheme='http://www.blogger.com/atom/ns#' term='ADF'/><category scheme='http://www.blogger.com/atom/ns#' term='Ref Cursor'/><category scheme='http://www.blogger.com/atom/ns#' term='oracle'/><title type='text'>Programmatic View Object / Using Ref Cursor / Using Static Data</title><content type='html'>27.8.1 How to Create a Read-Only Programmatic View Object&lt;br /&gt;&lt;br /&gt;To create a read-only programmatic view object, use the Create View Object wizard and follow these steps:&lt;br /&gt;&lt;br /&gt;   1.&lt;br /&gt;&lt;br /&gt;      In step 1 on the Name panel, provide a name and package for the view object. In the What kind of data do you need this view object to manage? radio group, select Rows Populated Programmatically, not Based on a Query&lt;br /&gt;   2.&lt;br /&gt;&lt;br /&gt;      In step 2 on the Attributes panel, click New one or more times to define the view object attributes your programmatic view object requires.&lt;br /&gt;   3.&lt;br /&gt;&lt;br /&gt;      In step 3 on the Attribute Settings panel, adjust any setting you may need to for the attributes you defined.&lt;br /&gt;   4.&lt;br /&gt;&lt;br /&gt;      In step 4 on the Java panel, enable a custom view object class to contain your code.&lt;br /&gt;   5.&lt;br /&gt;&lt;br /&gt;      Click Finish to create the view object.&lt;br /&gt;&lt;br /&gt;In your view object's custom Java class, override the methods described in Section 27.8.3, "Key Framework Methods to Override for Programmatic View Objects" to implement your custom data retrieval strategy.&lt;br /&gt;27.8.2 How to Create an Entity-Based Programmatic View Object&lt;br /&gt;&lt;br /&gt;To create a entity-based view object with programmatic data retrieval, create the view object in the normal way, enable a custom Java class for it, and override the methods described in the next section to implement your custom data retrieval strategy.&lt;br /&gt;27.8.3 Key Framework Methods to Override for Programmatic View Objects&lt;br /&gt;&lt;br /&gt;A programmatic view object typically overrides all of the following methods of the base ViewObjectImpl class to implement its custom strategy for retrieving data:&lt;br /&gt;&lt;br /&gt;    *&lt;br /&gt;&lt;br /&gt;      create()&lt;br /&gt;&lt;br /&gt;      This method is called when the view object instance is created and can be used to initialize any state required by the programmatic view object. At a minimum, this overridden method will contain the following lines to ensure the programmatic view object has no trace of a SQL query related to it:&lt;br /&gt;&lt;br /&gt;      // Wipe out all traces of a query for this VO&lt;br /&gt;      getViewDef().setQuery(null);&lt;br /&gt;      getViewDef().setSelectClause(null);&lt;br /&gt;      setQuery(null);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    *&lt;br /&gt;&lt;br /&gt;      executeQueryForCollection()&lt;br /&gt;&lt;br /&gt;      This method is called whenever the view object's query needs to be executed (or re-executed).&lt;br /&gt;    *&lt;br /&gt;&lt;br /&gt;      hasNextForCollection()&lt;br /&gt;&lt;br /&gt;      This method is called to support the hasNext() method on the row set iterator for a row set created from this view object. Your implementation returns true if you have not yet exhausted the rows to retrieve from your programmatic data source.&lt;br /&gt;    *&lt;br /&gt;&lt;br /&gt;      createRowFromResultSet()&lt;br /&gt;&lt;br /&gt;      This method is called to populate each row of "fetched" data. Your implementation will call createNewRowForCollection() to create a new blank row and then populateAttributeForRow() to populate each attribute of data for the row.&lt;br /&gt;    *&lt;br /&gt;&lt;br /&gt;      getQueryHitCount()&lt;br /&gt;&lt;br /&gt;      This method is called to support the getEstimatedRowCount() method. Your implementation returns a count, or estimated count, of the number of rows that will be retrieved by the programmatic view object's query.&lt;br /&gt;    *&lt;br /&gt;&lt;br /&gt;      protected void releaseUserDataForCollection()&lt;br /&gt;&lt;br /&gt;      Your code can store and retrieve a user data context object with each row set. This method is called to allow you to release any resources that may be associated with a row set that is being closed.&lt;br /&gt;&lt;br /&gt;Since the view object component can be related to several active row sets at runtime, many of the above framework methods receive an Object parameter named qc in which the framework will pass the collection of rows in question that your code is supposed to be filling, as well as the array of bind variable values that might affect which rows get populated into the specific collection.&lt;br /&gt;&lt;br /&gt;You can store a user-data object with each collection of rows so your custom datasource implementation can associate any needed datasource context information. The framework provides the setUserDataForCollection() and getUserDataForCollection() methods to get and set this per-collection context information. Each time one of the overridden framework methods is called, you can use the getUserDataForCollection() method to retrieve the correct ResultSet object associated with the collection of rows the framework wants you to populate.&lt;br /&gt;&lt;br /&gt;The examples in the following sections each override these methods to implement different kinds of programmatic view objects.&lt;br /&gt;27.8.4 How to Create a View Object on a REF CURSOR&lt;br /&gt;&lt;br /&gt;Sometimes your application might need to work with the results of a query that is encapsulated within a stored procedure. PL/SQL allows you to open a cursor to iterate through the results of a query, and then return a reference to this cursor to the client. This so-called REF CURSOR is a handle with which the client can then iterate the results of the query. This is possible even though the client never actually issued the original SQL SELECT statement.&lt;br /&gt;&lt;br /&gt;Note:&lt;br /&gt;The examples in this section refer to the ViewObjectOnRefCursor project in the AdvancedViewObjectExamples workspace. See the note at the beginning of this chapter for download instructions. Run the CreateRefCursorPackage.sql script in the Resources folder against the SRDemo connection to set up the additional database objects required for the project.&lt;br /&gt;&lt;br /&gt;Declaring a PL/SQL package with a function that returns a REF CURSOR is straightforward. For example, your package might look like this:&lt;br /&gt;&lt;br /&gt;CREATE OR REPLACE PACKAGE RefCursorExample IS&lt;br /&gt;  TYPE ref_cursor IS REF CURSOR;&lt;br /&gt;  FUNCTION get_requests_for_tech(p_email VARCHAR2) RETURN ref_cursor;&lt;br /&gt;  FUNCTION count_requests_for_tech(p_email VARCHAR2) RETURN NUMBER;&lt;br /&gt;END RefCursorExample;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;After defining an entity-based RequestForTech view object with an entity usage for a ServiceRequest entity object, go to its custom Java class RequestForTechImpl.java. At the top of the view object class, define some constant Strings to hold the anonymous blocks of PL/SQL that you'll execute using JDBC CallableStatement objects to invoke the stored functions:&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt; * Execute this block to retrieve the REF CURSOR&lt;br /&gt; */&lt;br /&gt; private static final String SQL = &lt;br /&gt;           "begin ? := RefCursorSample.getEmployeesForDept(?);end;";&lt;br /&gt;/*&lt;br /&gt; * Execute this block to retrieve the count of service requests that&lt;br /&gt; * would be returned if you executed the statement above.&lt;br /&gt; */&lt;br /&gt;private static final String COUNTSQL =&lt;br /&gt;           "begin ? := RefCursorSample.countEmployeesForDept(?);end;";&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Then, override the methods of the view object as described in the following sections.&lt;br /&gt;27.8.4.1 The Overridden create() Method&lt;br /&gt;&lt;br /&gt;The create() method removes all traces of a SQL query for this view object.&lt;br /&gt;&lt;br /&gt;protected void create() {&lt;br /&gt;  getViewDef().setQuery(null);&lt;br /&gt;  getViewDef().setSelectClause(null);&lt;br /&gt;  setQuery(null); &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;27.8.4.2 The Overridden executeQueryForCollection() Method&lt;br /&gt;&lt;br /&gt;The executeQueryForCollection() method calls a helper method retrieveRefCursor() to execute the stored function and return the REF CURSOR return value, cast as a JDBC ResultSet. Then, it calls the helper method storeNewResultSet() that uses the setUserDataForCollection() method to store this ResultSet with the collection of rows for which the framework is asking to execute the query.&lt;br /&gt;&lt;br /&gt;protected void executeQueryForCollection(Object qc,Object[] params,&lt;br /&gt;                                         int numUserParams) { &lt;br /&gt;  storeNewResultSet(qc,retrieveRefCursor(qc,params));&lt;br /&gt;  super.executeQueryForCollection(qc, params, numUserParams); &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The retrieveRefCursor() uses the helper method described in Section 25.5, "Invoking Stored Procedures and Functions" to invoke the stored function and return the REF CURSOR:&lt;br /&gt;&lt;br /&gt;private ResultSet retrieveRefCursor(Object qc, Object[] params) {&lt;br /&gt;  ResultSet rs = (ResultSet)callStoredFunction(OracleTypes.CURSOR,&lt;br /&gt;                   "RefCursorExample.get_requests_for_tech(?)",&lt;br /&gt;                   new Object[]{getNamedBindParamValue("Email",params)});&lt;br /&gt;  return rs ;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;27.8.4.3 The Overridden createRowFromResultSet() Method&lt;br /&gt;&lt;br /&gt;For each row that the framework needs fetched from the datasource, it will invoke your overridden createRowFromResultSet() method. The implementation retrieves the collection-specific ResultSet object from the user-data context, uses the createNewRowForCollection() method to create a new blank row in the collection, and then use the populateAttributeForRow() method to populate the attribute values for each attribute defined at design time in the View Object Editor.&lt;br /&gt;&lt;br /&gt;protected ViewRowImpl createRowFromResultSet(Object qc, ResultSet rs) { &lt;br /&gt;  /*&lt;br /&gt;   * We ignore the JDBC ResultSet passed by the framework (null anyway) and&lt;br /&gt;   * use the resultset that we've stored in the query-collection-private&lt;br /&gt;   * user data storage&lt;br /&gt;   */&lt;br /&gt;  rs = getResultSet(qc);&lt;br /&gt;  &lt;br /&gt;  /*&lt;br /&gt;   * Create a new row to populate&lt;br /&gt;   */&lt;br /&gt;  ViewRowImpl r = createNewRowForCollection(qc);&lt;br /&gt;  try {&lt;br /&gt;    /*&lt;br /&gt;     * Populate new row by attribute slot number for current row in Result Set&lt;br /&gt;     */&lt;br /&gt;    populateAttributeForRow(r,0, rs.getLong(1));&lt;br /&gt;    populateAttributeForRow(r,1, rs.getString(2));&lt;br /&gt;    populateAttributeForRow(r,2, rs.getString(3));&lt;br /&gt;  }&lt;br /&gt;  catch (SQLException s) {&lt;br /&gt;    throw new JboException(s);&lt;br /&gt;  }&lt;br /&gt;  return r;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;27.8.4.4 The Overridden hasNextForCollectionMethod()&lt;br /&gt;&lt;br /&gt;The overridden implementation of the framework method hasNextForCollection() has the responsibility to return true or false based on whether there are more rows to fetch. When you've hit the end, you call the setFetchCompleteForCollection() to tell view object that this collection is done being populated.&lt;br /&gt;&lt;br /&gt;protected boolean hasNextForCollection(Object qc) {&lt;br /&gt;  ResultSet rs = getResultSet(qc);&lt;br /&gt;  boolean nextOne = false;&lt;br /&gt;  try {&lt;br /&gt;    nextOne = rs.next();&lt;br /&gt;    /*&lt;br /&gt;     * When were at the end of the result set, mark the query collection&lt;br /&gt;     * as "FetchComplete".&lt;br /&gt;     */&lt;br /&gt;    if (!nextOne) {&lt;br /&gt;      setFetchCompleteForCollection(qc, true); &lt;br /&gt;      /*&lt;br /&gt;       * Close the result set, we're done with it&lt;br /&gt;       */&lt;br /&gt;      rs.close();&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;  catch (SQLException s) {&lt;br /&gt;   throw new JboException(s);&lt;br /&gt;  }&lt;br /&gt;  return nextOne;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;27.8.4.5 The Overridden releaseUserDataForCollection() Method&lt;br /&gt;&lt;br /&gt;Once the collection is done with its fetch-processing, the overridden releaseUserDataForCollection() method gets invoked and closes the ResultSet cleanly so no database cursors are left open.&lt;br /&gt;&lt;br /&gt;  protected void releaseUserDataForCollection(Object qc, Object rs) {&lt;br /&gt;     ResultSet userDataRS = getResultSet(qc);&lt;br /&gt;     if (userDataRS != null) {&lt;br /&gt;      try {&lt;br /&gt;        userDataRS.close();&lt;br /&gt;      } &lt;br /&gt;      catch (SQLException s) {&lt;br /&gt;        /* Ignore */&lt;br /&gt;      }   &lt;br /&gt;    }&lt;br /&gt;    super.releaseUserDataForCollection(qc, rs);&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;27.8.4.6 The Overridden getQueryHitCount() Method&lt;br /&gt;&lt;br /&gt;Lastly, in order to properly support the view object's getEstimatedRowCount() method, the overridden getQueryHitCount() method returns a count of the rows that would be retrieved if all rows were fetched from the row set. Here the code uses a CallableStatement to get the job done. Since the query is completely encapsulated behind the stored function API, the code also relies on the PL/SQL package to provide an implementation of the count logic as well to support this functionality.&lt;br /&gt;&lt;br /&gt;public long getQueryHitCount(ViewRowSetImpl viewRowSet) {&lt;br /&gt;  Object[] params = viewRowSet.getParameters(true);&lt;br /&gt;  BigDecimal id = (BigDecimal)params[0];&lt;br /&gt;  CallableStatement st = null;&lt;br /&gt;  try {&lt;br /&gt;    st = getDBTransaction().createCallableStatement(COUNTSQL,&lt;br /&gt;                            DBTransaction.DEFAULT);&lt;br /&gt;    /*&lt;br /&gt;     * Register the first bind parameter as our return value of type CURSOR&lt;br /&gt;     */&lt;br /&gt;    st.registerOutParameter(1,Types.NUMERIC);&lt;br /&gt;    /* &lt;br /&gt;     * Set the value of the 2nd bind variable to pass id as argument&lt;br /&gt;     */ &lt;br /&gt;    if (id == null) st.setNull(2,Types.NUMERIC);&lt;br /&gt;    else            st.setBigDecimal(2,id);&lt;br /&gt;    st.execute();&lt;br /&gt;    return st.getLong(1);&lt;br /&gt;  }&lt;br /&gt;  catch (SQLException s) {&lt;br /&gt;    throw new JboException(s);&lt;br /&gt;  }&lt;br /&gt;  finally {try {st.close();} catch (SQLException s) {}}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;27.8.5 Populating a View Object from Static Data&lt;br /&gt;&lt;br /&gt;The SRDemo application's SRStaticDataViewObjectImpl class in the FrameworkExtensions project provides a programmatic view object implementation you can extend to populate code and description "lookup" data from static data in an in-memory array.&lt;br /&gt;&lt;br /&gt;As shown in Example 27-29, it performs the following tasks in its overridden implementation of the key programmatic view object methods:&lt;br /&gt;&lt;br /&gt;    *&lt;br /&gt;&lt;br /&gt;      create()&lt;br /&gt;&lt;br /&gt;      When the view object is created, the data is loaded from the in-memory array. It calls a helper method to set up the codesAndDescriptions array of codes and descriptions and wipes out all traces of a query for this view object.&lt;br /&gt;    *&lt;br /&gt;&lt;br /&gt;      executeQueryForCollection()&lt;br /&gt;&lt;br /&gt;      Since the data is static, you don't really need to perform any query, but you still need to call the super to allow other framework setup for the row set to be done correctly. Since the code nulls out of traces of a query in the create() method, the view object won't actually perform any query during the call to super.&lt;br /&gt;    *&lt;br /&gt;&lt;br /&gt;      hasNextForCollection()&lt;br /&gt;&lt;br /&gt;      The code returns true if the fetchPosition is still less than the number of rows in the in-memory array&lt;br /&gt;    *&lt;br /&gt;&lt;br /&gt;      createRowFromResultSet()&lt;br /&gt;&lt;br /&gt;      Populates the "fetched" data for one row when the base view object implementation asks it to. It gets the data from the codesAndDescriptions array to populate the first and second attributes in the view object row (by zero-based index position).&lt;br /&gt;    *&lt;br /&gt;&lt;br /&gt;      getQueryHitCount()&lt;br /&gt;&lt;br /&gt;      The code returns the number of "rows" in the codesAndDescriptions array that was previously stored in the rows member field.&lt;br /&gt;&lt;br /&gt;In addition, the following other methods help get the data setup:&lt;br /&gt;&lt;br /&gt;    *&lt;br /&gt;&lt;br /&gt;      setFetchPos()&lt;br /&gt;&lt;br /&gt;      Sets the current fetch position for the query collection. Since one view object can be used to create multiple row sets, you need to keep track of the current fetch position of each rowset in its "user data" context. It calls the setFetchCompleteForCollection() to signal to the view object that it's done fetching rows.&lt;br /&gt;    *&lt;br /&gt;&lt;br /&gt;      getFetchPos()&lt;br /&gt;&lt;br /&gt;      Get the current fetch position for the query collection. This returns the fetch position for a given row set that was stored in its user data context.&lt;br /&gt;    *&lt;br /&gt;&lt;br /&gt;      initializeStaticData()&lt;br /&gt;&lt;br /&gt;      Subclasses override this method to initialize the static data for display.&lt;br /&gt;    *&lt;br /&gt;&lt;br /&gt;      setCodesAndDescriptions()&lt;br /&gt;&lt;br /&gt;      Sets the static code and description data for this view object.&lt;br /&gt;&lt;br /&gt;Example 27-29 Custom View Object Class to Populate Data from a Static Array&lt;br /&gt;&lt;br /&gt;package oracle.srdemo.model.frameworkExt;&lt;br /&gt;// Imports omitted&lt;br /&gt;public class SRStaticDataViewObjectImpl extends SRViewObjectImpl {&lt;br /&gt;  private static final int CODE = 0;&lt;br /&gt;  private static final int DESCRIPTION = 1;&lt;br /&gt;  int rows = -1;&lt;br /&gt;  private String[][] codesAndDescriptions = null;&lt;br /&gt;&lt;br /&gt;  protected void executeQueryForCollection(Object rowset, Object[] params, &lt;br /&gt;                                           int noUserParams) {&lt;br /&gt;    // Initialize our fetch position for the query collection&lt;br /&gt;    setFetchPos(rowset, 0);&lt;br /&gt;    super.executeQueryForCollection(rowset, params, noUserParams);&lt;br /&gt;  }&lt;br /&gt;  // Help the hasNext() method know if there are more rows to fetch or not&lt;br /&gt;  protected boolean hasNextForCollection(Object rowset) {&lt;br /&gt;    return getFetchPos(rowset) &lt; rows;&lt;br /&gt;  }&lt;br /&gt;  // Create and populate the "next" row in the rowset when needed&lt;br /&gt;  protected ViewRowImpl createRowFromResultSet(Object rowset,ResultSet rs) {&lt;br /&gt;    ViewRowImpl r = createNewRowForCollection(rowset);&lt;br /&gt;    int pos = getFetchPos(rowset);&lt;br /&gt;    populateAttributeForRow(r, 0, codesAndDescriptions[pos][CODE]);&lt;br /&gt;    populateAttributeForRow(r, 1, codesAndDescriptions[pos][DESCRIPTION]);&lt;br /&gt;    setFetchPos(rowset, pos + 1);&lt;br /&gt;    return r;&lt;br /&gt;  }&lt;br /&gt;  // When created, initialize static data and remove trace of any SQL query&lt;br /&gt;  protected void create() {&lt;br /&gt;    super.create();&lt;br /&gt;    // Setup string arrays of codes and values from VO custom properties&lt;br /&gt;    initializeStaticData();&lt;br /&gt;    rows = (codesAndDescriptions != null) ? codesAndDescriptions.length : 0;&lt;br /&gt;    // Wipe out all traces of a query for this VO&lt;br /&gt;    getViewDef().setQuery(null);&lt;br /&gt;    getViewDef().setSelectClause(null);&lt;br /&gt;    setQuery(null);&lt;br /&gt;  }&lt;br /&gt;  // Return the estimatedRowCount of the collection&lt;br /&gt;  public long getQueryHitCount(ViewRowSetImpl viewRowSet) {&lt;br /&gt;    return rows;&lt;br /&gt;  }&lt;br /&gt;  // Subclasses override this to initialize their static data&lt;br /&gt;  protected void initializeStaticData() {&lt;br /&gt;    setCodesAndDescriptions(new String[][]{&lt;br /&gt;      {"Code1","Description1"},&lt;br /&gt;      {"Code2","Description2"}&lt;br /&gt;    });&lt;br /&gt;  }&lt;br /&gt;  // Allow subclasses to initialize the codesAndDescriptions array&lt;br /&gt;  protected void setCodesAndDescriptions(String[][] codesAndDescriptions) {&lt;br /&gt;    this.codesAndDescriptions = codesAndDescriptions;&lt;br /&gt;  }&lt;br /&gt;  // Store the current fetch position in the user data context&lt;br /&gt;  private void setFetchPos(Object rowset, int pos) {&lt;br /&gt;    if (pos == rows) {&lt;br /&gt;      setFetchCompleteForCollection(rowset, true);&lt;br /&gt;    }&lt;br /&gt;    setUserDataForCollection(rowset, new Integer(pos));&lt;br /&gt;  }&lt;br /&gt;  // Get the current fetch position from the user data context&lt;br /&gt;  private int getFetchPos(Object rowset) {&lt;br /&gt;    return ((Integer)getUserDataForCollection(rowset)).intValue();&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;27.8.5.1 Basing Lookup View Object on SRStaticDataViewObjectImpl&lt;br /&gt;&lt;br /&gt;The ServiceRequestStatusList view object in the SRDemo application defines two String attributes named Code and Description, and extends the SRStaticDataViewObjectImpl class. It overrides the initializeStaticData() method to supply the values of the legal service request status codes:&lt;br /&gt;&lt;br /&gt;public class ServiceRequestStatusListImpl&lt;br /&gt;       extends SRStaticDataViewObjectImpl {&lt;br /&gt;  protected void initializeStaticData() {&lt;br /&gt;    setCodesAndDescriptions(new String[][]{&lt;br /&gt;        {"Open","Open"},&lt;br /&gt;        {"Pending","Pending"},&lt;br /&gt;        {"Closed","Closed"}&lt;br /&gt;      });&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;27.8.5.2 Creating a View Object Based on Static Data from a Properties File&lt;br /&gt;&lt;br /&gt;Rather than compiling the static data for a view object into the Java class itself, it can be convenient to externalize it into a standard Java properties file with a Name=Value format like this:&lt;br /&gt;&lt;br /&gt;#This is the property file format. Comments like this are ok&lt;br /&gt;US=United States&lt;br /&gt;IT=Italy&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The SRPropertiesFileViewObjectImpl in the SRDemo application extends SRStaticDataViewObjectImpl to override the initializeStaticData() method and invoke the loadDataFromPropertiesFile() method shown in Example 27-30 to read the static data from a properties file. This method does the following basic steps:&lt;br /&gt;&lt;br /&gt;   1.&lt;br /&gt;&lt;br /&gt;      Derives the property file name based on the view definition name.&lt;br /&gt;&lt;br /&gt;      For example, a CountryList view object in a x.y.z.queries package that extends this class would expect to read the properties file named ./x/y/z/queries/CountryList.properties file.&lt;br /&gt;   2.&lt;br /&gt;&lt;br /&gt;      Initializes a list to hold the name=value pairs.&lt;br /&gt;   3.&lt;br /&gt;&lt;br /&gt;      Opens an input stream to read the properties file from the class path.&lt;br /&gt;   4.&lt;br /&gt;&lt;br /&gt;      Loops over each line in the properties file.&lt;br /&gt;   5.&lt;br /&gt;&lt;br /&gt;      If line contains and equals sign and is not a comment line that begins with a hash, then add a string array of {code,description} to the list.&lt;br /&gt;   6.&lt;br /&gt;&lt;br /&gt;      Closes the line number reader and input stream.&lt;br /&gt;   7.&lt;br /&gt;&lt;br /&gt;      Returns the list contains as a two-dimensional String array.&lt;br /&gt;&lt;br /&gt;Example 27-30 Reading Static Data for a View Object from a Properties File&lt;br /&gt;&lt;br /&gt;// In SRPropertiesFileViewObjectImpl.java&lt;br /&gt;private synchronized String[][] loadDataFromPropertiesFile() {&lt;br /&gt;  // 1. Derive the property file name based on the view definition name&lt;br /&gt;  String propertyFile = &lt;br /&gt;    getViewDef().getFullName().replace('.', '/') + ".properties";&lt;br /&gt;  // 2. Initialize a list to hold the name=value pairs&lt;br /&gt;  List codesAndDescriptionsList = new ArrayList(20);&lt;br /&gt;  try {&lt;br /&gt;    // 3. Open an input stream to read the properties file from the class path&lt;br /&gt;    InputStream is = Thread.currentThread().getContextClassLoader()&lt;br /&gt;                                           .getResourceAsStream(propertyFile);&lt;br /&gt;    LineNumberReader lnr = new LineNumberReader(new InputStreamReader(is));&lt;br /&gt;    String line = null;&lt;br /&gt;    // 4. Loop over each line in the properties file&lt;br /&gt;    while ((line = lnr.readLine()) != null) {&lt;br /&gt;      line.trim();&lt;br /&gt;      int eqPos = line.indexOf('=');&lt;br /&gt;      if ((eqPos &gt;= 1) &amp;&amp; (line.charAt(0) != '#')) {&lt;br /&gt;        // 5. If line contains "=" and isn't a comment, add String[]&lt;br /&gt;        //    of {code,description} to the list&lt;br /&gt;        codesAndDescriptionsList.add(new String[]{&lt;br /&gt;                   line.substring(0, eqPos),&lt;br /&gt;                   line.substring(eqPos + 1)});&lt;br /&gt;      }&lt;br /&gt;    }&lt;br /&gt;    // 6. Close the line number reader and input stream&lt;br /&gt;    lnr.close();&lt;br /&gt;    is.close();&lt;br /&gt;  } catch (IOException iox) {&lt;br /&gt;    iox.printStackTrace();&lt;br /&gt;    return new String[0][0];&lt;br /&gt;  }&lt;br /&gt;  // 7. Return the list contains as a two-dimensional String array&lt;br /&gt;  return (String[][])codesAndDescriptionsList.toArray();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;27.8.5.3 Creating Your Own View Object with Static Data&lt;br /&gt;&lt;br /&gt;To create your own view object with static data that extends one of the example classes provided in the SRDemo application, define a new read-only programmatic view object with String attributes named Code and Description. On the Java panel of the View Object Editor, click Class Extends to specify the fully-qualified name of the SRStaticDataViewObjectImpl or SRPropertiesFileViewObjectImpl class as the custom class in the Object field. Then, enable a custom Java class for your view object and do the following:&lt;br /&gt;&lt;br /&gt;If you extend SRStaticDataViewObjectImpl...&lt;br /&gt;&lt;br /&gt;    Then override the initializeStaticData() method and invoke the loadDataFromPropertiesFile() method shown&lt;br /&gt;If you extend SRStaticDataViewObjectImpl ...&lt;br /&gt;&lt;br /&gt;    Then create the appropriate *.properties file in the same directory as the view object's XML component definition, with a name that matches the name of the view object (ViewObjectName.properties).&lt;br /&gt;&lt;br /&gt;http://download.oracle.com/docs/html/B25947_01/bcadvvo008.htm#sthref2681&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/935222733255608566-1298267231716688692?l=mucahiduslu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mucahiduslu.blogspot.com/feeds/1298267231716688692/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=935222733255608566&amp;postID=1298267231716688692' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/935222733255608566/posts/default/1298267231716688692'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/935222733255608566/posts/default/1298267231716688692'/><link rel='alternate' type='text/html' href='http://mucahiduslu.blogspot.com/2008/05/programmatic-view-object-using-ref.html' title='Programmatic View Object / Using Ref Cursor / Using Static Data'/><author><name>MUCAHID USLU</name><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-935222733255608566.post-1239594893926129207</id><published>2008-04-01T06:36:00.000-07:00</published><updated>2008-04-01T06:39:29.468-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='forms'/><category scheme='http://www.blogger.com/atom/ns#' term='oracle'/><title type='text'>Farklı Java ve Browser versiyonları ile Oracle Forms</title><content type='html'>Farklı Forms, Java ve Browser versiyonları için&lt;br /&gt;Kurulum Prosedürü &lt;br /&gt; Hazırlayan: Mücahid USLU / Yazılım - Temel Bankacılık&lt;br /&gt;1- Kullanılan Forms versiyonuna uygun browser aşağıdaki tablodan seçilir.&lt;br /&gt;2- Seçilen browser’a uygun client platform (java plug-in ve Jınitiator tablodan tespit edilir.&lt;br /&gt;3- Hem ias tarafında hem de client larda aynı java plug-in olmasına dikkat edilir.(Client tarafında daha üst java versiyonun bulunması genelde sorun teşkil etmez ancak aynı olması tavsiye olunur.)&lt;br /&gt;4- Yapılan seçimlere uygun forms patchlerinin yüklenmesi tavsiye edilir.&lt;br /&gt;5- Çağrılan ilk html sayfası edit edilir, yapılan seçimlere uygun olarak                                object classid ="clsid:CAFECAFE-0013-0001-0028-ABCDEFABCDEF"&lt;br /&gt;Ve EMBED SRC="" PLUGINSPAGE=""&lt;br /&gt;   type="application/x-jinit-applet;version=1.3.1.28" kısımları değiştirilir.&lt;br /&gt;6- Eğer kullanılacak olan browser Netscape ya da Firefox ise, bunlara ait /plugins dizinlerine NPJinit131XX.dll dosyası kopyalanır.Bu dosya Jınitiator klasörü altından temin edilir.Eğer Jınitiator kurulumu browser kurulumundan sonra yapıldıysa kopyalamaya gerek kalmaz kendisi atar, yine de mutlaka varlığı kontrol edilmelidir.&lt;br /&gt;7- Birden fazla tipte browser kullanımı için, çağrılan html sayfası değişik isimlerde yaratılarak kullanım sağlanmış olunur. Ör: start_ie.html, start_fir.html gibi..&lt;br /&gt;8- JInitiator tüm sürümleri (şu anda en günceli 1.3.1.28) jdk1.3 ile develop edilmiştir, ancak uygulama içerisinde PrintRequestAttributeSet gibi java1.4 e ait class kullanılmaktaysa benim uygulamamdaki gibi ki bu class jdk1.4 ün bir üyesidir. Bu nedenle kullanılan Jınitiator sürümüne ait /lib dizininde rt.jar dosyası extract edilerek, içerisine jdk1.4 rt.jar javax paketi içerinden alınacak olan /printer dizini kopyalanır ve tekrar jar dosyası haline getirilerek client’lara kopyalanır. Aksi halde aşağıdaki gibi hata alınır;&lt;br /&gt;java.lang.NoClassDefFoundError: javax/print/attribute/PrintRequestAttributeSet &lt;br /&gt; at baysis.josefin.oracle.PrintWrapper.&lt;clinit&gt;(PrintWrapper.java:11)&lt;br /&gt;9- Ayrıca kullandiginiz jar dosyalari ve f90all.jar dosyaları da buraya kopyalanmalıdır.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/935222733255608566-1239594893926129207?l=mucahiduslu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mucahiduslu.blogspot.com/feeds/1239594893926129207/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=935222733255608566&amp;postID=1239594893926129207' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/935222733255608566/posts/default/1239594893926129207'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/935222733255608566/posts/default/1239594893926129207'/><link rel='alternate' type='text/html' href='http://mucahiduslu.blogspot.com/2008/04/farkl-java-ve-browser-versiyonlar-ile.html' title='Farklı Java ve Browser versiyonları ile Oracle Forms'/><author><name>MUCAHID USLU</name><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-935222733255608566.post-8196500069130801526</id><published>2008-02-15T02:11:00.000-08:00</published><updated>2008-02-15T02:13:10.742-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SOA'/><title type='text'>Learn About Service Oriented Architecture (SOA)</title><content type='html'>What is Service Oriented Architecture?&lt;br /&gt;IT departments are managing increasingly complex IT portfolios. Yet as business needs change, these departments must still ensure that their technologies remain aligned with business goals. Failure to do so compromises organizational agility. &lt;br /&gt;The problem for IT departments is typically not insufficient functionality; rather, it is that critical business systems such as customer relationship management (CRM) and enterprise resource planning (ERP) operate in isolation from other critical business systems—despite the fact that business processes often span multiple applications. To obtain an end-to-end view of a complex business process necessitates integration of information and process silos. In the past, this has been accomplished either though time-consuming manual interventions, or through hard-coded solutions that are difficult to maintain. &lt;br /&gt;Service orientation is an approach to organizing distributed IT resources into an integrated solution that breaks down information silos and maximizes business agility. Service orientation modularizes IT resources, creating loosely coupled business processes that integrate information across business systems. Critical to a well-designed service-oriented architecture is producing business process solutions that are relatively free from the constraints of the underlying IT infrastructure, because this enables the greater agility that businesses are seeking. &lt;br /&gt;Service Oriented Architecture (SOA) ultimately enables the delivery of a new generation of dynamic applications (sometimes called composite applications). These applications provide end users with more accurate and comprehensive information and insight into processes, as well as the flexibility to access it in the most suitable form and presentation factor, whether through the Web or through a rich client or mobile device. Dynamic applications are what enable businesses to improve and automate manual tasks, to realize a consistent view of customers and partner relations, and to orchestrate business processes that comply with internal mandates and external regulations. The net result is that these businesses are able to gain the agility necessary for superior marketplace performance. &lt;br /&gt;&lt;br /&gt;SOA defined&lt;br /&gt;Service orientation is a means for integrating across diverse systems. Each IT resource, whether an application, system, or trading partner, can be accessed as a service. These capabilities are available through interfaces; complexity arises when service providers differ in their operating system or communication protocols, resulting in inoperability. &lt;br /&gt;Service orientation uses standard protocols and conventional interfaces—usually Web services—to facilitate access to business logic and information among diverse services. Specifically, SOA allows the underlying service capabilities and interfaces to be composed into processes. Each process is itself a service, one that now offers up a new, aggregated capability. Because each new process is exposed through a standardized interface, the underlying implementation of the individual service providers is free to change without impacting how the service is consumed. &lt;br /&gt;&lt;br /&gt;Why SOA?&lt;br /&gt;Complex, distributed IT resources are a concern for businesses. Too frequently, the existing IT portfolio does not adequately meet specific business needs, is costly to manage and maintain, and is inflexible in the face of business growth and change. The solution, however, is not to rip and replace systems or applications, nor to completely renovate them, but rather to find a way to leverage existing IT investments so that overall organizational goals are effectively supported. &lt;br /&gt;Service orientation helps to accomplish these goals by making systems more responsive to business needs, simpler to develop, and easier to maintain and manage. Implementing a solution architecture based upon service orientation helps organizations plan ahead for change, rather than responding reactively.&lt;br /&gt;&lt;br /&gt;Who does SOA?&lt;br /&gt;Strictly speaking, SOA is done by developers and solution architects. However, stakeholders in a service-oriented solution span a range of roles, and it is critical that their interests not only be taken into account but that they actively drive the design of the SOA solution. &lt;br /&gt;Starting with those interests, the business analyst is concerned with bringing IT investments more in line with the business strategy. For the developer, this means that the SOA solution must map the sources of business information—systems, staff, trading partners—into a unified and comprehensive view such that the business analyst has greater insight into the costs and benefits of various investments. &lt;br /&gt;The chief technology officer (CTO) of the organization will work with developers to ensure that when designing a solution to meet the needs of the business analyst, the integrity of existing IT systems and applications resources are preserved, even as new capabilities are developed. &lt;br /&gt;And the IT manager, concerned with effectively integrating distributed systems such that management is simplified, will work with the developer to ensure that these goals are also met. &lt;br /&gt;Ultimately, the developers and solution architects are concerned with creating dynamic collaborative applications that meet the goals of the various stakeholders. The service orientation approach enables them to do so in a way that meets the needs of the organization as a whole. &lt;br /&gt;&lt;br /&gt;What SOA isn’t&lt;br /&gt;There are numerous misconceptions about what SOA is—that it is a product that can be purchased (it is not; it is a design philosophy that informs how the solution should be built); that the goal is to build a SOA (it is not; SOA is a means to an end); or that SOA requires a complete technological and business process overhaul (it doesn’t; SOA solutions should be incremental and built on current investments).&lt;br /&gt;SOA is also often equated with Web services, and the terms used interchangeably. While it is true that SOA is made easier and more pervasive through the broad adoption of Web services–based standards and protocols, the two are distinct. SOA is an approach to designing systems—in effect the architectural drawings or blueprint—that directs how IT resources will be integrated and which services will be exposed for use. In contrast, Web services is an implementation methodology that uses specific standards and language protocols to execute on a SOA solution. &lt;br /&gt;&lt;br /&gt;Before starting a SOA&lt;br /&gt;Before a developer writes a single line of code, it is critical to identify both specific business drivers of the SOA endeavor and the dependencies between the business and the underlying technologies. Neglecting the business context can result in a project in which SOA infrastructure is pursued for its own sake, or where investments are made that do not line up well with the needs and priorities of the business.&lt;br /&gt;Two approaches are commonly pursued for implementing SOA: top-down and bottom-up. Both approaches have possible pitfalls that can prevent success. Many organizations that have attempted to roll out SOA infrastructure through a top-down approach have discovered that when the infrastructure is finally delivered it is out of sync with the needs of the business. Likewise, a bottom-up approach can fail as well, because it can lead to a chaotic implementation of services created without regard to organizational goals. &lt;br /&gt;The “middle-out” approach is a successful hybrid of the two other approaches. Business drivers and strategic vision are first employed to set clear direction and priorities. Based on these, the organization takes multiple iterative steps to build out slices of end-to-end capabilities, with each iteration delivering a new, dynamic application back to the business that is used to create business return. Microsoft has long advocated this “real-world” approach to leveraging service-oriented architectures: The approach is focused on rapid time-to-value, and it delivers business results through iterative, incremental steps that facilitate close alignment of IT resources with changing business conditions.&lt;br /&gt;&lt;br /&gt;What is the SOA life cycle?&lt;br /&gt;The core IT assets of any organization include its data, legacy systems, line-of-business applications, packaged applications, and trading partners. Each of these resources is a service provider responsible for producing numerous highly specific outputs, such as inventories and customer data. &lt;br /&gt;Service orientation ties together these disparate and autonomous sources of information, bridging a wide range of operating systems, technologies, and communication protocols. The process by which it does this is an iterative one of creating (“exposing”) new services, aggregating (“composing”) these services into larger composite applications, and making the outputs available for consumption by the business user. &lt;br /&gt; &lt;br /&gt;Expose &lt;br /&gt;The expose phase of the SOA approach focuses on which services to create from the underlying applications and data. Service creation can be fine-grained (a single service that maps to a single business process) or coarse-grained (multiple services come together to perform a related set of business functions). &lt;br /&gt;The expose phase is also concerned with how the services are implemented. The functionality of underlying IT resources can be made available natively if they already speak Web services, or can be made available as Web services though the use of an adapter. &lt;br /&gt;Compose&lt;br /&gt;Once services are created, they can be combined into more complex services, applications, or cross-functional business processes. Because services exist independently of one another as well as of the underlying IT infrastructure, they can be combined and reused with maximum flexibility. And as business processes evolve, business rules and practices can be adjusted without constraint from the limitations of the underlying applications.&lt;br /&gt;Consume&lt;br /&gt;Once a new application or business process has been created, that functionality must be made available for access (consumption) by either other IT systems or by end users. The goal of the consumption process is to deliver new, dynamic applications that enable increased productivity and enhanced insight into business performance. Users can consume the composed service through a number of avenues, including Web portals, rich clients, Office business applications, and mobile devices.&lt;br /&gt;&lt;br /&gt;What are the benefits of SOA?&lt;br /&gt;Service-oriented architecture is, first and foremost, a means of attaining greater business agility from existing IT investments. SOA-based solutions connect systems and thereby automate previously manual information-transfer processes whether the goal is to develop new applications; to connect systems, workgroups, or geographically distributed subsidiaries; or to collaborate with trading partners. At the same time, SOA solutions build in the essential services required to ensure that the appropriate resources are accessed by the appropriate users. &lt;br /&gt;SOA benefits accrue for the organization at two different levels, that of the IT organization and that of the business user; in the end, all benefits add up to a dramatic increase in agility and productivity.&lt;br /&gt;From the IT department’s point of view, SOA-based integration simplifies management of distributed resources across multiple platforms, requires less hardware, is more reliable, is standards-based, and is less costly. &lt;br /&gt;From the business point of view, SOA enables development of a new generation of dynamic applications addressing a number of top-level business concerns that are central to growth and competitiveness. SOA solutions promote:&lt;br /&gt;• Stronger connections with customers and suppliers. By making dynamic applications and business services available to external customers and suppliers, not only is richer collaboration possible, but also customer/partner satisfaction is increased. SOA unlocks critical supply and demand chain processes—such as outsourcing of specific business tasks—from the constraints of underlying IT architectures, thereby enabling better alignment of processes with organizational strategy. &lt;br /&gt;• Enhanced business decision making. By aggregating access to business services and information into a set of dynamic, composite business applications, decision makers gain more accurate and more comprehensive information. They also gain the flexibility to access that information in the form and presentation factor (Web, rich client, mobile device) that meets their needs. &lt;br /&gt;• Greater employee productivity. By providing streamlined access to systems and information and enabling business process improvement, businesses can drive greater employee productivity. Employees can focus their energies on addressing the important, value-added processes and on collaborative, semi-structured activities, rather than having to conform to the limitations and restrictions of the underlying IT systems. &lt;br /&gt;&lt;br /&gt;What are the challenges associated with SOA?&lt;br /&gt;SOA confers obvious business benefits associated with integration and the creation of new services. However, insufficient attention to governance—the management and monitoring of services, their performance and reliability, and especially their security—can cause inefficiencies and disrupt business processes and the end users they support. &lt;br /&gt;As business needs evolve, it is critical to have policies in place that help determine how to prioritize new business processes and services under consideration for implementation, who will be responsible for designing those processes, how they should be implemented, and how the success of the new implementations will be measured. This is especially important given the inherent cross-functional nature of SOA solutions.&lt;br /&gt;Reuse of services, once touted as a primary SOA advantage, is really a byproduct of the approach rather than the goal itself. Reuse is also proving to be more challenging than expected. An existing service may not provide exactly what a different business process requires and so may call for additional work. And designing a service so that it can be reused in the future requires accurately predicting what future needs will be, something notoriously difficult to do. &lt;br /&gt;&lt;br /&gt;How can your organization get started with SOA?&lt;br /&gt;1. Make sure that you have sound business drivers. When an organization struggles to justify their SOA projects, it is almost always because they are trying to “do SOA” rather than address a business need.&lt;br /&gt;2. Top-down approaches do not work in the real world. Bottom-up approaches are not manageable either. In contrast, organizations that are successful with SOA often adopt a middle-out approach. These organizations all have something in common—they start with clear business challenges and focus on creating business value.&lt;br /&gt;3. Try to avoid subscribing to the “build it and they will come” approach. Some organizations spend 18 to 30 months building a services infrastructure. When they finally reach the service consumption or user-experience layer, they find that the business needs have changed, rendering the investments a waste of time and money. It is often more practical to partition your usage scenarios into small sets and build out the entire scenario top to bottom, from the data through to the application consuming the services. Partitioning functionality in this manner can help you track changing business needs much more effectively.&lt;br /&gt;4. Demonstrate value in rapid iterations. Time-to-value is a critical, healthy metric. The “trust-me” approach is not a healthy model for successfully leveraging SOA.&lt;br /&gt;5. Last, but not least, organizations that have successfully adopted a SOA solution often use a “snowball” approach. How do you build a big snowball? You start with a small snowball. This is probably the most important take-away with respect to leveraging SOA to drive business value.&lt;br /&gt;&lt;br /&gt;Source: microsoft&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/935222733255608566-8196500069130801526?l=mucahiduslu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mucahiduslu.blogspot.com/feeds/8196500069130801526/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=935222733255608566&amp;postID=8196500069130801526' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/935222733255608566/posts/default/8196500069130801526'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/935222733255608566/posts/default/8196500069130801526'/><link rel='alternate' type='text/html' href='http://mucahiduslu.blogspot.com/2008/02/learn-about-service-oriented.html' title='Learn About Service Oriented Architecture (SOA)'/><author><name>MUCAHID USLU</name><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-935222733255608566.post-5624207127163020605</id><published>2008-02-14T00:17:00.000-08:00</published><updated>2008-02-14T00:19:57.335-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JSF'/><title type='text'>Introduction to Javaserver Faces - What is JSF?</title><content type='html'>What is JSF?&lt;br /&gt;&lt;br /&gt;JavaServer Faces (JSF) is a new standard Java framework for building Web applications. It simplifies development by providing a component-centric approach to developing Java Web user interfaces. JavaServer Faces also appeals to a diverse audience of Java/Web developers. "Corporate developers" and Web designers will find that JSF development can be as simple as dragging and dropping user interface (UI) components onto a page, while "systems developers" will find that the rich and robust JSF API offers them unsurpassed power and programming flexibility. JSF also ensures that applications are well designed with greater maintainability by integrating the well established Model-View-Controller (MVC) design pattern into it's architecture. Finally, since JSF is a Java standard developed through Java Community Process (JCP), development tools vendors are fully empowered to provide easy to use, visual, and productive develop environments for JavaServer Faces.&lt;br /&gt;&lt;br /&gt;JSF Architecture&lt;br /&gt;&lt;br /&gt;JavaServer Faces' Implementation of MVC&lt;br /&gt;One of the key advantages of JSF is that it is both a Java Web user-interface standard as well as a framework that firmly follows the Model-View-Controller(MVC) design pattern. This makes JSF applications much more manageable because the user-interface code (View) is cleanly separated from the application data and logic (Model). To prepare the JSF context, which provides application data access to the pages, and to guard against unauthorized or improper access of the pages, all user interactions with the application are handled by a front-end "Faces" servlet (Controller). &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The JSF LifecycleThe Faces Controller servlet serves as the link between the user and the JSF application. It operates within the confines of a well defined JSF Lifecycle which dictates the entire flow of events between user requests. For example, upon an initial Web request to access a JSF application, the Faces controller servlet handles the request by first preparing the JSF context, which is a Java object that holds all application data. The controller then routes the user to the requested page. The page usually renders application data from the JSF context using a simple Expression Language. Upon subsequent requests, the controller updates any Model data, providing any new input has been entered. JSF developers have programmatic access to the entire JSF lifecycle at any time during its execution thus affording a high degree of control over the application's behavior at all times.&lt;br /&gt;&lt;br /&gt;JavaServer Faces' User-Interface Components&lt;br /&gt;The true power of JavaServer Faces lies in its user-interface component model where applications are merely built from collections of components that can render themselves in diverse ways for multiple client types. Vaguely similar to other proprietary technologies such ASP.Net, JSF's UI Component model technology offers unprecendented productivity by allowing the developer to construct Web user interfaces using pre-built user-interface (UI) Components as opposed to having to construct the user interface entirely from scratch. JSF UI Components come in many forms and can be as simple as an outputLabel which simply displays text or as complex as a dataTable which can represent a tabular data from collections of data such as from a database table. &lt;br /&gt;&lt;br /&gt;The JavaServer Faces specification provides a set of base UI Components in its Reference Implementation which are very useful on their own. These include two libraries of components such as the "HTML" component library which largely mirrors the standard HTML input elements along with a "Core" library which aids in common application development tasks such as internationalization, and validating/converting input data. In addition to providing a base library of UI Components, the JSF API offers the ability to extend and create custom JSF UI Components providing additional functionality above and beyond the base components.&lt;br /&gt;&lt;br /&gt;Additional User-Interface Component Libraries&lt;br /&gt;Because of the richness and flexibility of the JSF API, many Java developers are beginning to create new JSF Component libraries and implementations. Oracle's ADF Faces is a fully compliant JSF component library which offers a broad set of enhanced UI Components for JSF application development. These include multiple renderers per client type, advanced tables, color and date pickers along with a host of general components such as menus, command buttons, shuttle choosers and progress meters. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;In addition to Oracle's ADF Faces there are other new JSF Component Libraries beginning to appear from both the Open Source and software vendor communities. MyFaces is an example of a new JSF UI Component Library being offered as an Open Source project through Apache. Myfaces also serves as an enhancement to the JSF base UI components in that they also have more extensive UI capabilities such as integrated Tiles support, Javascript enabled menus and Tree controls.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;JSF UI Components' Pluggable Rendering Technology&lt;br /&gt;One of the most compelling aspects of JSF's UI Component technology is it's pluggable rendering capability. JSF UI Components have the ability to render themselves differently depending on the client type viewing the component. For example a HTML browser will view an "HTML Browser Friendly" version of a particular UI Component whereas a Wireless or WAP enabled micro-device would view a "WML friendly" version of the same UI component! JSF makes this possible by de-coupling the UI Component from its rendering logic making it possible to create multiple renderers for the same UI Component. Different renders can be associated with the UI Component and at runtime the UI component can decide which renderer to use based on the requesting client type.&lt;br /&gt;&lt;br /&gt;It should also be pointed out that because of JSF's pluggable rendering capability it is possible for JSF UI Components to render any kind of data be it markup, such as HTML, XML, WML etc.., or binary data. For example UI Components can also render binary data such as an image streams or different document types such as SVG, PDF and Word.&lt;br /&gt;&lt;br /&gt;A New Community of JSF Component Developers&lt;br /&gt;As the community of JSF developers and enthusiasts continues to grow, there are now several Websites dedicated to further empowering independent JSF development.. JSFCentral is an example of a new Website solely dedicated to the JSF development community. It contains JSF technical information, product/component information as well as a vast listing of numerous JSF related articles. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;(JSFCentral is located at: http://jsfcentral.com)&lt;br /&gt;JSF Development Tools&lt;br /&gt;Because JavaServer Faces is a standard Java technology, software development tools are fully empowered to offer advanced integrated development tools support for JavaServer Faces. This greatly enhances JSF's ease of use and power in that multiple vendors are now supporting JSF development to varying degrees. Oracle, Sun , Borland and IBM each offer development environments for JavaServer Faces. Since development tools vendors are competing at providing better, easier and more development environments, the future of IDE based JSF development looks great!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Summary&lt;br /&gt;JavaServer Faces solves many of the historical problems of Java Web development by providing a clean implementation of the Model-View-Controller design pattern while providing a productive, component-centric development without sacrificing development power and flexibility. Additionally since JSF is a Java standard, multiple software vendors will continue to provide evermore productive and efficient development environments which will no doubt rival and most probably surpass proprietary visual development environments. Stay tuned!&lt;br /&gt;&lt;br /&gt;Chris Schalk , Oracle Corporation&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/935222733255608566-5624207127163020605?l=mucahiduslu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mucahiduslu.blogspot.com/feeds/5624207127163020605/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=935222733255608566&amp;postID=5624207127163020605' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/935222733255608566/posts/default/5624207127163020605'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/935222733255608566/posts/default/5624207127163020605'/><link rel='alternate' type='text/html' href='http://mucahiduslu.blogspot.com/2008/02/introduction-to-javaserver-faces-what.html' title='Introduction to Javaserver Faces - What is JSF?'/><author><name>MUCAHID USLU</name><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-935222733255608566.post-8832079934397941670</id><published>2008-02-12T03:32:00.000-08:00</published><updated>2008-02-12T03:35:39.664-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='delete'/><category scheme='http://www.blogger.com/atom/ns#' term='file'/><title type='text'>How to delete files in a directory (java)</title><content type='html'>private void deleteDir(File dir) {&lt;br /&gt;            if (dir.isDirectory()) {&lt;br /&gt;                String[] _file = dir.list();&lt;br /&gt;                for (int i=0; i&lt;_file.length; i++) {&lt;br /&gt;                    deleteDir(new File(dir, _file[i]));&lt;br /&gt;                    &lt;br /&gt;                }&lt;br /&gt;             }else{&lt;br /&gt;                dir.delete();}&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/935222733255608566-8832079934397941670?l=mucahiduslu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mucahiduslu.blogspot.com/feeds/8832079934397941670/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=935222733255608566&amp;postID=8832079934397941670' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/935222733255608566/posts/default/8832079934397941670'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/935222733255608566/posts/default/8832079934397941670'/><link rel='alternate' type='text/html' href='http://mucahiduslu.blogspot.com/2008/02/how-to-delete-files-in-directory-java.html' title='How to delete files in a directory (java)'/><author><name>MUCAHID USLU</name><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-935222733255608566.post-2216509473504600874</id><published>2008-02-07T06:46:00.000-08:00</published><updated>2008-02-07T06:54:56.603-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='applet'/><category scheme='http://www.blogger.com/atom/ns#' term='sign'/><category scheme='http://www.blogger.com/atom/ns#' term='certificate'/><title type='text'>How to sign an applet</title><content type='html'>1. Generate key: keytool -genkey -keyalg rsa -alias tstkey&lt;br /&gt;Enter keystore password: *******&lt;br /&gt;What is your first and last name?&lt;br /&gt;[Unknown]: Your Name&lt;br /&gt;What is the name of your organizational unit?&lt;br /&gt;[Unknown]: YourUnit&lt;br /&gt;What is the name of your organization?&lt;br /&gt;[Unknown]: YourOrg&lt;br /&gt;What is the name of your City or Locality?&lt;br /&gt;[Unknown]: YourCity&lt;br /&gt;What is the name of your State or Province?&lt;br /&gt;[Unknown]: YS&lt;br /&gt;What is the two-letter country code for this unit?&lt;br /&gt;[Unknown]: US&lt;br /&gt;Is CN=Your Name, OU=YourUnit, O=YourOrg, L=YourCity, ST=YS, C=US&lt;br /&gt;correct?&lt;br /&gt;[no]: yes&lt;br /&gt;&lt;br /&gt;(wait...)&lt;br /&gt;&lt;br /&gt;Enter key password for tstkey&lt;br /&gt;(RETURN if same as keystore password):&lt;br /&gt;&lt;br /&gt;(press [enter])&lt;br /&gt;&lt;br /&gt;2. Export key: keytool -export -alias tstkey -file tstcert.crt&lt;br /&gt;&lt;br /&gt;Enter keystore password: *******&lt;br /&gt;Certificate stored in file tstcert.crt&lt;br /&gt;&lt;br /&gt;3. Create JAR: jar cvf tst.jar tst.class&lt;br /&gt;Add all classes used in your project by typing the classnames in the&lt;br /&gt;same line.&lt;br /&gt;&lt;br /&gt;added manifest&lt;br /&gt;adding: tst.class(in = 849) (out= 536)(deflated 36%)&lt;br /&gt;&lt;br /&gt;4. Verify JAR: jar tvf tst.jar&lt;br /&gt;&lt;br /&gt;Thu Jul 27 12:58:28 GMT+02:00 2000 META-INF/&lt;br /&gt;68 Thu Jul 27 12:58:28 GMT+02:00 2000 META-INF/MANIFEST.MF&lt;br /&gt;849 Thu Jul 27 12:49:04 GMT+02:00 2000 tst.class&lt;br /&gt;&lt;br /&gt;5. Sign JAR: jarsigner tst.jar tstkey&lt;br /&gt;Enter Passphrase for keystore: *******&lt;br /&gt;&lt;br /&gt;6. Verifiy Signing: jarsigner -verify -verbose -certs tst.jar&lt;br /&gt;&lt;br /&gt;130 Thu Jul 27 13:04:12 GMT+02:00 2000 META-INF/MANIFEST.MF&lt;br /&gt;183 Thu Jul 27 13:04:12 GMT+02:00 2000 META-INF/TSTKEY.SF&lt;br /&gt;920 Thu Jul 27 13:04:12 GMT+02:00 2000 META-INF/TSTKEY.RSA&lt;br /&gt;Thu Jul 27 12:58:28 GMT+02:00 2000 META-INF/&lt;br /&gt;smk 849 Thu Jul 27 12:49:04 GMT+02:00 2000 tst.class&lt;br /&gt;&lt;br /&gt;X.509, CN=Your Name, OU=YourUnit, O=YourOrg, L=YourCity, ST=YS, C=US&lt;br /&gt;(tstkey)&lt;br /&gt;&lt;br /&gt;s = signature was verified&lt;br /&gt;m = entry is listed in manifest&lt;br /&gt;k = at least one certificate was found in keystore&lt;br /&gt;i = at least one certificate was found in identity scope&lt;br /&gt;&lt;br /&gt;jar verified.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Note: even if it returns "jar unsigned", put jar file to your server, it will work :) i have tried. there may be a problem in verifier.&lt;br /&gt;&lt;br /&gt;Mücahid Uslu&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/935222733255608566-2216509473504600874?l=mucahiduslu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mucahiduslu.blogspot.com/feeds/2216509473504600874/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=935222733255608566&amp;postID=2216509473504600874' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/935222733255608566/posts/default/2216509473504600874'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/935222733255608566/posts/default/2216509473504600874'/><link rel='alternate' type='text/html' href='http://mucahiduslu.blogspot.com/2008/02/how-to-sign-applet.html' title='How to sign an applet'/><author><name>MUCAHID USLU</name><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-935222733255608566.post-8349795621914811424</id><published>2008-02-07T05:50:00.000-08:00</published><updated>2008-02-07T06:14:11.934-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='REPOSITORY'/><category scheme='http://www.blogger.com/atom/ns#' term='SCM'/><category scheme='http://www.blogger.com/atom/ns#' term='REPCMD'/><title type='text'>REPCMD Utility / Using Oracle Repository (SCM)</title><content type='html'>Open a command screen;&lt;br /&gt;&lt;br /&gt;To run util;&lt;br /&gt;C:&gt; REPCMD&lt;br /&gt;&lt;br /&gt;To connect to scm;&lt;br /&gt;C:&gt; CONNECT username/password@SID&lt;br /&gt;&lt;br /&gt;To set workarea;&lt;br /&gt;C:&gt; SET WORKAREA waname&lt;br /&gt;&lt;br /&gt;To see list of checkouted files;&lt;br /&gt;C:&gt; LSCHECKOUT (or LSCO)&lt;br /&gt;&lt;br /&gt;CHECK-IN a file;&lt;br /&gt;-------&lt;br /&gt;CHECKIN \waname\other path\filename.fmb&lt;br /&gt;&lt;br /&gt;UPLOAD a file;&lt;br /&gt;-------&lt;br /&gt;UPLOAD C:\filename.fmb \waname\other path\&lt;br /&gt;&lt;br /&gt;to see all commands;&lt;br /&gt;C:&gt; HELP&lt;br /&gt;&lt;br /&gt;If you wannt to reach from a program to util, you can to run a bat file which contents related commands.&lt;br /&gt;&lt;br /&gt;for example;&lt;br /&gt;&lt;br /&gt;Run a bat file following;&lt;br /&gt;create a bat file in java code&lt;br /&gt;&lt;br /&gt;PrintWriter fileOut=null;&lt;br /&gt; try&lt;br /&gt; {&lt;br /&gt;  if(iAction==9){&lt;br /&gt;        fileOut = new PrintWriter(new FileWriter("c:\\scm123.bat"));&lt;br /&gt;  }else{fileOut = new PrintWriter(new FileWriter(sBatFileName));}&lt;br /&gt;  } catch (Exception e)&lt;br /&gt;  {&lt;br /&gt;   System.out.println(e.getMessage());&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;fileOut.println("CONNECT "+mydb.GetSCMUser()+"/"+mydb.GetSCMPass()+"@"+mydb.GetSCMTNSSID());&lt;br /&gt;fileOut.println("SET WORKAREA "+sWorkArea);&lt;br /&gt;fileOut.println("UPLOAD c:\\"+_filename+"."+_fileext+" \\"+sSCMPath+"\\"+_fileext.toUpperCase()+"\\"+_filename.substring(0,1).toUpperCase()+"\\ -ow");&lt;br /&gt;fileOut.println("CHECKIN \\"+sSCMPath+"\\"+_fileext.toUpperCase()+"\\"+_filename.substring(0,1).toUpperCase()+"\\"+_filename+"."+_fileext);&lt;br /&gt;fileOut.println("COMMIT");&lt;br /&gt;fileOut.println("DISCONNECT");&lt;br /&gt;fileOut.println("EXIT");&lt;br /&gt;&lt;br /&gt;and run this command; example for java;&lt;br /&gt;     &lt;br /&gt;  try&lt;br /&gt;        {&lt;br /&gt;        System.out.println("SCM Script begin..");&lt;br /&gt;        Runtime rt = Runtime.getRuntime();&lt;br /&gt;        Process child=rt.exec("cmd /c start /min repcmd @"+"c:\\myfile.bat");&lt;br /&gt;        child.waitFor();&lt;br /&gt;        System.out.println("SCM Script finished..");&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        catch(IOException e)&lt;br /&gt;        {&lt;br /&gt;        System.err.println("scm script error! "+e.getMessage());&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Mücahid Uslu&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/935222733255608566-8349795621914811424?l=mucahiduslu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mucahiduslu.blogspot.com/feeds/8349795621914811424/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=935222733255608566&amp;postID=8349795621914811424' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/935222733255608566/posts/default/8349795621914811424'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/935222733255608566/posts/default/8349795621914811424'/><link rel='alternate' type='text/html' href='http://mucahiduslu.blogspot.com/2008/02/repcmd-utility-using-oracle-repository.html' title='REPCMD Utility / Using Oracle Repository (SCM)'/><author><name>MUCAHID USLU</name><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>
