<?xml version="1.0" encoding="utf-8"?>
<!-- generator="FeedCreator 1.7.2-ppt DokuWiki" -->
<?xml-stylesheet href="http://www.kirkdorffer.com/wiki/lib/exe/css.php?s=feed" type="text/css"?>
<rss version="2.0">
    <channel>
        <title>DanKWiki</title>
        <description></description>
        <link>http://www.kirkdorffer.com/wiki/</link>
        <lastBuildDate>Sun, 26 May 2013 02:58:12 -0400</lastBuildDate>
        <generator>FeedCreator 1.7.2-ppt DokuWiki</generator>
        <image>
            <url>http://www.kirkdorffer.com/wiki/lib/tpl/dankwiki/images/favicon.ico</url>
            <title>DanKWiki</title>
            <link>http://www.kirkdorffer.com/wiki/</link>
        </image>
        <item>
            <title>wiki:sortsummary.png</title>
            <link>http://www.kirkdorffer.com/wiki/?image=wiki%3Asortsummary.png&amp;ns=wiki&amp;do=media</link>
            <description>&lt;img src=&quot;/wiki/_media/wiki:sortsummary.png?w=500&amp;h=284t=1368483632&quot; alt=&quot;wiki:sortsummary.png&quot; /&gt;</description>
            <author>Daniel Kirkdorffer</author>
        <category>wiki</category>
            <pubDate>Mon, 13 May 2013 18:20:32 -0400</pubDate>
        </item>
        <item>
            <title>Data Structures And Algorithm Notes - [Questions and Topics] </title>
            <link>http://www.kirkdorffer.com/wiki/data_structures_and_algorithm_notes</link>
            <description>
&lt;h0 class=&quot;sectionedit1&quot;&gt;&lt;a name=&quot;data_structures_and_algorithm_notes&quot; id=&quot;data_structures_and_algorithm_notes&quot;&gt;Data Structures And Algorithm Notes&lt;/a&gt;&lt;/h0&gt;
&lt;div class=&quot;level0&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT1 SECTION &quot;Data Structures And Algorithm Notes&quot; [1-202] --&gt;
&lt;h1 class=&quot;sectionedit2&quot;&gt;&lt;a name=&quot;data_structures_and_algorithm_notes1&quot; id=&quot;data_structures_and_algorithm_notes1&quot;&gt;Data Structures And Algorithm Notes&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.brpreiss.com/books/opus5/html/page9.html&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://www.brpreiss.com/books/opus5/html/page9.html&quot;  rel=&quot;nofollow&quot;&gt;Data Structures and Algorithms with Object-Oriented Design Patterns in Java&lt;/a&gt; (Online Book)&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT2 SECTION &quot;Data Structures And Algorithm Notes&quot; [203-901] --&gt;
&lt;h2 class=&quot;sectionedit3&quot;&gt;&lt;a name=&quot;data_structures&quot; id=&quot;data_structures&quot;&gt;Data Structures&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.topcoder.com/tc?module=Static&amp;amp;d1=tutorials&amp;amp;d2=dataStructures&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://www.topcoder.com/tc?module=Static&amp;amp;d1=tutorials&amp;amp;d2=dataStructures&quot;  rel=&quot;nofollow&quot;&gt;Data Structures&lt;/a&gt; - Overview&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.interviewpattern.com/post/Linked-List-Interview-Questions-Part-I.aspx&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://www.interviewpattern.com/post/Linked-List-Interview-Questions-Part-I.aspx&quot;  rel=&quot;nofollow&quot;&gt;Linked List Interview Questions - Part I&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.interviewpattern.com/post/Linked-List-Interview-Questions-Part-II.aspx&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://www.interviewpattern.com/post/Linked-List-Interview-Questions-Part-II.aspx&quot;  rel=&quot;nofollow&quot;&gt;Linked List Interview Questions - Part II&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://javarevisited.blogspot.com/2013/03/top-15-data-structures-algorithm-interview-questions-answers-java-programming.html&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://javarevisited.blogspot.com/2013/03/top-15-data-structures-algorithm-interview-questions-answers-java-programming.html&quot;  rel=&quot;nofollow&quot;&gt;Top 15 Data Structures and Algorithm Interview Questions for Java programmer - Answers&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://en.wikipedia.org/wiki/Heap_%28data_structure%29&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://en.wikipedia.org/wiki/Heap_%28data_structure%29&quot;  rel=&quot;nofollow&quot;&gt;Heap&lt;/a&gt; (Wikipedia)&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT3 SECTION &quot;Data Structures&quot; [902-1908] --&gt;
&lt;h2 class=&quot;sectionedit4&quot;&gt;&lt;a name=&quot;algorithms&quot; id=&quot;algorithms&quot;&gt;Algorithms&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://xlinux.nist.gov/dads/&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://xlinux.nist.gov/dads/&quot;  rel=&quot;nofollow&quot;&gt;Dictionary of Algorithms and Data Structures&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.topcoder.com/tc?d1=tutorials&amp;amp;d2=alg_index&amp;amp;module=Static&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://www.topcoder.com/tc?d1=tutorials&amp;amp;d2=alg_index&amp;amp;module=Static&quot;  rel=&quot;nofollow&quot;&gt;Top Coder Algorithm Tutorials&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://blog.notdot.net/2007/4/Damn-Cool-Algorithms-Part-1-BK-Trees&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://blog.notdot.net/2007/4/Damn-Cool-Algorithms-Part-1-BK-Trees&quot;  rel=&quot;nofollow&quot;&gt;Damn Cool Algorithms, Part 1: BK-Trees&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://en.wikipedia.org/wiki/Search_algorithm&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://en.wikipedia.org/wiki/Search_algorithm&quot;  rel=&quot;nofollow&quot;&gt;Search algorithm&lt;/a&gt; (Wikipedia)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://en.wikipedia.org/wiki/Sorting_algorithm&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://en.wikipedia.org/wiki/Sorting_algorithm&quot;  rel=&quot;nofollow&quot;&gt;Sorting algorithm&lt;/a&gt; (Wikipedia)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://en.wikipedia.org/wiki/NP-complete&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://en.wikipedia.org/wiki/NP-complete&quot;  rel=&quot;nofollow&quot;&gt;NP-complete&lt;/a&gt; (Wikipedia)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://en.wikipedia.org/wiki/Traveling_salesman_problem&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://en.wikipedia.org/wiki/Traveling_salesman_problem&quot;  rel=&quot;nofollow&quot;&gt;Travelling salesman problem&lt;/a&gt; (Wikipedia)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://en.wikipedia.org/wiki/Knapsack_problem&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://en.wikipedia.org/wiki/Knapsack_problem&quot;  rel=&quot;nofollow&quot;&gt;Knapsack problem&lt;/a&gt; (Wikipedia)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://en.wikipedia.org/wiki/Graph_theory&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://en.wikipedia.org/wiki/Graph_theory&quot;  rel=&quot;nofollow&quot;&gt;Graph theory&lt;/a&gt; (Wikipedia)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://en.wikipedia.org/wiki/Breadth-first_search&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://en.wikipedia.org/wiki/Breadth-first_search&quot;  rel=&quot;nofollow&quot;&gt;Breadth-first search&lt;/a&gt; (Wikipedia)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://en.wikipedia.org/wiki/Depth-first_search&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://en.wikipedia.org/wiki/Depth-first_search&quot;  rel=&quot;nofollow&quot;&gt;Depth-first search&lt;/a&gt; (Wikipedia)&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT4 SECTION &quot;Algorithms&quot; [1909-2114] --&gt;
&lt;h3 class=&quot;sectionedit5&quot;&gt;&lt;a name=&quot;big-o_notation&quot; id=&quot;big-o_notation&quot;&gt;Big-O Notation&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.perlmonks.org/?node_id=227909&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://www.perlmonks.org/?node_id=227909&quot;  rel=&quot;nofollow&quot;&gt;An informal introduction to O(N) notation&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.perlmonks.org/?node_id=573138&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://www.perlmonks.org/?node_id=573138&quot;  rel=&quot;nofollow&quot;&gt;Big-O Notation - What is it good for?&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT5 SECTION &quot;Big-O Notation&quot; [2115-13235] --&gt;
&lt;h2 class=&quot;sectionedit6&quot;&gt;&lt;a name=&quot;questions_and_topics&quot; id=&quot;questions_and_topics&quot;&gt;Questions and Topics&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Q. &lt;a href=&quot;http://en.wikipedia.org/wiki/Bitwise_operation&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://en.wikipedia.org/wiki/Bitwise_operation&quot;  rel=&quot;nofollow&quot;&gt;Bitwise Operations&lt;/a&gt; and &lt;a href=&quot;http://vipan.com/htdocs/bitwisehelp.html&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://vipan.com/htdocs/bitwisehelp.html&quot;  rel=&quot;nofollow&quot;&gt;Bitwise AND, OR, XOR and NOT Operators and Bit Masks&lt;/a&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;NOT - Bits that are 0 become 1, and those that are 1 become 0.  Used to unset/turn off bit flags.
AND - Multiplication of bits; i.e., 1 × 0 = 0 and 1 × 1 = 1.  Used to check state of a bit flag.
OR  - 1 if either bit is 1, otherwise 0.  Used to set/turn on bit flags regardless of whether already on or not.
XOR - 1 if both bits are different, 0 if they are the same.  Used to toggle flag bits of a mask.

Arithmetic Shifts: left &amp;lt;&amp;lt; (multiplies by 2, 0 shifted on as least significant bit), right &amp;gt;&amp;gt; (divides by 2, left-most sign bit is retained)
Logical Shift: right &amp;gt;&amp;gt;&amp;gt; (divides by 2, 0 shifted on as most significant bit)&lt;/pre&gt;

&lt;p&gt;
Q. What&amp;#039;s the difference between a LinkedList and an ArrayList (or between a linked list and an array/vector)?
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;An ArrayList is a List implementation backed by a Java array. With a LinkedList, the List implementation is backed by a 
doubly linked list data structure.&lt;/pre&gt;

&lt;p&gt;
Q. How can you detect a cycle in a linked list?
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Turtle and Rabbit: The idea is to have two references to the list and move them at different speeds. Move one forward by 1  
node and the other by 2 nodes. If the linked list has a loop they will meet. If there is no loop either of the references 
will become null when it reaches the end of the list. O(n)&lt;/pre&gt;

&lt;p&gt;
Q. What is a weighted round robin load balancing algorithm?
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Round robin distribution is used by DNS servers, peer-to-peer networks, and many other multiple-node clusters/networks.  
In a weighted round-robin algorithm, each destination (in this case, server) is assigned a value that signifies, relative 
to the other servers in the list, how that server performs. This &amp;quot;weight&amp;quot; determines how many more (or fewer) requests are 
sent that server&amp;#039;s way; compared to the other servers on the list.  &lt;/pre&gt;

&lt;p&gt;
Q. &lt;a href=&quot;http://en.wikipedia.org/wiki/Breadth_first_search&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://en.wikipedia.org/wiki/Breadth_first_search&quot;  rel=&quot;nofollow&quot;&gt;Breadth first search&lt;/a&gt;
&lt;br/&gt;
&lt;a href=&quot;http://www.kirkdorffer.com/wiki/lib/exe/fetch.php?hash=b16010&amp;amp;media=http%3A%2F%2Fupload.wikimedia.org%2Fwikipedia%2Fcommons%2Fthumb%2F3%2F33%2FBreadth-first-tree.svg%2F200px-Breadth-first-tree.svg.png&quot; class=&quot;media&quot; title=&quot;http://upload.wikimedia.org/wikipedia/commons/thumb/3/33/Breadth-first-tree.svg/200px-Breadth-first-tree.svg.png&quot;&gt;&lt;img src=&quot;http://www.kirkdorffer.com/wiki/lib/exe/fetch.php?hash=b16010&amp;amp;media=http%3A%2F%2Fupload.wikimedia.org%2Fwikipedia%2Fcommons%2Fthumb%2F3%2F33%2FBreadth-first-tree.svg%2F200px-Breadth-first-tree.svg.png&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;root, children (enqueue/add), children of children (dequeue/remove first and enqueue), etc... Use a fifo queue

Typical applications:
- Shortest path between two vertices.&lt;/pre&gt;

&lt;p&gt;
&lt;pre name=&quot;code&quot; class=&quot;java:showcontrols&quot;&gt;
public class BreadthFirstPaths {

    private boolean[] marked;
    private int[] edgeTo;

    ...
    
    private void bfs(Graph G, int s) {
        Queue&amp;lt;Integer&amp;gt; q = new Queue&amp;lt;Integer&amp;gt;();
        q.enqueue(s);
        marked[s] = true;
        while (!q.isEmpty()) {
            int v = q.dequeue();
            for (int w : G.adj(v)) {
                if (!marked[w]) {
                    q.enqueue(w);
                    marked[w] = true;
                    edgeTo[w] = v;
                }
            }
        }
    }
}
&lt;/pre&gt;
&lt;/p&gt;

&lt;p&gt;
Q. &lt;a href=&quot;http://en.wikipedia.org/wiki/Depth-first_search&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://en.wikipedia.org/wiki/Depth-first_search&quot;  rel=&quot;nofollow&quot;&gt;Depth first search&lt;/a&gt;
&lt;br/&gt;
&lt;a href=&quot;http://www.kirkdorffer.com/wiki/lib/exe/fetch.php?hash=d3d242&amp;amp;media=http%3A%2F%2Fupload.wikimedia.org%2Fwikipedia%2Fcommons%2Fthumb%2F1%2F1f%2FDepth-first-tree.svg%2F200px-Depth-first-tree.svg.png&quot; class=&quot;media&quot; title=&quot;http://upload.wikimedia.org/wikipedia/commons/thumb/1/1f/Depth-first-tree.svg/200px-Depth-first-tree.svg.png&quot;&gt;&lt;img src=&quot;http://www.kirkdorffer.com/wiki/lib/exe/fetch.php?hash=d3d242&amp;amp;media=http%3A%2F%2Fupload.wikimedia.org%2Fwikipedia%2Fcommons%2Fthumb%2F1%2F1f%2FDepth-first-tree.svg%2F200px-Depth-first-tree.svg.png&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;root, children (push) to leaf nodes, left, then up (pop) and right... Use a stack
    +
  3   4
preorder/prefix (Polish notation, e.g. + 3 4), postorder/postfix (reverse Polish notation, e.g. 3 4 +), 
inorder/infix (e.g. 3 + 4) - expression tree

Recursive algorithm.

Typical applications:
- Find all vertices connected to a given source vertex.
- Find a path between two vertices.

After DFS, should be able to:
- Find vertices connected to root/source in constant time
- Find a path back to root/source in time proportional to its length&lt;/pre&gt;

&lt;p&gt;
&lt;pre name=&quot;code&quot; class=&quot;java:showcontrols&quot;&gt;
public class DepthFirstPaths {

    private boolean[] marked;
    private int[] edgeTo;
    private int s;

    public DepthFirstSearch(Graph G, int s) {
        ...
        dfs(G, s);
    }

    private void dfs(Graph G, int v) {
        marked[v] = true;
        for (int w : G.adj(v))
            if (!marked[w]) {
                dfs(G, w);
                edgeTo[w] = v;
            }
    }
}
&lt;/pre&gt;
&lt;/p&gt;

&lt;p&gt;
Q. Name some self balancing binary trees
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Red/black tree, splay tree, AVL tree&lt;/pre&gt;

&lt;p&gt;
Q. What is Big-O Notation?
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Defines best, average and typically worst case performance of an algorithm.  
Given N we might have, N, N log N, N^2 performance, for example.&lt;/pre&gt;

&lt;p&gt;
Q. &lt;a href=&quot;http://en.wikipedia.org/wiki/Merge_sort&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://en.wikipedia.org/wiki/Merge_sort&quot;  rel=&quot;nofollow&quot;&gt;Merge sort&lt;/a&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Split in 2, recurse left, recurse right, merge sorted halves.

Can be &amp;quot;stable&amp;quot; - i.e. retains existing sorts if order of equal items is not changed, and no long distance exchanges are made.

Java sorts Objects with a merge sort algorithm.  N log N.&lt;/pre&gt;

&lt;p&gt;
&lt;pre name=&quot;code&quot; class=&quot;java:showcontrols&quot;&gt;
public class MergeSort {

    public static void sort(Object[] a, Comparator comparator) {
        Object[] aux = new Object[a.length];
        sort(a, aux, comparator, 0, a.length - 1);
    }

    private static void sort(Object[] a, Object[] aux, Comparator c, int lo, int hi) {
        // Optimize sort for small subarrays (CUTOFF = 7 perhaps):
        if (hi &amp;lt;= lo + CUTOFF - 1) {
            Insertion.sort(a, c, lo, hi);
            return;
        }

        int mid = lo + (hi - lo) / 2;
        sort(a, aux, c, lo, mid);
        sort(a, aux, c, mid + 1, hi);

        // Optimize if already sorted:
        if (!less(c, a[mid + 1], a[mid])) return;

        merge(a, aux, c, lo, mid, hi);
    }

    private static void merge(Object[] a, Object[] aux, Comparator c, int lo, int mid, int hi) {
        assert isSorted(a, c, lo, mid);      // precondition: a[lo..mid] sorted
        assert isSorted(a, c, mid + 1, hi);  // precondition: a[mid+1..hi] sorted

        // Copy to working array:
        for (int k = lo; k &amp;lt;= hi; k++)
            aux[k] = a[k];

        // Merge two arrays:
        int i = lo, j = mid + 1;
        for (int k = lo; k &amp;lt;= hi; k++) {
            if (i &amp;gt; mid)                      a[k] = aux[j++];
            else if (j &amp;gt; hi)                  a[k] = aux[i++];
            else if (less(c, aux[j], aux[i])) a[k] = aux[j++];
            else                              a[k] = aux[i++];
        }

        assert isSorted(a, c, lo, hi);       // postcondition: a[lo..hi] sorted
    }

    ...

}
&lt;/pre&gt;
&lt;/p&gt;

&lt;p&gt;
Q. &lt;a href=&quot;http://en.wikipedia.org/wiki/Quick_sort&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://en.wikipedia.org/wiki/Quick_sort&quot;  rel=&quot;nofollow&quot;&gt;Quick sort&lt;/a&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Randomly shuffle array to prep process and avoid worst case comparisons (~1/2 * N^2) which becomes very unlikely to happen (if shuffle actually 
sorted the array!)
Then pick a partitioning element as a divide/pivot point, less vs. greater, exchange elements that are out of place, recurse.

Is not &amp;quot;stable&amp;quot;.

Faster than Merge sort because less movement of items even though more compares in average case.  N log N.  Too many duplicate keys can also 
affect efficiency.

Java sorts primitive types with a quick sort algorithm.&lt;/pre&gt;

&lt;p&gt;
&lt;pre name=&quot;code&quot; class=&quot;java:showcontrols&quot;&gt;
public class QuickSort {

    private static int partition(Comparable[] a, int lo, int hi) {
        int i = lo, j = hi + 1;
        while (true) {
            while (less(a[++i], a[lo])) // find item on left to swap
                if (i == hi) break;

            while (less(a[lo], a[--j])) // find item on right to swap
                if (j == lo) break;

            if (i &amp;gt;= j) break;          // check if pointers cross
            exch(a, i, j);              // swap items
        }
        exch(a, lo, j);                 // swap with partitioning item
        return j;                       // return index of item now known to be in place
    }

    public static void sort(Comparable[] a) {
        StdRandom.shuffle(a);  // shuffle ensures performance is good
        sort(a, 0, a.length - 1);
    }

    private static void sort(Comparable[] a, int lo, int hi) {
        // Optimize sort for small subarrays (CUTOFF between 10 and 20):
        if (hi &amp;lt;= lo + CUTOFF - 1) {
            Insertion.sort(a, lo, hi);
            return;
        }
        
        int j = partition(a, lo, hi);
        sort(a, lo, j - 1);
        sort(a, j + 1, hi);
    }
}
&lt;/pre&gt;
&lt;/p&gt;

&lt;p&gt;
Q. Sorting Summary
&lt;br/&gt;
&lt;img src=&quot;http://www.kirkdorffer.com/wiki/_media/wiki:sortsummary.png&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;
&lt;/p&gt;

&lt;p&gt;
Q. Implement a hashtable (dictionary)
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;An array of linked lists, indexed by a hash, where hash collisions are placed in buckets in the linked list.&lt;/pre&gt;

&lt;p&gt;
Q. &lt;a href=&quot;http://en.wikipedia.org/wiki/Binary_search_trees&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://en.wikipedia.org/wiki/Binary_search_trees&quot;  rel=&quot;nofollow&quot;&gt;Binary search trees&lt;/a&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;left subtree nodes &amp;lt; parent node &amp;lt;= right subtree nodes.  Efficient for sorting, searching in-order.&lt;/pre&gt;

&lt;p&gt;
&lt;pre name=&quot;code&quot; class=&quot;java:showcontrols&quot;&gt;
public class BST&amp;lt;Key extends Comparable&amp;lt;Key&amp;gt;, Value&amp;gt; {
    private Node root;             // root of BST

    private class Node {
        private Key key;           // sorted by key
        private Value val;         // associated data
        private Node left, right;  // left and right subtrees

        public Node(Key key, Value val, int N) {
            this.key = key;
            this.val = val;
            this.N = N;
        }
    }

    // return value associated with the given key, or null if no such key exists
    public Value get(Key key) {
        return get(root, key);
    }

    private Value get(Node x, Key key) {
        if (x == null) return null;

        int cmp = key.compareTo(x.key);

        if      (cmp &amp;lt; 0) return get(x.left, key);
        else if (cmp &amp;gt; 0) return get(x.right, key);
        else              return x.val;
    }


    /***********************************************************************
    *  Insert key-value pair into BST
    *  If key already exists, update with new value
    ***********************************************************************/
    public void put(Key key, Value val) {
        root = put(root, key, val);
    }

    private Node put(Node x, Key key, Value val) {
        if (x == null) return new Node(key, val, 1);

        int cmp = key.compareTo(x.key);

        if      (cmp &amp;lt; 0) x.left  = put(x.left,  key, val);
        else if (cmp &amp;gt; 0) x.right = put(x.right, key, val);
        else              x.val   = val;

        return x;
    }
}
&lt;/pre&gt;
&lt;/p&gt;

&lt;p&gt;
Q. Heap (priority queue)
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Complete binary tree (i.e. only bottom level might not be complete, left to right), 
heap ordered (i.e. parent values &amp;gt; children values)&lt;/pre&gt;

&lt;p&gt;
Q. Graphs
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;trees with interconnecting nodes&lt;/pre&gt;

&lt;p&gt;
Q. Graph algorithms, such as Dijkstra and A*
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Best-first search is a search algorithm which explores a graph by expanding the most promising node chosen 
according to a specified rule.  A* uses a best-first search and finds the least-cost path from a given initial
node to one goal node (out of one or more possible goals).  It uses a distance-plus-cost heuristic  function 
(usually denoted f(x)) to determine the order in which the search visits nodes in the tree.
  
Dijkstra&amp;#039;s algorithm, conceived by Dutch computer scientist Edsger Dijkstra in 1959,[1]  is a graph search 
algorithm that solves the single-source shortest path problem for a graph with nonnegative edge path costs, 
producing a shortest path tree. This algorithm is often used in routing.&lt;/pre&gt;

&lt;p&gt;
Q. NP-complete problems, such as traveling salesman and the knapsack problem 
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Traveling Salesman problem: Given a list of cities and their pairwise distances, the task is to find a shortest 
possible tour that visits each city exactly once.

Knapsack problem: Given a set of items, each with a weight and a value, determine the number of each item to 
include in a collection so that the total weight is less than a given limit and the total value is as large as 
possible.&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT6 SECTION &quot;Questions and Topics&quot; [13236-] --&gt;</description>
            <author>Daniel Kirkdorffer</author>
            <pubDate>Fri, 03 May 2013 14:40:07 -0400</pubDate>
        </item>
        <item>
            <title>Web Services Notes - [HTTP] </title>
            <link>http://www.kirkdorffer.com/wiki/web_services_notes</link>
            <description>
&lt;h0 class=&quot;sectionedit7&quot;&gt;&lt;a name=&quot;web_services_notes&quot; id=&quot;web_services_notes&quot;&gt;Web Services Notes&lt;/a&gt;&lt;/h0&gt;
&lt;div class=&quot;level0&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT7 SECTION &quot;Web Services Notes&quot; [1-34] --&gt;
&lt;h1 class=&quot;sectionedit8&quot;&gt;&lt;a name=&quot;web_services_notes1&quot; id=&quot;web_services_notes1&quot;&gt;Web Services Notes&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT8 SECTION &quot;Web Services Notes&quot; [35-326] --&gt;
&lt;h2 class=&quot;sectionedit9&quot;&gt;&lt;a name=&quot;general_documentation&quot; id=&quot;general_documentation&quot;&gt;General Documentation&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://java.sun.com/webservices/docs/2.0/tutorial/doc/&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://java.sun.com/webservices/docs/2.0/tutorial/doc/&quot;  rel=&quot;nofollow&quot;&gt;The Java Web Services Tutorial&lt;/a&gt; (Java Web Services Developer Pack (JWSDP) 2.0) - February, 2006&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://nordsc.com/ext/classification_of_http_based_apis.html&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://nordsc.com/ext/classification_of_http_based_apis.html&quot;  rel=&quot;nofollow&quot;&gt;Classification of HTTP APIs&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT9 SECTION &quot;General Documentation&quot; [327-344] --&gt;
&lt;h2 class=&quot;sectionedit10&quot;&gt;&lt;a name=&quot;rest&quot; id=&quot;rest&quot;&gt;REST&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT10 SECTION &quot;REST&quot; [345-458] --&gt;
&lt;h3 class=&quot;sectionedit11&quot;&gt;&lt;a name=&quot;http&quot; id=&quot;http&quot;&gt;HTTP&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.w3.org/Protocols/rfc2616/rfc2616.html&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://www.w3.org/Protocols/rfc2616/rfc2616.html&quot;  rel=&quot;nofollow&quot;&gt;Hypertext Transfer Protocol -- HTTP/1.1&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;methods&quot; id=&quot;methods&quot;&gt;Methods&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Idempotent - no matter how many times you apply the operation, the result is always the same.
&lt;br/&gt;
Safe - the operation does not change the state of the server.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; GET - Idempotent, safe&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; PUT (Update) - Idempotent&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; POST (Create) - Not idempotent, not safe&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; DELETE - Idempotent&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT11 SECTION &quot;HTTP&quot; [459-1333] --&gt;
&lt;h3 class=&quot;sectionedit12&quot;&gt;&lt;a name=&quot;resources&quot; id=&quot;resources&quot;&gt;Resources&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm&quot;  rel=&quot;nofollow&quot;&gt;Architectural Styles and the Design of Network-based Software Architectures&lt;/a&gt; - Roy T. Fielding&amp;#039;s dissertation.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.infoq.com/articles/rest-introduction&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://www.infoq.com/articles/rest-introduction&quot;  rel=&quot;nofollow&quot;&gt;InfoQ: A Brief Introduction to REST&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://bitworking.org/news/373/An-Introduction-to-REST&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://bitworking.org/news/373/An-Introduction-to-REST&quot;  rel=&quot;nofollow&quot;&gt;An Introduction to REST&lt;/a&gt; (Video)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.infoq.com/articles/webber-rest-workflow&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://www.infoq.com/articles/webber-rest-workflow&quot;  rel=&quot;nofollow&quot;&gt;InfoQ: How to GET a Cup of Coffee&lt;/a&gt; - A case study&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://my.safaribooksonline.com/9781449383312&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://my.safaribooksonline.com/9781449383312&quot;  rel=&quot;nofollow&quot;&gt;REST in Practice&lt;/a&gt; (Book)&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT12 SECTION &quot;Resources&quot; [1334-1585] --&gt;
&lt;h3 class=&quot;sectionedit13&quot;&gt;&lt;a name=&quot;jax-rs_jersey&quot; id=&quot;jax-rs_jersey&quot;&gt;JAX-RS &amp;amp; Jersey&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://jsr311.dev.java.net/nonav/releases/1.1/spec/spec.html&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;https://jsr311.dev.java.net/nonav/releases/1.1/spec/spec.html&quot;  rel=&quot;nofollow&quot;&gt;JAX-RS: Java™ API for RESTful Web Services&lt;/a&gt; (v1.1) - September, 2009&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://jersey.java.net/&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://jersey.java.net/&quot;  rel=&quot;nofollow&quot;&gt;Jersey&lt;/a&gt; - JAX-RS (JSR 311) Reference Implementation &lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT13 SECTION &quot;JAX-RS &amp; Jersey&quot; [1586-1902] --&gt;
&lt;h3 class=&quot;sectionedit14&quot;&gt;&lt;a name=&quot;resteasy&quot; id=&quot;resteasy&quot;&gt;RESTEasy&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://jboss.org/resteasy&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://jboss.org/resteasy&quot;  rel=&quot;nofollow&quot;&gt;RESTEasy&lt;/a&gt; - A JBoss framework for writing RESTful web services&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://jboss.org/resteasy/docs&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://jboss.org/resteasy/docs&quot;  rel=&quot;nofollow&quot;&gt;RESTEasy JAX-RS Documentation&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://blog.esofthead.com/develop-restful-application-with-resteasy/&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://blog.esofthead.com/develop-restful-application-with-resteasy/&quot;  rel=&quot;nofollow&quot;&gt;Develop Restful application with RESTeasy&lt;/a&gt; (Tutorial) &lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT14 SECTION &quot;RESTEasy&quot; [1903-2904] --&gt;
&lt;h3 class=&quot;sectionedit15&quot;&gt;&lt;a name=&quot;atompub&quot; id=&quot;atompub&quot;&gt;AtomPub&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.ietf.org/rfc/rfc5023.txt&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://www.ietf.org/rfc/rfc5023.txt&quot;  rel=&quot;nofollow&quot;&gt;The Atom Publishing Protocol (RFC 5023)&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://atomserver.codehaus.org/&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://atomserver.codehaus.org/&quot;  rel=&quot;nofollow&quot;&gt;AtomServer &lt;/a&gt; - A generic data store implemented as a RESTful web service.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://abdera.apache.org/&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://abdera.apache.org/&quot;  rel=&quot;nofollow&quot;&gt;Apache Abdera&lt;/a&gt; - A functionally-complete, high-performance implementation of the IETF Atom Syndication Format (&lt;acronym title=&quot;Request for Comments&quot;&gt;RFC&lt;/acronym&gt; 4287) and Atom Publishing Protocol (&lt;acronym title=&quot;Request for Comments&quot;&gt;RFC&lt;/acronym&gt; 5023) specifications.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://code.google.com/p/atomojo/&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://code.google.com/p/atomojo/&quot;  rel=&quot;nofollow&quot;&gt;atomojo&lt;/a&gt; - An Atom Publishing Protocol Client &amp;amp; Server&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; “Getting to know the Atom Publishing Protocol” developerWorks Article:&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.ibm.com/developerworks/xml/library/x-atompp1/index.html&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://www.ibm.com/developerworks/xml/library/x-atompp1/index.html&quot;  rel=&quot;nofollow&quot;&gt;Part 1: Create and edit Web resources with the Atom Publishing Protocol&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.ibm.com/developerworks/xml/library/x-atompp2/index.html&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://www.ibm.com/developerworks/xml/library/x-atompp2/index.html&quot;  rel=&quot;nofollow&quot;&gt;Part 2: Put the Atom Publishing Protocol (APP) to work&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.ibm.com/developerworks/xml/library/x-atompp3/index.html&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://www.ibm.com/developerworks/xml/library/x-atompp3/index.html&quot;  rel=&quot;nofollow&quot;&gt;Part 3: Introducing the Apache Abdera project&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT15 SECTION &quot;AtomPub&quot; [2905-3388] --&gt;
&lt;h2 class=&quot;sectionedit16&quot;&gt;&lt;a name=&quot;soa_esb&quot; id=&quot;soa_esb&quot;&gt;SOA / ESB&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://enterpriseintegrationpatterns.com/&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://enterpriseintegrationpatterns.com/&quot;  rel=&quot;nofollow&quot;&gt;Patterns and Best Practices for Enterprise Integration&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://architects.dzone.com/news/top-open-source-esbs&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://architects.dzone.com/news/top-open-source-esbs&quot;  rel=&quot;nofollow&quot;&gt;Top Open Source ESB Projects&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.sonicsoftware.com/products/whitepapers/docs/best_of_breed_esbs.pdf&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://www.sonicsoftware.com/products/whitepapers/docs/best_of_breed_esbs.pdf&quot;  rel=&quot;nofollow&quot;&gt;Best-of-Breed ESBs&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.infoq.com/presentations/soa-without-esb&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://www.infoq.com/presentations/soa-without-esb&quot;  rel=&quot;nofollow&quot;&gt;InfoQ: Does My Bus Look Big in This?&lt;/a&gt; - SOA without ESB presentation by Martin Fowler and Jim Webber&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT16 SECTION &quot;SOA / ESB&quot; [3389-3657] --&gt;
&lt;h3 class=&quot;sectionedit17&quot;&gt;&lt;a name=&quot;open_source_esb&quot; id=&quot;open_source_esb&quot;&gt;Open Source ESB&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.mulesoft.com/mule-esb-open-source-esb&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://www.mulesoft.com/mule-esb-open-source-esb&quot;  rel=&quot;nofollow&quot;&gt;Mule ESB&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://petals.ow2.org/&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://petals.ow2.org/&quot;  rel=&quot;nofollow&quot;&gt;Petals ESB&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://fusesource.com/products/enterprise-servicemix/&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://fusesource.com/products/enterprise-servicemix/&quot;  rel=&quot;nofollow&quot;&gt;FUSE ESB&lt;/a&gt; / &lt;a href=&quot;http://servicemix.apache.org/home.html&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://servicemix.apache.org/home.html&quot;  rel=&quot;nofollow&quot;&gt;Apache ServiceMix&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT17 SECTION &quot;Open Source ESB&quot; [3658-] --&gt;</description>
            <author>Daniel Kirkdorffer</author>
            <pubDate>Fri, 03 May 2013 14:02:08 -0400</pubDate>
        </item>
        <item>
            <title>SQL Notes - [General Documentation] </title>
            <link>http://www.kirkdorffer.com/wiki/sql_notes</link>
            <description>
&lt;h0 class=&quot;sectionedit18&quot;&gt;&lt;a name=&quot;sql_notes&quot; id=&quot;sql_notes&quot;&gt;SQL Notes&lt;/a&gt;&lt;/h0&gt;
&lt;div class=&quot;level0&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT18 SECTION &quot;SQL Notes&quot; [1-25] --&gt;
&lt;h1 class=&quot;sectionedit19&quot;&gt;&lt;a name=&quot;sql_notes1&quot; id=&quot;sql_notes1&quot;&gt;SQL Notes&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT19 SECTION &quot;SQL Notes&quot; [26-207] --&gt;
&lt;h2 class=&quot;sectionedit20&quot;&gt;&lt;a name=&quot;general_documentation&quot; id=&quot;general_documentation&quot;&gt;General Documentation&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;strong&gt;A Visual Explanation of &lt;acronym title=&quot;Structured Query Language&quot;&gt;SQL&lt;/acronym&gt; Joins&lt;/strong&gt;
&lt;br/&gt;
&lt;a href=&quot;http://www.kirkdorffer.com/wiki/_media/wiki:explainselectstatement.gif&quot; class=&quot;media&quot; title=&quot;wiki:explainselectstatement.gif&quot;&gt;&lt;img src=&quot;http://www.kirkdorffer.com/wiki/_media/wiki:explainselectstatement.gif?w=500&quot; class=&quot;media&quot; title=&quot;A Visual Explanation of SQL Joins (click for full size)&quot; alt=&quot;A Visual Explanation of SQL Joins (click for full size)&quot; width=&quot;500&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT20 SECTION &quot;General Documentation&quot; [208-529] --&gt;
&lt;h2 class=&quot;sectionedit21&quot;&gt;&lt;a name=&quot;mysql&quot; id=&quot;mysql&quot;&gt;MySQL&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.kirkdorffer.com/wiki/images/ExplainSelectStatement.gif&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://www.kirkdorffer.com/wiki/images/ExplainSelectStatement.gif&quot;  rel=&quot;nofollow&quot;&gt;Understanding Explain Select Statement Results&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://dev.mysql.com/doc/refman/4.1/en/index.html&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://dev.mysql.com/doc/refman/4.1/en/index.html&quot;  rel=&quot;nofollow&quot;&gt;MySQL 3.23, 4.0, 4.1 Reference Manual&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://dev.mysql.com/doc/refman/5.1/en/index.html&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://dev.mysql.com/doc/refman/5.1/en/index.html&quot;  rel=&quot;nofollow&quot;&gt;MySQL 5.1 Reference Manual&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT21 SECTION &quot;MySQL&quot; [530-948] --&gt;
&lt;h2 class=&quot;sectionedit22&quot;&gt;&lt;a name=&quot;oracle&quot; id=&quot;oracle&quot;&gt;Oracle&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.oracle.com/technetwork/index.html&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://www.oracle.com/technetwork/index.html&quot;  rel=&quot;nofollow&quot;&gt;Oracle Technology Network&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.oracle.com/pls/xe102/homepage&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://www.oracle.com/pls/xe102/homepage&quot;  rel=&quot;nofollow&quot;&gt;Oracle Database Express Edition Online Documentation 10g Release 2 (10.2)&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://ss64.com/ora/syntax-sqlplus-set.html&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://ss64.com/ora/syntax-sqlplus-set.html&quot;  rel=&quot;nofollow&quot;&gt;SQL*Plus Set Commands&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.oracle-base.com/articles/10g/OracleDataPump10g.php&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://www.oracle-base.com/articles/10g/OracleDataPump10g.php&quot;  rel=&quot;nofollow&quot;&gt;Oracle 10g Data Pump&lt;/a&gt; (Advanced Exports and Imports)&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT22 SECTION &quot;Oracle&quot; [949-1443] --&gt;
&lt;h3 class=&quot;sectionedit23&quot;&gt;&lt;a name=&quot;explain_plans&quot; id=&quot;explain_plans&quot;&gt;Explain Plans&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.evolt.org/node/2986&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://www.evolt.org/node/2986&quot;  rel=&quot;nofollow&quot;&gt;Producing and Reading Explain Plans&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
To produce an Explain Plan:
&lt;/p&gt;

&lt;p&gt;
&lt;pre name=&quot;code&quot; class=&quot;sql:showcontrols&quot;&gt;
explain plan set statement_id = &amp;#039;&amp;lt;SOME_IDENTIFIER&amp;gt;&amp;#039; for
/* ------ Your SQL here ------ */
&lt;/pre&gt;
&lt;/p&gt;

&lt;p&gt;
To read an Explain Plan:
&lt;/p&gt;

&lt;p&gt;
&lt;pre name=&quot;code&quot; class=&quot;sql:showcontrols&quot;&gt;
select operation, options, object_name
from plan_table
where statement_id = &amp;#039;&amp;lt;SOME_IDENTIFIER&amp;gt;&amp;#039;
start with id = 0
connect by prior id=parent_id and prior statement_id = statement_id;
&lt;/pre&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT23 SECTION &quot;Explain Plans&quot; [1444-1721] --&gt;
&lt;h2 class=&quot;sectionedit24&quot;&gt;&lt;a name=&quot;questions_and_topics&quot; id=&quot;questions_and_topics&quot;&gt;Questions and Topics&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Q. How can you find an orphan row in a join?
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Do a Left Join (= Left Outer Join) and look for nulls.&lt;/pre&gt;

&lt;p&gt;
&lt;pre name=&quot;code&quot; class=&quot;sql:showcontrols&quot;&gt;
select * 
from TABLE_A
  left outer join TABLE_B
    on TABLE_A.NAME = TABLE_B.NAME 
where TABLE_B.ID is null
&lt;/pre&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT24 SECTION &quot;Questions and Topics&quot; [1722-] --&gt;</description>
            <author>Daniel Kirkdorffer</author>
            <pubDate>Thu, 02 May 2013 19:35:06 -0400</pubDate>
        </item>
        <item>
            <title>SQL Notes - created</title>
            <link>http://www.kirkdorffer.com/wiki/?image=wiki%3Aexplainselectstatement.gif&amp;ns=wiki&amp;do=media</link>
            <description>&lt;img src=&quot;/wiki/_media/wiki:explainselectstatement.gif?w=500&amp;h=493t=1367537427&quot; alt=&quot;wiki:explainselectstatement.gif&quot; /&gt;</description>
            <author>Daniel Kirkdorffer</author>
        <category>wiki</category>
            <pubDate>Thu, 02 May 2013 19:30:27 -0400</pubDate>
        </item>
        <item>
            <title>Java Notes - [Hibernate] </title>
            <link>http://www.kirkdorffer.com/wiki/java_notes</link>
            <description>
&lt;h0 class=&quot;sectionedit25&quot;&gt;&lt;a name=&quot;java_notes&quot; id=&quot;java_notes&quot;&gt;Java Notes&lt;/a&gt;&lt;/h0&gt;
&lt;div class=&quot;level0&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT25 SECTION &quot;Java Notes&quot; [1-26] --&gt;
&lt;h1 class=&quot;sectionedit26&quot;&gt;&lt;a name=&quot;java_notes1&quot; id=&quot;java_notes1&quot;&gt;Java Notes&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT26 SECTION &quot;Java Notes&quot; [27-929] --&gt;
&lt;h2 class=&quot;sectionedit27&quot;&gt;&lt;a name=&quot;general_documentation&quot; id=&quot;general_documentation&quot;&gt;General Documentation&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://download.oracle.com/docs/cd/E17409_01/javase/tutorial/&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://download.oracle.com/docs/cd/E17409_01/javase/tutorial/&quot;  rel=&quot;nofollow&quot;&gt;The Java Tutorials&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.javapractices.com/&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://www.javapractices.com/&quot;  rel=&quot;nofollow&quot;&gt;Collected Java Practices&lt;/a&gt; - Concise presentations of Java practices, tasks, and designs, illustrated with syntax-highlighted code examples.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.java2s.com/&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://www.java2s.com/&quot;  rel=&quot;nofollow&quot;&gt;Java2s.com&lt;/a&gt; - Programming tutorials and source code examples&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.ibm.com/developerworks/java/library/j-math2.html?ca=dgr-jw22JavaMath2&amp;amp;S_TACT=105AGX59&amp;amp;S_CMP=grsitejw22&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://www.ibm.com/developerworks/java/library/j-math2.html?ca=dgr-jw22JavaMath2&amp;amp;S_TACT=105AGX59&amp;amp;S_CMP=grsitejw22&quot;  rel=&quot;nofollow&quot;&gt;Java&amp;#039;s new math, Part 2: Floating-point numbers&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.javaperformancetuning.com/news/newtips096.shtml&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://www.javaperformancetuning.com/news/newtips096.shtml&quot;  rel=&quot;nofollow&quot;&gt;Java Performance Tuning Tips November 2008&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.ibm.com/developerworks/java/library/j-javaresources.html?ca=dgr-jw22JavaList&amp;amp;S_TACT=105AGX59&amp;amp;S_CMP=grsitejw22&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://www.ibm.com/developerworks/java/library/j-javaresources.html?ca=dgr-jw22JavaList&amp;amp;S_TACT=105AGX59&amp;amp;S_CMP=grsitejw22&quot;  rel=&quot;nofollow&quot;&gt;Essential Java resources: A comprehensive listing of must-have books, sites, blogs, events, and more&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT27 SECTION &quot;General Documentation&quot; [930-1047] --&gt;
&lt;h2 class=&quot;sectionedit28&quot;&gt;&lt;a name=&quot;jsp_and_taglibs&quot; id=&quot;jsp_and_taglibs&quot;&gt;JSP and TagLibs&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://jakarta.apache.org/taglibs/doc/xtags-doc/&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://jakarta.apache.org/taglibs/doc/xtags-doc/&quot;  rel=&quot;nofollow&quot;&gt;Jakarta Project: XTags Library&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT28 SECTION &quot;JSP and TagLibs&quot; [1048-1139] --&gt;
&lt;h2 class=&quot;sectionedit29&quot;&gt;&lt;a name=&quot;jpa&quot; id=&quot;jpa&quot;&gt;JPA&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.infoq.com/news/2007/09/jpa-dao&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://www.infoq.com/news/2007/09/jpa-dao&quot;  rel=&quot;nofollow&quot;&gt;Has JPA Killed the DAO?&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT29 SECTION &quot;JPA&quot; [1140-1347] --&gt;
&lt;h3 class=&quot;sectionedit30&quot;&gt;&lt;a name=&quot;hibernate&quot; id=&quot;hibernate&quot;&gt;Hibernate&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://mkblog.exadel.com/events/webcast-recording-hibernate-performance-and-scalability-out-of-the-box/&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://mkblog.exadel.com/events/webcast-recording-hibernate-performance-and-scalability-out-of-the-box/&quot;  rel=&quot;nofollow&quot;&gt;Hibernate Performance and Scalability Out of the Box&lt;/a&gt; (Webcast recording)&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT30 SECTION &quot;Hibernate&quot; [1348-1442] --&gt;
&lt;h2 class=&quot;sectionedit31&quot;&gt;&lt;a name=&quot;ant_tools&quot; id=&quot;ant_tools&quot;&gt;Ant Tools&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://ant.apache.org/manual/index.html&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://ant.apache.org/manual/index.html&quot;  rel=&quot;nofollow&quot;&gt;Apache Ant User Manual&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT31 SECTION &quot;Ant Tools&quot; [1443-1531] --&gt;
&lt;h3 class=&quot;sectionedit32&quot;&gt;&lt;a name=&quot;ascii_art&quot; id=&quot;ascii_art&quot;&gt;ASCII Art&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://patorjk.com/software/taag/&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://patorjk.com/software/taag/&quot;  rel=&quot;nofollow&quot;&gt;Text Ascii Art Generator&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT32 SECTION &quot;ASCII Art&quot; [1532-1974] --&gt;
&lt;h3 class=&quot;sectionedit33&quot;&gt;&lt;a name=&quot;build_visualization&quot; id=&quot;build_visualization&quot;&gt;Build Visualization&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://vizant.sourceforge.net/&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://vizant.sourceforge.net/&quot;  rel=&quot;nofollow&quot;&gt;Vizant&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://ant-script-visualizer.googlecode.com/svn/trunk/webstart/index.html&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://ant-script-visualizer.googlecode.com/svn/trunk/webstart/index.html&quot;  rel=&quot;nofollow&quot;&gt;Ant Script Visualizer&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.softwaresecretweapons.com/jspwiki/linguinemapsforapacheant&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://www.softwaresecretweapons.com/jspwiki/linguinemapsforapacheant&quot;  rel=&quot;nofollow&quot;&gt;Linguine Maps For Apache Ant&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://ant2dot.sourceforge.net/&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://ant2dot.sourceforge.net/&quot;  rel=&quot;nofollow&quot;&gt;ant2dot.xsl&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
These all use &lt;a href=&quot;http://www.graphviz.org&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://www.graphviz.org&quot;  rel=&quot;nofollow&quot;&gt;Graphviz&lt;/a&gt; to render graphics from generated &lt;code&gt;.dot&lt;/code&gt; files.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT33 SECTION &quot;Build Visualization&quot; [1975-2433] --&gt;
&lt;h2 class=&quot;sectionedit34&quot;&gt;&lt;a name=&quot;code_analyzers&quot; id=&quot;code_analyzers&quot;&gt;Code Analyzers&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.panopticode.org/&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://www.panopticode.org/&quot;  rel=&quot;nofollow&quot;&gt;Panopticode&lt;/a&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://blog.stelligent.com/integrate-button/2009/07/code-metrics-in-minutes-using-panopticode.html&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://blog.stelligent.com/integrate-button/2009/07/code-metrics-in-minutes-using-panopticode.html&quot;  rel=&quot;nofollow&quot;&gt;Code Metrics in Minutes using Panopticode&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.xdepend.com/&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://www.xdepend.com/&quot;  rel=&quot;nofollow&quot;&gt;XDepend&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.inf.usi.ch/phd/wettel/codecity.html&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://www.inf.usi.ch/phd/wettel/codecity.html&quot;  rel=&quot;nofollow&quot;&gt;CodeCity&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://xray.inf.usi.ch/xray.php&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://xray.inf.usi.ch/xray.php&quot;  rel=&quot;nofollow&quot;&gt;X-Ray 1.0.4.1&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.inf.usi.ch/faculty/lanza/codecrawler.html&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://www.inf.usi.ch/faculty/lanza/codecrawler.html&quot;  rel=&quot;nofollow&quot;&gt;CodeCrawler&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT34 SECTION &quot;Code Analyzers&quot; [2434-2590] --&gt;
&lt;h2 class=&quot;sectionedit35&quot;&gt;&lt;a name=&quot;design_patterns&quot; id=&quot;design_patterns&quot;&gt;Design Patterns&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.netobjectives.com/PatternRepository/index.php?title=Main_Page&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://www.netobjectives.com/PatternRepository/index.php?title=Main_Page&quot;  rel=&quot;nofollow&quot;&gt;The Net Objectives Design Patterns Repository&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT35 SECTION &quot;Design Patterns&quot; [2591-2903] --&gt;
&lt;h2 class=&quot;sectionedit36&quot;&gt;&lt;a name=&quot;vm_memory_management&quot; id=&quot;vm_memory_management&quot;&gt;VM Memory Management&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://java.sun.com/j2se/reference/whitepapers/memorymanagement_whitepaper.pdf&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://java.sun.com/j2se/reference/whitepapers/memorymanagement_whitepaper.pdf&quot;  rel=&quot;nofollow&quot;&gt;Memory Management in the Java HotSpot Virtual Machine&lt;/a&gt; (&lt;acronym title=&quot;Portable Document Format&quot;&gt;PDF&lt;/acronym&gt;)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.oracle.com/technetwork/java/gc-tuning-5-138395.html&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://www.oracle.com/technetwork/java/gc-tuning-5-138395.html&quot;  rel=&quot;nofollow&quot;&gt;Tuning Garbage Collection with the 5.0 Java Virtual Machine&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT36 SECTION &quot;VM Memory Management&quot; [2904-7073] --&gt;
&lt;h2 class=&quot;sectionedit37&quot;&gt;&lt;a name=&quot;questions_and_topics&quot; id=&quot;questions_and_topics&quot;&gt;Questions and Topics&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Q. &lt;a href=&quot;http://javadude.com/articles/passbyvalue.htm&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://javadude.com/articles/passbyvalue.htm&quot;  rel=&quot;nofollow&quot;&gt;Is Java Pass by Value or Pass by Reference?&lt;/a&gt; (See also: &lt;a href=&quot;http://www.youtube.com/watch?v=dk3Iiqof6jA&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://www.youtube.com/watch?v=dk3Iiqof6jA&quot;  rel=&quot;nofollow&quot;&gt;http://www.youtube.com/watch?v=dk3Iiqof6jA&lt;/a&gt;)
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;With primitives it is simple pass by value.  
Objects references are passed by value. &lt;/pre&gt;

&lt;p&gt;
Q. Composition vs. Aggregation
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Aggregation is a specialization of association, specifying a whole-part relationship between two objects. Composition is a stronger form of
aggregation where the whole and parts have coincident lifetimes, and it is very common for the whole to manage the lifecycle of its parts.&lt;/pre&gt;

&lt;p&gt;
Q. What&amp;#039;s the difference between using synchronized on a &lt;a href=&quot;http://download.oracle.com/javase/tutorial/essential/concurrency/syncmeth.html&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://download.oracle.com/javase/tutorial/essential/concurrency/syncmeth.html&quot;  rel=&quot;nofollow&quot;&gt;method&lt;/a&gt; or in a &lt;a href=&quot;http://download.oracle.com/javase/tutorial/essential/concurrency/locksync.html&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://download.oracle.com/javase/tutorial/essential/concurrency/locksync.html&quot;  rel=&quot;nofollow&quot;&gt;block&lt;/a&gt;?
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;The main difference is that if you use a synchronized block you may lock on an object other than &amp;quot;this&amp;quot; which is a more flexible approach.&lt;/pre&gt;

&lt;p&gt;
Q. &lt;a href=&quot;http://download.oracle.com/javase/tutorial/essential/concurrency/&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://download.oracle.com/javase/tutorial/essential/concurrency/&quot;  rel=&quot;nofollow&quot;&gt;Threads&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Q. What is the Java volatile keyword?
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Essentially, volatile is used to indicate that a variable&amp;#039;s value will be modified by different threads.
Declaring a volatile Java variable means:
- The value of this variable will never be cached thread-locally: all reads and writes will go straight to &amp;quot;main memory&amp;quot;;
- Access to the variable acts as though it is enclosed in a synchronized block, synchronized on itself. &lt;/pre&gt;

&lt;p&gt;
Q. When would you use non-public modifiers on a class?
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;To make an inner class private.&lt;/pre&gt;

&lt;p&gt;
Q. &lt;a href=&quot;http://download.oracle.com/javase/tutorial/collections/interfaces/set.html&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://download.oracle.com/javase/tutorial/collections/interfaces/set.html&quot;  rel=&quot;nofollow&quot;&gt;Set&lt;/a&gt; vs. &lt;a href=&quot;http://download.oracle.com/javase/tutorial/collections/interfaces/list.html&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://download.oracle.com/javase/tutorial/collections/interfaces/list.html&quot;  rel=&quot;nofollow&quot;&gt;List&lt;/a&gt; vs. &lt;a href=&quot;http://download.oracle.com/javase/tutorial/collections/interfaces/map.html&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://download.oracle.com/javase/tutorial/collections/interfaces/map.html&quot;  rel=&quot;nofollow&quot;&gt;Map&lt;/a&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;A Set is a collection that has no duplicate elements.
A List is a collection that has an order associated with its elements.
A Map is a way of storing key/value pairs. A Map is similar to two-column table.&lt;/pre&gt;

&lt;p&gt;
Q. What are the benefits of immutable objects? (From &lt;a href=&quot;http://www.ibm.com/developerworks/java/library/j-jtp02183/index.html&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://www.ibm.com/developerworks/java/library/j-jtp02183/index.html&quot;  rel=&quot;nofollow&quot;&gt;Brian Goetz: To mutate or not to mutate?&lt;/a&gt;)
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Immutable classes, when used properly, can greatly simplify programming. They can only be in one state, so as long as they are properly 
constructed, they can never get into an inconsistent state. You can freely share and cache references to immutable objects without having 
to copy or clone them; you can cache their fields or the results of their methods without worrying about the values becoming stale or 
inconsistent with the rest of the object&amp;#039;s state. Immutable classes generally make the best map keys. And they are inherently thread-safe, 
so you don&amp;#039;t have to synchronize access to them across threads.&lt;/pre&gt;

&lt;p&gt;
Q. How do you &lt;a href=&quot;http://www.javapractices.com/topic/TopicAction.do?Id=29&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://www.javapractices.com/topic/TopicAction.do?Id=29&quot;  rel=&quot;nofollow&quot;&gt;make a class immutable&lt;/a&gt;? (&lt;a href=&quot;http://download.oracle.com/javase/tutorial/essential/concurrency/imstrat.html&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://download.oracle.com/javase/tutorial/essential/concurrency/imstrat.html&quot;  rel=&quot;nofollow&quot;&gt;See also...&lt;/a&gt;)
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;gt; Ensure the class cannot be overridden - make the class final, or use static factories and keep constructors private.
&amp;gt; Make the fields private and final.
&amp;gt; Force callers to construct an object completely in a single step, instead of using a no-argument constructor combined with subsequent 
calls to setXXX methods (that is, avoid the Java Beans convention).
&amp;gt; Do not provide any methods which can change the state of the object in any way - not just setXXX methods, but any method which can 
change state.
&amp;gt; If the class has any mutable object fields, then they must be defensively copied when passed between the class and its caller.&lt;/pre&gt;

&lt;p&gt;
Q. Statements vs. &lt;a href=&quot;http://download.oracle.com/javase/tutorial/jdbc/basics/prepared.html&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://download.oracle.com/javase/tutorial/jdbc/basics/prepared.html&quot;  rel=&quot;nofollow&quot;&gt;PreparedStatements&lt;/a&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Prepared statements make formatting a non-issue, adds some security against SQL injection, and are pre-compiled.&lt;/pre&gt;

&lt;p&gt;
Q. &lt;a href=&quot;http://download.oracle.com/javase/tutorial/collections/interfaces/order.html&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://download.oracle.com/javase/tutorial/collections/interfaces/order.html&quot;  rel=&quot;nofollow&quot;&gt;Comparators and Sorting&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Q. &lt;a href=&quot;http://download.oracle.com/docs/cd/E17802_01/webservices/webservices/docs/1.6/tutorial/doc/SJSXP2.html&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://download.oracle.com/docs/cd/E17802_01/webservices/webservices/docs/1.6/tutorial/doc/SJSXP2.html&quot;  rel=&quot;nofollow&quot;&gt;SAX (push), DOM, StAX (pull)&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT37 SECTION &quot;Questions and Topics&quot; [7074-] --&gt;</description>
            <author>Daniel Kirkdorffer</author>
            <pubDate>Tue, 30 Apr 2013 19:55:45 -0400</pubDate>
        </item>
        <item>
            <title>Spring Notes - [General Documentation] </title>
            <link>http://www.kirkdorffer.com/wiki/spring_notes</link>
            <description>
&lt;h0 class=&quot;sectionedit38&quot;&gt;&lt;a name=&quot;spring_notes&quot; id=&quot;spring_notes&quot;&gt;Spring Notes&lt;/a&gt;&lt;/h0&gt;
&lt;div class=&quot;level0&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT38 SECTION &quot;Spring Notes&quot; [1-28] --&gt;
&lt;h1 class=&quot;sectionedit39&quot;&gt;&lt;a name=&quot;spring_notes1&quot; id=&quot;spring_notes1&quot;&gt;Spring Notes&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT39 SECTION &quot;Spring Notes&quot; [29-368] --&gt;
&lt;h2 class=&quot;sectionedit40&quot;&gt;&lt;a name=&quot;general_documentation&quot; id=&quot;general_documentation&quot;&gt;General Documentation&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.springsource.org/&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://www.springsource.org/&quot;  rel=&quot;nofollow&quot;&gt;SpringSource.org&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.springbyexample.org/pdf/SpringByExample.pdf&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://www.springbyexample.org/pdf/SpringByExample.pdf&quot;  rel=&quot;nofollow&quot;&gt;Spring by Example&lt;/a&gt; (&lt;acronym title=&quot;Portable Document Format&quot;&gt;PDF&lt;/acronym&gt;)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.baeldung.com/2011/12/08/simplifying-the-data-access-layer-with-spring-and-java-generics/&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://www.baeldung.com/2011/12/08/simplifying-the-data-access-layer-with-spring-and-java-generics/&quot;  rel=&quot;nofollow&quot;&gt;Simplyfing the DAO layer with Spring and Java Generics&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT40 SECTION &quot;General Documentation&quot; [369-749] --&gt;
&lt;h3 class=&quot;sectionedit41&quot;&gt;&lt;a name=&quot;x&quot; id=&quot;x&quot;&gt;3.x&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/&quot;  rel=&quot;nofollow&quot;&gt;Spring Framework Reference Documentation 3.0&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://blog.springsource.com/2009/12/21/mvc-simplifications-in-spring-3-0/&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://blog.springsource.com/2009/12/21/mvc-simplifications-in-spring-3-0/&quot;  rel=&quot;nofollow&quot;&gt;MVC Simplifications in Spring 3.0&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://blog.springsource.com/2010/06/15/spring-framework-3-0-3-released/&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://blog.springsource.com/2010/06/15/spring-framework-3-0-3-released/&quot;  rel=&quot;nofollow&quot;&gt;Spring Framework 3.0.3 released&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT41 SECTION &quot;3.x&quot; [750-1011] --&gt;
&lt;h3 class=&quot;sectionedit42&quot;&gt;&lt;a name=&quot;x1&quot; id=&quot;x1&quot;&gt;2.x&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://static.springsource.org/spring/docs/2.0.x/spring-reference.pdf&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://static.springsource.org/spring/docs/2.0.x/spring-reference.pdf&quot;  rel=&quot;nofollow&quot;&gt;Spring 2.0 Reference Manual&lt;/a&gt; (&lt;acronym title=&quot;Portable Document Format&quot;&gt;PDF&lt;/acronym&gt;)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://static.springsource.org/docs/Spring-MVC-step-by-step/&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://static.springsource.org/docs/Spring-MVC-step-by-step/&quot;  rel=&quot;nofollow&quot;&gt;Developing a Spring Framework MVC application step-by-step&lt;/a&gt; (2.5)&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT42 SECTION &quot;2.x&quot; [1012-1933] --&gt;
&lt;h2 class=&quot;sectionedit43&quot;&gt;&lt;a name=&quot;spring_security&quot; id=&quot;spring_security&quot;&gt;Spring Security&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://static.springsource.org/spring-security/site/&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://static.springsource.org/spring-security/site/&quot;  rel=&quot;nofollow&quot;&gt;Spring Security Website&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://static.springsource.org/spring-security/site/apidocs/index.html&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://static.springsource.org/spring-security/site/apidocs/index.html&quot;  rel=&quot;nofollow&quot;&gt;Spring Security 2.0.4 API &lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://static.springframework.org/spring-security/site/docs/2.0.x/reference/springsecurity.pdf&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://static.springframework.org/spring-security/site/docs/2.0.x/reference/springsecurity.pdf&quot;  rel=&quot;nofollow&quot;&gt; Spring Security Reference Documentation 2.0.x&lt;/a&gt; (&lt;acronym title=&quot;Portable Document Format&quot;&gt;PDF&lt;/acronym&gt;)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.mularien.com/blog/2008/07/07/5-minute-guide-to-spring-security/&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://www.mularien.com/blog/2008/07/07/5-minute-guide-to-spring-security/&quot;  rel=&quot;nofollow&quot;&gt;5 Minute Guide to Spring Security&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.mularien.com/blog/2008/11/11/rerouting-spring-security-2-login-page-through-a-spring-controller/&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://www.mularien.com/blog/2008/11/11/rerouting-spring-security-2-login-page-through-a-spring-controller/&quot;  rel=&quot;nofollow&quot;&gt;Rerouting Spring Security 2 Login Page Through a Spring Controller&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.mularien.com/blog/2008/02/26/5-minute-guide-to-spring-and-simpler-jdbc/&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://www.mularien.com/blog/2008/02/26/5-minute-guide-to-spring-and-simpler-jdbc/&quot;  rel=&quot;nofollow&quot;&gt;5 Minute Guide to Spring and Simple[r!] JDBC&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://java.dzone.com/tips/pathway-acegi-spring-security-&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://java.dzone.com/tips/pathway-acegi-spring-security-&quot;  rel=&quot;nofollow&quot;&gt;Pathway from ACEGI to Spring Security 2.0&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT43 SECTION &quot;Spring Security&quot; [1934-2165] --&gt;
&lt;h2 class=&quot;sectionedit44&quot;&gt;&lt;a name=&quot;acegi&quot; id=&quot;acegi&quot;&gt;Acegi&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.javaworld.com/javaworld/jw-10-2007/jw-10-acegi2.html&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://www.javaworld.com/javaworld/jw-10-2007/jw-10-acegi2.html&quot;  rel=&quot;nofollow&quot;&gt;Acegi Security in one hour&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.javalobby.org/java/forums/t91426.html&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://www.javalobby.org/java/forums/t91426.html&quot;  rel=&quot;nofollow&quot;&gt;Implementing Application-Specific User Details in Acegi &lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT44 SECTION &quot;Acegi&quot; [2166-] --&gt;</description>
            <author>Daniel Kirkdorffer</author>
            <pubDate>Tue, 30 Apr 2013 19:54:57 -0400</pubDate>
        </item>
    </channel>
</rss>
