<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>pekalicious</title>
	
	<link>http://pekalicious.com/blog</link>
	<description />
	<lastBuildDate>Sat, 04 Sep 2010 16:24:28 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/pekalicious" /><feedburner:info uri="pekalicious" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>CodeSOD: How to avoid the expensive “If” statement</title>
		<link>http://feedproxy.google.com/~r/pekalicious/~3/jxvxsBg0yR0/</link>
		<comments>http://pekalicious.com/blog/codesod-how-to-avoid-the-expensive-if-statement/#comments</comments>
		<pubDate>Fri, 03 Sep 2010 19:25:58 +0000</pubDate>
		<dc:creator>Panagiotis Peikidis</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[fun]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://pekalicious.com/blog/?p=518</guid>
		<description><![CDATA[About two years ago, in Data Structures and Algorithms, our lecturer briefly talked about the &#8220;If&#8221; statement and how much expensive it is as an operation. Leaving us with many questions, I extensively researched the topic and found out that the word &#8220;expensive&#8221; is, well, really relative. Nevertheless, a particular student found a way to [...]]]></description>
			<content:encoded><![CDATA[<p>About two years ago, in Data Structures and Algorithms, our lecturer briefly talked about the &#8220;If&#8221; statement and how much expensive it is as an operation. Leaving us with many questions, <a title="StackOverflow: Is &quot;If&quot; expensive?" href="http://stackoverflow.com/questions/315306/is-if-expensive">I extensively researched the topic</a> and found out that the word &#8220;expensive&#8221; is, well, really relative. Nevertheless, a particular student found a way to avoid the cost&#8230;</p>
<p><span id="more-518"></span></p>
<p>First of all, here is how much you need to worry about the cost of the &#8220;If&#8221; statement: not at all*. You see, an &#8220;If&#8221; statement in your code creates a branch in the instruction list. If the statement is true, the processor will execute a particular instruction list, if not, it will execute another (in an &#8220;If-Then&#8221; statement). The processor, always striving for optimizations, tries to predict which way the branch will go and pre-load the instructions. A wrong prediction is known as a &#8220;<a title="Google: Branch Misprediction" href="http://www.google.com/search?q=branch misprediction">Branch Miprediction</a>&#8220;. The penalty? In modern microprocessors, 10-20 cycles<a href="#wikipedia-branch-misprediction">[1]</a>. Your average 2.4GHz CPU can perform 2.400.000.000 cycles/second. That is 2.4 billion cycles per seconds, in case you haven&#8217;t noticed. Billions&#8230; Per second&#8230; So I think it&#8217;s pretty safe to say that this has absolutely no affect in your average pet-project.</p>
<p>One particular student, however, took this at face value and came up with the following gem:</p>

<div class="wp_syntax"><div class="code"><pre class="java5" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #006600; font-weight: bold;">void</span> doSomething<span style="color: #009900;">&#40;</span><span style="color: #006600; font-weight: bold;">int</span> code<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #000000;  font-weight: bold;">while</span> <span style="color: #009900;">&#40;</span> code == <span style="color: #cc66cc;">101</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    doThis<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
  <span style="color: #000000;  font-weight: bold;">while</span> <span style="color: #009900;">&#40;</span> code == <span style="color: #cc66cc;">102</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    doThat<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
  <span style="color: #000000;  font-weight: bold;">while</span> <span style="color: #009900;">&#40;</span> code == <span style="color: #cc66cc;">103</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    justDoIt<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
  ...
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>After I got over the initial shock I turned to him and asked &#8220;So why didn&#8217;t you use a for loop?&#8221; to which he replied &#8220;I would have, but the while loop came into my mind first.&#8221;</p>
<p>* Except if you are writing an extremely performance-critical application.</p>
<h3>References</h3>
<p><a name="wikipedia-branch-misprediction">[1]</a>: <a title="Wikipedia: Branch Predictor" href="http://en.wikipedia.org/wiki/Branch_predictor">Branch Predictor &#8211; Wikipedia</a></p>
<ul class="socialwrap size32 row">
<li class="iconOnly"><a rel="nofollow" target="_blank" class="delicious" href="http://delicious.com/post?url=http%3A%2F%2Fpekalicious.com%2Fblog%2Fcodesod-how-to-avoid-the-expensive-if-statement%2F&amp;title=CodeSOD%3A+How+to+avoid+the+expensive+%E2%80%9CIf%E2%80%9D+statement" title="Bookmark this post : CodeSOD: How to avoid the expensive “If” statement on Delicious"><span class="head">Bookmark on Delicious</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="digg" href="http://digg.com/submit?url=http%3A%2F%2Fpekalicious.com%2Fblog%2Fcodesod-how-to-avoid-the-expensive-if-statement%2F&amp;title=CodeSOD%3A+How+to+avoid+the+expensive+%E2%80%9CIf%E2%80%9D+statement&amp;bodytext=About+two+years+ago%2C+in+Data+Structures+and+Algorithms%2C+our+lecturer+briefly+talked+about+the+%22If%22+statement+and+how+much+expensive+it+is+as+an+operation.+Leaving+us+with+many+questions%2C+I+extensively+researched+the+topic+and+found+out+that+the+word+%22expensive%22+is%2C+well%2C+really+relative.+Nevertheless%2C+a+particular+stud" title="Digg this post : CodeSOD: How to avoid the expensive “If” statement"><span class="head">Digg this post</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="facebook" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fpekalicious.com%2Fblog%2Fcodesod-how-to-avoid-the-expensive-if-statement%2F&amp;t=CodeSOD%3A+How+to+avoid+the+expensive+%E2%80%9CIf%E2%80%9D+statement" title="Recommend this post : CodeSOD: How to avoid the expensive “If” statement on Facebook"><span class="head">Recommend on Facebook</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="myspace" href="javascript:void(window.open('http://www.myspace.com/Modules/PostTo/Pages/?u='+encodeURIComponent(document.location.toString()),'ptm','height=450,width=440').focus())" title="Share this post : CodeSOD: How to avoid the expensive “If” statement via MySpace"><span class="head">Share via MySpace</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="reddit" href="http://www.reddit.com/submit?url=http%3A%2F%2Fpekalicious.com%2Fblog%2Fcodesod-how-to-avoid-the-expensive-if-statement%2F&amp;title=CodeSOD%3A+How+to+avoid+the+expensive+%E2%80%9CIf%E2%80%9D+statement" title="Share this post : CodeSOD: How to avoid the expensive “If” statement on Reddit"><span class="head">share via Reddit</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="stumble" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fpekalicious.com%2Fblog%2Fcodesod-how-to-avoid-the-expensive-if-statement%2F&amp;title=CodeSOD%3A+How+to+avoid+the+expensive+%E2%80%9CIf%E2%80%9D+statement" title="Share this post : CodeSOD: How to avoid the expensive “If” statement with Stumblers"><span class="head">Share with Stumblers</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="tumblr" href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fpekalicious.com%2Fblog%2Fcodesod-how-to-avoid-the-expensive-if-statement%2F&amp;t=CodeSOD%3A+How+to+avoid+the+expensive+%E2%80%9CIf%E2%80%9D+statement" title="Tumblr. this post : CodeSOD: How to avoid the expensive “If” statement "><span class="head">Tumblr it</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="twitter" href="http://twitter.com/home/?status=CodeSOD%3A+How+to+avoid+the+expensive+%E2%80%9CIf%E2%80%9D+statement+-+http%253A%252F%252Fpekalicious.com%252Fblog%252Fcodesod-how-to-avoid-the-expensive-if-statement%252F" title="Tweet this post : CodeSOD: How to avoid the expensive “If” statement on Twitter"><span class="head">Tweet about it</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="" class="rss" href="http://pekalicious.com/blog/codesod-how-to-avoid-the-expensive-if-statement/feed" title="Follow this post : CodeSOD: How to avoid the expensive “If” statement comments"><span class="head">Subscribe to the comments on this post</span></a></li>
<li class="iconOnly"><a rel="" class="email" href="mailto:?subject=pekalicious : CodeSOD: How to avoid the expensive “If” statement&#038;body=here is a link to a site I really like.   http://pekalicious.com/blog/codesod-how-to-avoid-the-expensive-if-statement/" title="Tell a friend about this post : CodeSOD: How to avoid the expensive “If” statement "><span class="head">Tell a friend</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="" class="print" href="javascript:window.print();" title="Print this post : CodeSOD: How to avoid the expensive “If” statement for reading later"><span class="head">Print for later</span></a></li>
</ul>
<div class="clean"></div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/pekalicious?a=jxvxsBg0yR0:nwcd2FGjJ58:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/pekalicious?i=jxvxsBg0yR0:nwcd2FGjJ58:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/pekalicious?a=jxvxsBg0yR0:nwcd2FGjJ58:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/pekalicious?i=jxvxsBg0yR0:nwcd2FGjJ58:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/pekalicious?a=jxvxsBg0yR0:nwcd2FGjJ58:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/pekalicious?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/pekalicious/~4/jxvxsBg0yR0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://pekalicious.com/blog/codesod-how-to-avoid-the-expensive-if-statement/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://pekalicious.com/blog/codesod-how-to-avoid-the-expensive-if-statement/</feedburner:origLink></item>
		<item>
		<title>Custom JPanel cell with JButtons in JTable</title>
		<link>http://feedproxy.google.com/~r/pekalicious/~3/ogkVgRBjgCA/</link>
		<comments>http://pekalicious.com/blog/custom-jpanel-cell-with-jbuttons-in-jtable/#comments</comments>
		<pubDate>Tue, 31 Aug 2010 15:24:16 +0000</pubDate>
		<dc:creator>Panagiotis Peikidis</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[JPanel]]></category>
		<category><![CDATA[JTable]]></category>
		<category><![CDATA[TableCellEditor]]></category>
		<category><![CDATA[TableCellRenderer]]></category>
		<category><![CDATA[TableModel]]></category>

		<guid isPermaLink="false">http://pekalicious.com/blog/?p=502</guid>
		<description><![CDATA[If you ever wanted to add a JPanel with various interactive components (e.g. JButtons, JCheckBoxes etc.) in a JTable cell and could not figure out how to make them work, then this post is for you. Otherwise, continue googling ;) The Intro It&#8217;s really difficult to find something in the Internet when you are not [...]]]></description>
			<content:encoded><![CDATA[<p>If you ever wanted to add a JPanel with various interactive components (e.g. JButtons, JCheckBoxes etc.) in a JTable cell and could not figure out how to make them work, then this post is for you. Otherwise, continue googling ;)</p>
<p><span id="more-502"></span> </p>
<h1>The Intro</h1>
<p>It&#8217;s really difficult to find something in the Internet when you are not really sure how to phrase it. That&#8217;s why you need to practice your google-fu as much as possible. See, I was looking for a way to have a JPanel with buttons in a JTable cell, but had no idea how to look for it. <a title="Google search: JPanel in JTable" href="http://www.google.com/search?q=JPanel%20in%20JTable">JPanel in JTable</a>? <a title="Google search: JPanel with buttons in JTable" href="http://www.google.com/search?q=JPanel+with+buttons+in+JTable">JPanel with buttons in JTable</a>? <a title="Google search: JTable JPanel JButton" href="http://www.google.com/search?q=JTable+JPanel+JButton">JTable JPanel JButton</a>?</p>
<p>OK, to be fair, I&#8217;m pretty sure my answer is in there somewhere deep (as in, after the first 3 results). But, as any impatient person that respects himself, I went the easy way: StackOverflow: <a title="StackOverflow: JTable: Buttons in Custom Panel in Cell" href="http://stackoverflow.com/questions/3606864/jtable-buttons-in-custom-panel-in-cell">JTable: Buttons in Custom Panel in Cell</a>.</p>
<p>You see, most examples I found with Google talked about Cell Editors, but for simple column components, such as using a JTextField to edit an integer, or a JComboBox to edit a String etc. I wanted a custom JPanel that did not change, but simply had interactive controls.</p>
<p>In retrospect, I could have simply used a panel with MigLayout, but NO! I wanted the challenge. I wanted to learn how to do it. Plus, now I can sort my table (which is absolutely useless in my context).</p>
<p>Anyway, on with the code!</p>
<h1>The Code</h1>
<p>First thing&#8217;s first, we need to have a basic ADT that will contain some data. This is what we ultimately want to display in our table rows. Let&#8217;s say we want to have some RSS Feeds.</p>

<div class="wp_syntax"><div class="code"><pre class="java5" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> RssFeed <span style="color: #009900;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399; font-weight: bold;">String</span> name<span style="color: #339933;">;</span>
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399; font-weight: bold;">String</span> url<span style="color: #339933;">;</span>
  <span style="color: #000000; font-weight: bold;">public</span> Article<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> articles<span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">public</span> RssFeed<span style="color: #009900;">&#40;</span><span style="color: #003399; font-weight: bold;">String</span> name, <span style="color: #003399; font-weight: bold;">String</span> url, Article<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> articles<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">name</span> = name<span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">url</span> = url<span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">articles</span> = articles<span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Article <span style="color: #009900;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399; font-weight: bold;">String</span> title<span style="color: #339933;">;</span>
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399; font-weight: bold;">String</span> url<span style="color: #339933;">;</span>
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399; font-weight: bold;">String</span> content<span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">public</span> Article<span style="color: #009900;">&#40;</span><span style="color: #003399; font-weight: bold;">String</span> title, <span style="color: #003399; font-weight: bold;">String</span> url, <span style="color: #003399; font-weight: bold;">String</span> content<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">title</span> = title<span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">url</span> = url<span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">content</span> = content<span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>
Yeah yeah, make the fields private, add getters/setters blah blah blah. Here is a simple JFrame that displays a JTable with some example data:
</p>

<div class="wp_syntax"><div class="code"><pre class="java5" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> JInteractiveTableExample <span style="color: #000000; font-weight: bold;">extends</span> <span style="color: #003399; font-weight: bold;">JFrame</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">public</span> JInteractiveTableExample<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">super</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Interactive Table Cell Example&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    setDefaultCloseOperation<span style="color: #009900;">&#40;</span>EXIT_ON_CLOSE<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    setSize<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">500</span>, <span style="color: #cc66cc;">300</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    List<span style="color: #339933;">&lt;</span>RssFeed<span style="color: #339933;">&gt;</span> feeds = <span style="color: #000000; font-weight: bold;">new</span> ArrayList<span style="color: #339933;">&lt;</span>RssFeed<span style="color: #339933;">&gt;</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    feeds.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> RssFeed<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;pekalicious&quot;</span>, <span style="color: #0000ff;">&quot;http://feeds2.feedburner.com/pekalicious&quot;</span>,
      <span style="color: #000000; font-weight: bold;">new</span> Article<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">new</span> Article<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Title1&quot;</span>, <span style="color: #0000ff;">&quot;http://title1.com&quot;</span>, <span style="color: #0000ff;">&quot;Content 1&quot;</span><span style="color: #009900;">&#41;</span>,
        <span style="color: #000000; font-weight: bold;">new</span> Article<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Title2&quot;</span>, <span style="color: #0000ff;">&quot;http://title2.com&quot;</span>, <span style="color: #0000ff;">&quot;Content 2&quot;</span><span style="color: #009900;">&#41;</span>,
        <span style="color: #000000; font-weight: bold;">new</span> Article<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Title3&quot;</span>, <span style="color: #0000ff;">&quot;http://title3.com&quot;</span>, <span style="color: #0000ff;">&quot;Content 3&quot;</span><span style="color: #009900;">&#41;</span>,
        <span style="color: #000000; font-weight: bold;">new</span> Article<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Title4&quot;</span>, <span style="color: #0000ff;">&quot;http://title4.com&quot;</span>, <span style="color: #0000ff;">&quot;Content 4&quot;</span><span style="color: #009900;">&#41;</span>,
    <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    feeds.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> RssFeed<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Various Thoughts on Photography&quot;</span>, <span style="color: #0000ff;">&quot;http://various-photography-thoughts.blogspot.com/feeds/posts/default&quot;</span>,
      <span style="color: #000000; font-weight: bold;">new</span> Article<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">new</span> Article<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Title1&quot;</span>, <span style="color: #0000ff;">&quot;http://title1.com&quot;</span>, <span style="color: #0000ff;">&quot;Content 1&quot;</span><span style="color: #009900;">&#41;</span>,
        <span style="color: #000000; font-weight: bold;">new</span> Article<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Title2&quot;</span>, <span style="color: #0000ff;">&quot;http://title2.com&quot;</span>, <span style="color: #0000ff;">&quot;Content 2&quot;</span><span style="color: #009900;">&#41;</span>,
        <span style="color: #000000; font-weight: bold;">new</span> Article<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Title3&quot;</span>, <span style="color: #0000ff;">&quot;http://title3.com&quot;</span>, <span style="color: #0000ff;">&quot;Content 3&quot;</span><span style="color: #009900;">&#41;</span>,
        <span style="color: #000000; font-weight: bold;">new</span> Article<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Title4&quot;</span>, <span style="color: #0000ff;">&quot;http://title4.com&quot;</span>, <span style="color: #0000ff;">&quot;Content 4&quot;</span><span style="color: #009900;">&#41;</span>,
    <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #003399; font-weight: bold;">JTable</span> table = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399; font-weight: bold;">JTable</span><span style="color: #009900;">&#40;</span>
      <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399; font-weight: bold;">Object</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">new</span> RssFeed<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#123;</span> feeds.<span style="color: #006633;">get</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#125;</span>,
        <span style="color: #000000; font-weight: bold;">new</span> RssFeed<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#123;</span> feeds.<span style="color: #006633;">get</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#125;</span>
      <span style="color: #009900;">&#125;</span>,
      <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399; font-weight: bold;">String</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#123;</span> <span style="color: #0000ff;">&quot;Feeds&quot;</span> <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    add<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399; font-weight: bold;">JScrollPane</span><span style="color: #009900;">&#40;</span>table<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Here we create two RssFeeds with articles on the fly and add them to a JTable. If we run this example, we will see that each row displays the toString() value of our RssFeed object.</p>
<div id="attachment_504" class="wp-caption alignnone" style="width: 310px"><a href="http://pekalicious.com/blog/wp-content/uploads/2010/08/jtable_without_renderer.png" rel="lightbox[502]"><img class="size-medium wp-image-504 " title="jtable_without_renderer" src="http://pekalicious.com/blog/wp-content/uploads/2010/08/jtable_without_renderer-300x225.png" alt="JTable without a Cell Renderer" width="300" height="225" /></a><p class="wp-caption-text">JTable without a Cell Renderer</p></div>
<p>This is the default behavior of JTable when the data is not a known class (Strings, ints, etc.) We can change this behavior by creating a custom TableModel. Here is a basic table model for our example:</p>

<div class="wp_syntax"><div class="code"><pre class="java5" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> RssFeedTableModel <span style="color: #000000; font-weight: bold;">extends</span> <span style="color: #003399; font-weight: bold;">AbstractTableModel</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #003399; font-weight: bold;">List</span> feeds<span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">public</span> RssFeedTableModel<span style="color: #009900;">&#40;</span><span style="color: #003399; font-weight: bold;">List</span> feeds<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">feeds</span> = feeds<span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399; font-weight: bold;">Class</span> getColumnClass<span style="color: #009900;">&#40;</span><span style="color: #006600; font-weight: bold;">int</span> columnIndex<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #000000; font-weight: bold;">return</span> RssFeed.<span style="color: #000000; font-weight: bold;">class</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #006600; font-weight: bold;">int</span> getColumnCount<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399; font-weight: bold;">String</span> getColumnName<span style="color: #009900;">&#40;</span><span style="color: #006600; font-weight: bold;">int</span> columnIndex<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #0000ff;">&quot;Feed&quot;</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #006600; font-weight: bold;">int</span> getRowCount<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #009900;">&#40;</span>feeds == <span style="color: #006600; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">?</span> <span style="color: #cc66cc;">0</span> : feeds.<span style="color: #006633;">size</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399; font-weight: bold;">Object</span> getValueAt<span style="color: #009900;">&#40;</span><span style="color: #006600; font-weight: bold;">int</span> rowIndex, <span style="color: #006600; font-weight: bold;">int</span> columnIndex<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #009900;">&#40;</span>feeds == <span style="color: #006600; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">?</span> <span style="color: #006600; font-weight: bold;">null</span> : feeds.<span style="color: #006633;">get</span><span style="color: #009900;">&#40;</span>rowIndex<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #006600; font-weight: bold;">boolean</span> isCellEditable<span style="color: #009900;">&#40;</span><span style="color: #006600; font-weight: bold;">int</span> columnIndex, <span style="color: #006600; font-weight: bold;">int</span> rowIndex<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #006600; font-weight: bold;">true</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>
We then simply change our table declaration to:
</p>

<div class="wp_syntax"><div class="code"><pre class="java5" style="font-family:monospace;"><span style="color: #003399; font-weight: bold;">JTable</span> table = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399; font-weight: bold;">JTable</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> RssFeedTableModel<span style="color: #009900;">&#40;</span>feeds<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Voila! We now see the exact same thing in our table!</p>
<div id="attachment_504" class="wp-caption alignnone" style="width: 310px"><a href="http://pekalicious.com/blog/wp-content/uploads/2010/08/jtable_without_renderer.png" rel="lightbox[502]"><img class="size-medium wp-image-504" title="jtable_without_renderer" src="http://pekalicious.com/blog/wp-content/uploads/2010/08/jtable_without_renderer-300x225.png" alt="JTable with Table Model (but still no Cell Renderer)" width="300" height="225" /></a><p class="wp-caption-text">JTable with Table Model (but still no Cell Renderer)</p></div>
<p>Errr.. OK, so it turns out that it&#8217;s not the Model that converts our objects into Strings, but the Renderer. Each JTable has a TableCellRenderer that, given an object, it returns a Swing component that can be used to display the underlying data.</p>
<p>So now we need to tell the JTable how to convert an RssFeed into a Component. We can do this by implementing the TableCellRenderer like so:</p>

<div class="wp_syntax"><div class="code"><pre class="java5" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> RssFeedCellRenderer <span style="color: #000000; font-weight: bold;">implements</span> <span style="color: #003399; font-weight: bold;">TableCellRenderer</span><span style="color: #009900;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399; font-weight: bold;">Component</span> getTableCellRendererComponent<span style="color: #009900;">&#40;</span><span style="color: #003399; font-weight: bold;">JTable</span> table, <span style="color: #003399; font-weight: bold;">Object</span> value,
        <span style="color: #006600; font-weight: bold;">boolean</span> isSelected, <span style="color: #006600; font-weight: bold;">boolean</span> hasFocus, <span style="color: #006600; font-weight: bold;">int</span> row, <span style="color: #006600; font-weight: bold;">int</span> column<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    RssFeed feed = <span style="color: #009900;">&#40;</span>RssFeed<span style="color: #009900;">&#41;</span>value<span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #003399; font-weight: bold;">JButton</span> showButton = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399; font-weight: bold;">JButton</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;View Articles&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    showButton.<span style="color: #006633;">addActionListener</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399; font-weight: bold;">ActionListener</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #006600; font-weight: bold;">void</span> actionPerformed<span style="color: #009900;">&#40;</span><span style="color: #003399; font-weight: bold;">ActionEvent</span> arg0<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #003399; font-weight: bold;">JOptionPane</span>.<span style="color: #006633;">showMessageDialog</span><span style="color: #009900;">&#40;</span><span style="color: #006600; font-weight: bold;">null</span>, <span style="color: #0000ff;">&quot;HA-HA!&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #003399; font-weight: bold;">JPanel</span> panel = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399; font-weight: bold;">JPanel</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399; font-weight: bold;">FlowLayout</span><span style="color: #009900;">&#40;</span><span style="color: #003399; font-weight: bold;">FlowLayout</span>.<span style="color: #006633;">LEFT</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    panel.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399; font-weight: bold;">JLabel</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;&lt;strong&gt;&quot;</span> + feed.<span style="color: #006633;">name</span> + <span style="color: #0000ff;">&quot;&lt;/strong&gt;&quot;</span>
            + feed.<span style="color: #006633;">url</span> + <span style="color: #0000ff;">&quot;Articles &quot;</span> + feed.<span style="color: #006633;">articles</span>.<span style="color: #006633;">length</span> + <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    panel.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span>showButton<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #000000;  font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>isSelected<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      panel.<span style="color: #006633;">setBackground</span><span style="color: #009900;">&#40;</span>table.<span style="color: #006633;">getSelectionBackground</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span><span style="color: #000000;  font-weight: bold;">else</span><span style="color: #009900;">&#123;</span>
      panel.<span style="color: #006633;">setBackground</span><span style="color: #009900;">&#40;</span>table.<span style="color: #006633;">getSelectionForeground</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #000000; font-weight: bold;">return</span> panel<span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>
We also need to register this renderer in our table:
</p>

<div class="wp_syntax"><div class="code"><pre class="java5" style="font-family:monospace;"><span style="color: #003399; font-weight: bold;">JTable</span> table = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399; font-weight: bold;">JTable</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> RssFeedTableModel<span style="color: #009900;">&#40;</span>feeds<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
table.<span style="color: #006633;">setDefaultRenderer</span><span style="color: #009900;">&#40;</span>RssFeed.<span style="color: #000000; font-weight: bold;">class</span>, <span style="color: #000000; font-weight: bold;">new</span> RssFeedCellRenderer<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
table.<span style="color: #006633;">setRowHeight</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">60</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>
In the above lines, we effectively say &#8220;Whenever a column is an RssFeed class, use this renderer&#8221;. We already said that our one and only column is of type RssFeed in our table model:
</p>

<div class="wp_syntax"><div class="code"><pre class="java5" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399; font-weight: bold;">Class</span> getColumnClass<span style="color: #009900;">&#40;</span><span style="color: #006600; font-weight: bold;">int</span> columnIndex<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #000000; font-weight: bold;">return</span> RssFeed.<span style="color: #000000; font-weight: bold;">class</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span></pre></div></div>

<p>Now if we run our application, we can finally see something useful (although, I still prefer reading &#8220;com.pekalicious.interactiveJPanelTableCell.data.RssFeed@106caf16&#8243;. Yes, I&#8217;m THAT good):</p>
<div id="attachment_512" class="wp-caption alignnone" style="width: 310px"><a href="http://pekalicious.com/blog/wp-content/uploads/2010/08/jtable_with_renderer_without_editor1.png" rel="lightbox[502]"><img class="size-medium wp-image-512" title="jtable_with_renderer_without_editor" src="http://pekalicious.com/blog/wp-content/uploads/2010/08/jtable_with_renderer_without_editor1-300x180.png" alt="JTable with Renderer" width="300" height="180" /></a><p class="wp-caption-text">JTable with Renderer</p></div>
<p>There are two things that are wrong here: first, every time the JTable needs to render a cell, it will instantiate a new JPanel. This can harm the performance if there are many rows. Second, the button does not work! Cell renderers are used only for what they say, to render cells. They do not provide any mechanism for the underlying components. However, JTable also has Cell Editors. Cell Editors work pretty much the same way as Renderers, they take an Object and return a Component, but the component returned can be interactive.</p>
<p>As you have probably guessed already, you can have different components returned by renderers and editors. An int, for example, can be rendered using a JLabel and edited using a JTextField (which is the default behavior of JTable). However, in our example, we want the same panel both for editing and rendering. This is why we will create a common Component that will be used by both:</p>

<div class="wp_syntax"><div class="code"><pre class="java5" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> RssFeedCellComponent <span style="color: #000000; font-weight: bold;">extends</span> <span style="color: #003399; font-weight: bold;">JPanel</span> <span style="color: #009900;">&#123;</span>
  RssFeed feed<span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #003399; font-weight: bold;">JButton</span> showButton<span style="color: #339933;">;</span>
  <span style="color: #003399; font-weight: bold;">JLabel</span> text<span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">public</span> RssFeedCellComponent<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    showButton = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399; font-weight: bold;">JButton</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;View Articles&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    showButton.<span style="color: #006633;">addActionListener</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399; font-weight: bold;">ActionListener</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #006600; font-weight: bold;">void</span> actionPerformed<span style="color: #009900;">&#40;</span><span style="color: #003399; font-weight: bold;">ActionEvent</span> arg0<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #003399; font-weight: bold;">JOptionPane</span>.<span style="color: #006633;">showMessageDialog</span><span style="color: #009900;">&#40;</span><span style="color: #006600; font-weight: bold;">null</span>, <span style="color: #0000ff;">&quot;Reading &quot;</span> + feed.<span style="color: #006633;">name</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    text = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399; font-weight: bold;">JLabel</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    add<span style="color: #009900;">&#40;</span>text<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    add<span style="color: #009900;">&#40;</span>showButton<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #006600; font-weight: bold;">void</span> updateData<span style="color: #009900;">&#40;</span>RssFeed feed, <span style="color: #006600; font-weight: bold;">boolean</span> isSelected, <span style="color: #003399; font-weight: bold;">JTable</span> table<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">feed</span> = feed<span style="color: #339933;">;</span>
&nbsp;
    text.<span style="color: #006633;">setText</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;&lt;strong&gt;&quot;</span> + feed.<span style="color: #006633;">name</span> + <span style="color: #0000ff;">&quot;&lt;/strong&gt;&quot;</span> + feed.<span style="color: #006633;">url</span> + <span style="color: #0000ff;">&quot;Articles &quot;</span> + feed.<span style="color: #006633;">articles</span>.<span style="color: #006633;">length</span> + <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000000;  font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>isSelected<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      setBackground<span style="color: #009900;">&#40;</span>table.<span style="color: #006633;">getSelectionBackground</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span><span style="color: #000000;  font-weight: bold;">else</span><span style="color: #009900;">&#123;</span>
      setBackground<span style="color: #009900;">&#40;</span>table.<span style="color: #006633;">getSelectionForeground</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>
Now, our cell renderer becomes:
</p>

<div class="wp_syntax"><div class="code"><pre class="java5" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> RssFeedCellRenderer <span style="color: #000000; font-weight: bold;">implements</span> <span style="color: #003399; font-weight: bold;">TableCellRenderer</span><span style="color: #009900;">&#123;</span>
  RssFeedCellComponent feedComponent<span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">public</span> RssFeedCellRenderer<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    feedComponent = <span style="color: #000000; font-weight: bold;">new</span> RssFeedCellComponent<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399; font-weight: bold;">Component</span> getTableCellRendererComponent<span style="color: #009900;">&#40;</span><span style="color: #003399; font-weight: bold;">JTable</span> table, <span style="color: #003399; font-weight: bold;">Object</span> value,
      <span style="color: #006600; font-weight: bold;">boolean</span> isSelected, <span style="color: #006600; font-weight: bold;">boolean</span> hasFocus, <span style="color: #006600; font-weight: bold;">int</span> row, <span style="color: #006600; font-weight: bold;">int</span> column<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    RssFeed feed = <span style="color: #009900;">&#40;</span>RssFeed<span style="color: #009900;">&#41;</span>value<span style="color: #339933;">;</span>
&nbsp;
    feedComponent.<span style="color: #006633;">updateData</span><span style="color: #009900;">&#40;</span>feed, isSelected, table<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">return</span> feedComponent<span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>
And once again, nothing changed! But we did optimize (and that&#8217;s always good, right?). Now, there is only one instance of  RssFeedCellComponent which changes it&#8217;s components depending on the RssFeed passed. In addition, creating a Cell Editor that returns the same component is now pretty simple:
</p>

<div class="wp_syntax"><div class="code"><pre class="java5" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> RssFeedCellEditor <span style="color: #000000; font-weight: bold;">extends</span> <span style="color: #003399; font-weight: bold;">AbstractCellEditor</span> <span style="color: #000000; font-weight: bold;">implements</span> <span style="color: #003399; font-weight: bold;">TableCellEditor</span> <span style="color: #009900;">&#123;</span>
  RssFeedCellComponent feedComponent<span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">public</span> RssFeedCellEditor<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    feedComponent = <span style="color: #000000; font-weight: bold;">new</span> RssFeedCellComponent<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399; font-weight: bold;">Component</span> getTableCellEditorComponent<span style="color: #009900;">&#40;</span><span style="color: #003399; font-weight: bold;">JTable</span> table, <span style="color: #003399; font-weight: bold;">Object</span> value,
      <span style="color: #006600; font-weight: bold;">boolean</span> isSelected, <span style="color: #006600; font-weight: bold;">int</span> row, <span style="color: #006600; font-weight: bold;">int</span> column<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    RssFeed feed = <span style="color: #009900;">&#40;</span>RssFeed<span style="color: #009900;">&#41;</span>value<span style="color: #339933;">;</span>
    feedComponent.<span style="color: #006633;">updateData</span><span style="color: #009900;">&#40;</span>feed, <span style="color: #006600; font-weight: bold;">true</span>, table<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">return</span> feedComponent<span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399; font-weight: bold;">Object</span> getCellEditorValue<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #006600; font-weight: bold;">null</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>
And now we register our editor:
</p>

<div class="wp_syntax"><div class="code"><pre class="java5" style="font-family:monospace;"><span style="color: #003399; font-weight: bold;">JTable</span> table = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399; font-weight: bold;">JTable</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> RssFeedTableModel<span style="color: #009900;">&#40;</span>feeds<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
table.<span style="color: #006633;">setDefaultRenderer</span><span style="color: #009900;">&#40;</span>RssFeed.<span style="color: #000000; font-weight: bold;">class</span>, <span style="color: #000000; font-weight: bold;">new</span> RssFeedCellRenderer<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
table.<span style="color: #006633;">setDefaultEditor</span><span style="color: #009900;">&#40;</span>RssFeed.<span style="color: #000000; font-weight: bold;">class</span>, <span style="color: #000000; font-weight: bold;">new</span> RssFeedCellEditor<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
table.<span style="color: #006633;">setRowHeight</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">60</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>We can do even better. We can combine all three classes, RssFeedCellComponent, RssFeedCellRenderer and RssFeedCellEditor into a single RssFeedCell:</p>

<div class="wp_syntax"><div class="code"><pre class="java5" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> RssFeedCell <span style="color: #000000; font-weight: bold;">extends</span> <span style="color: #003399; font-weight: bold;">AbstractCellEditor</span> <span style="color: #000000; font-weight: bold;">implements</span> <span style="color: #003399; font-weight: bold;">TableCellEditor</span>, <span style="color: #003399; font-weight: bold;">TableCellRenderer</span><span style="color: #009900;">&#123;</span>
  <span style="color: #003399; font-weight: bold;">JPanel</span> panel<span style="color: #339933;">;</span>
  <span style="color: #003399; font-weight: bold;">JLabel</span> text<span style="color: #339933;">;</span>
  <span style="color: #003399; font-weight: bold;">JButton</span> showButton<span style="color: #339933;">;</span>
&nbsp;
  RssFeed feed<span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">public</span> RssFeedCell<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    text = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399; font-weight: bold;">JLabel</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    showButton = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399; font-weight: bold;">JButton</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;View Articles&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    showButton.<span style="color: #006633;">addActionListener</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399; font-weight: bold;">ActionListener</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #006600; font-weight: bold;">void</span> actionPerformed<span style="color: #009900;">&#40;</span><span style="color: #003399; font-weight: bold;">ActionEvent</span> arg0<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #003399; font-weight: bold;">JOptionPane</span>.<span style="color: #006633;">showMessageDialog</span><span style="color: #009900;">&#40;</span><span style="color: #006600; font-weight: bold;">null</span>, <span style="color: #0000ff;">&quot;Reading &quot;</span> + feed.<span style="color: #006633;">name</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    panel = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399; font-weight: bold;">JPanel</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399; font-weight: bold;">FlowLayout</span><span style="color: #009900;">&#40;</span><span style="color: #003399; font-weight: bold;">FlowLayout</span>.<span style="color: #006633;">LEFT</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    panel.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span>text<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    panel.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span>showButton<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #006600; font-weight: bold;">void</span> updateData<span style="color: #009900;">&#40;</span>RssFeed feed, <span style="color: #006600; font-weight: bold;">boolean</span> isSelected, <span style="color: #003399; font-weight: bold;">JTable</span> table<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">feed</span> = feed<span style="color: #339933;">;</span>
&nbsp;
    text.<span style="color: #006633;">setText</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;&lt;strong&gt;&quot;</span> + feed.<span style="color: #006633;">name</span> + <span style="color: #0000ff;">&quot;&lt;/strong&gt;&quot;</span> + feed.<span style="color: #006633;">url</span> + <span style="color: #0000ff;">&quot;Articles &quot;</span> + feed.<span style="color: #006633;">articles</span>.<span style="color: #006633;">length</span> + <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #000000;  font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>isSelected<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      panel.<span style="color: #006633;">setBackground</span><span style="color: #009900;">&#40;</span>table.<span style="color: #006633;">getSelectionBackground</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span><span style="color: #000000;  font-weight: bold;">else</span><span style="color: #009900;">&#123;</span>
      panel.<span style="color: #006633;">setBackground</span><span style="color: #009900;">&#40;</span>table.<span style="color: #006633;">getSelectionForeground</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
  <span style="color: #009900;">&#125;</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399; font-weight: bold;">Component</span> getTableCellEditorComponent<span style="color: #009900;">&#40;</span><span style="color: #003399; font-weight: bold;">JTable</span> table, <span style="color: #003399; font-weight: bold;">Object</span> value,
      <span style="color: #006600; font-weight: bold;">boolean</span> isSelected, <span style="color: #006600; font-weight: bold;">int</span> row, <span style="color: #006600; font-weight: bold;">int</span> column<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    RssFeed feed = <span style="color: #009900;">&#40;</span>RssFeed<span style="color: #009900;">&#41;</span>value<span style="color: #339933;">;</span>
    updateData<span style="color: #009900;">&#40;</span>feed, <span style="color: #006600; font-weight: bold;">true</span>, table<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">return</span> panel<span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399; font-weight: bold;">Object</span> getCellEditorValue<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #006600; font-weight: bold;">null</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399; font-weight: bold;">Component</span> getTableCellRendererComponent<span style="color: #009900;">&#40;</span><span style="color: #003399; font-weight: bold;">JTable</span> table, <span style="color: #003399; font-weight: bold;">Object</span> value,
      <span style="color: #006600; font-weight: bold;">boolean</span> isSelected, <span style="color: #006600; font-weight: bold;">boolean</span> hasFocus, <span style="color: #006600; font-weight: bold;">int</span> row, <span style="color: #006600; font-weight: bold;">int</span> column<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    RssFeed feed = <span style="color: #009900;">&#40;</span>RssFeed<span style="color: #009900;">&#41;</span>value<span style="color: #339933;">;</span>
    updateData<span style="color: #009900;">&#40;</span>feed, isSelected, table<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">return</span> panel<span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Now we use only one Panel for all rendering and editing!</p>
<div id="attachment_511" class="wp-caption alignnone" style="width: 310px"><a href="http://pekalicious.com/blog/wp-content/uploads/2010/08/jtable_with_renderer_and_editor1.png" rel="lightbox[502]"><img class="size-medium wp-image-511" title="jtable_with_renderer_and_editor" src="http://pekalicious.com/blog/wp-content/uploads/2010/08/jtable_with_renderer_and_editor1-300x179.png" alt="JTable with Renderer and Editor" width="300" height="179" /></a><p class="wp-caption-text">JTable with Renderer and Editor</p></div>
<h1>The Conclusion</h1>
<p>Every time I try to use a JTable I discover how difficult it is to just create a f*cking simple table, but I also see how powerful it is for more complex things. I&#8217;m pretty sure there is a way to display the button only on mouse over. You know, web2.0-y.</p>
<p>Anyway, that&#8217;s that. As usual, you can find the source and the executable in my <a href="http://pekalicious.com/javacorner/">Java Corner</a>.</p>
<p>Now excuse me, but I got some Void Rays to counter attack. En Taro Adun!
</pre>
</p>
<ul class="socialwrap size32 row">
<li class="iconOnly"><a rel="nofollow" target="_blank" class="delicious" href="http://delicious.com/post?url=http%3A%2F%2Fpekalicious.com%2Fblog%2Fcustom-jpanel-cell-with-jbuttons-in-jtable%2F&amp;title=Custom+JPanel+cell+with+JButtons+in+JTable" title="Bookmark this post : Custom JPanel cell with JButtons in JTable on Delicious"><span class="head">Bookmark on Delicious</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="digg" href="http://digg.com/submit?url=http%3A%2F%2Fpekalicious.com%2Fblog%2Fcustom-jpanel-cell-with-jbuttons-in-jtable%2F&amp;title=Custom+JPanel+cell+with+JButtons+in+JTable&amp;bodytext=If+you+ever+wanted+to+add+a+JPanel+with+various+interactive+components+%28e.g.+JButtons%2C+JCheckBoxes+etc.%29+in+a+JTable+cell+and+could+not+figure+out+how+to+make+them+work%2C+then+this+post+is+for+you.+Otherwise%2C+continue+googling+%3B%29%0D%0A%0D%0A+%0D%0A%0D%0AThe+Intro%0D%0AIt%27s+really+difficult+to+find+something+in+the+Internet+when+you+are+not" title="Digg this post : Custom JPanel cell with JButtons in JTable"><span class="head">Digg this post</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="facebook" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fpekalicious.com%2Fblog%2Fcustom-jpanel-cell-with-jbuttons-in-jtable%2F&amp;t=Custom+JPanel+cell+with+JButtons+in+JTable" title="Recommend this post : Custom JPanel cell with JButtons in JTable on Facebook"><span class="head">Recommend on Facebook</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="myspace" href="javascript:void(window.open('http://www.myspace.com/Modules/PostTo/Pages/?u='+encodeURIComponent(document.location.toString()),'ptm','height=450,width=440').focus())" title="Share this post : Custom JPanel cell with JButtons in JTable via MySpace"><span class="head">Share via MySpace</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="reddit" href="http://www.reddit.com/submit?url=http%3A%2F%2Fpekalicious.com%2Fblog%2Fcustom-jpanel-cell-with-jbuttons-in-jtable%2F&amp;title=Custom+JPanel+cell+with+JButtons+in+JTable" title="Share this post : Custom JPanel cell with JButtons in JTable on Reddit"><span class="head">share via Reddit</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="stumble" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fpekalicious.com%2Fblog%2Fcustom-jpanel-cell-with-jbuttons-in-jtable%2F&amp;title=Custom+JPanel+cell+with+JButtons+in+JTable" title="Share this post : Custom JPanel cell with JButtons in JTable with Stumblers"><span class="head">Share with Stumblers</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="tumblr" href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fpekalicious.com%2Fblog%2Fcustom-jpanel-cell-with-jbuttons-in-jtable%2F&amp;t=Custom+JPanel+cell+with+JButtons+in+JTable" title="Tumblr. this post : Custom JPanel cell with JButtons in JTable "><span class="head">Tumblr it</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="twitter" href="http://twitter.com/home/?status=Custom+JPanel+cell+with+JButtons+in+JTable+-+http%253A%252F%252Fpekalicious.com%252Fblog%252Fcustom-jpanel-cell-with-jbuttons-in-jtable%252F" title="Tweet this post : Custom JPanel cell with JButtons in JTable on Twitter"><span class="head">Tweet about it</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="" class="rss" href="http://pekalicious.com/blog/custom-jpanel-cell-with-jbuttons-in-jtable/feed" title="Follow this post : Custom JPanel cell with JButtons in JTable comments"><span class="head">Subscribe to the comments on this post</span></a></li>
<li class="iconOnly"><a rel="" class="email" href="mailto:?subject=pekalicious : Custom JPanel cell with JButtons in JTable&#038;body=here is a link to a site I really like.   http://pekalicious.com/blog/custom-jpanel-cell-with-jbuttons-in-jtable/" title="Tell a friend about this post : Custom JPanel cell with JButtons in JTable "><span class="head">Tell a friend</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="" class="print" href="javascript:window.print();" title="Print this post : Custom JPanel cell with JButtons in JTable for reading later"><span class="head">Print for later</span></a></li>
</ul>
<div class="clean"></div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/pekalicious?a=ogkVgRBjgCA:6ikmw8RGvvk:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/pekalicious?i=ogkVgRBjgCA:6ikmw8RGvvk:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/pekalicious?a=ogkVgRBjgCA:6ikmw8RGvvk:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/pekalicious?i=ogkVgRBjgCA:6ikmw8RGvvk:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/pekalicious?a=ogkVgRBjgCA:6ikmw8RGvvk:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/pekalicious?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/pekalicious/~4/ogkVgRBjgCA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://pekalicious.com/blog/custom-jpanel-cell-with-jbuttons-in-jtable/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://pekalicious.com/blog/custom-jpanel-cell-with-jbuttons-in-jtable/</feedburner:origLink></item>
		<item>
		<title>Microsoft Word 2007: Numbered Headings Done Right</title>
		<link>http://feedproxy.google.com/~r/pekalicious/~3/RT27-tXUxYk/</link>
		<comments>http://pekalicious.com/blog/microsoft-word-2007-numbered-headings-done-right/#comments</comments>
		<pubDate>Thu, 29 Apr 2010 13:12:38 +0000</pubDate>
		<dc:creator>Panagiotis Peikidis</dc:creator>
				<category><![CDATA[HowTo]]></category>
		<category><![CDATA[headings]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[numbered headings]]></category>
		<category><![CDATA[office 2007]]></category>
		<category><![CDATA[word]]></category>
		<category><![CDATA[word 2007]]></category>

		<guid isPermaLink="false">http://pekalicious.com/blog/?p=431</guid>
		<description><![CDATA[In my previous post I only briefly talked about numbering your headings. Well, today I discovered how to do them the right way. Interested? Continue reading after the jump. I was going to start with an introduction to Lists, but this needs a lot of research (about 5 minutes) so I will just reference Wikipedia [...]]]></description>
			<content:encoded><![CDATA[<p>In my <a title="Microsoft Word 2007 Made Simple" href="http://pekalicious.com/blog/microsoft-word-made-simple/">previous</a> post I only briefly talked about numbering your headings. Well, today I discovered how to do them the right way. Interested? Continue reading after the jump.</p>
<p><span id="more-431"></span>I was going to start with an introduction to Lists, but this needs a lot of research (about 5 minutes) so I will just reference Wikipedia (which took 2 seconds):</p>
<blockquote><p>&#8220;The Bullets and Numbering system has been significantly overhauled for Office 2007, which is intended to reduce the severity of these problems.&#8221; -<a title="Microsoft Word - Wikipedia" href="http://en.wikipedia.org/wiki/Microsoft_Word#Bullets_and_numbering">Microsoft Word, Wikipedia</a></p></blockquote>
<p>I&#8217;m not pretty sure if you can modify multi level lists prior to 2007 because this is the first time I&#8217;m doing this. But anyway, in Word 2007 you have the ability to define new multi level lists styles which is VERY useful for numbering your headings.</p>
<p>Let us begin by writing some chapter and section titles. As I told you yesterday, we will first write our document and then style it. So add some old fashion Lorem Ipsum text after each title. If you are lazy like me, you will probably find this tool handy: <a title="Lorem Ipsum Generator" href="http://www.lipsum.com/">Lorem Ipsum Generator</a>. Or, use Word&#8217;s built-in command &#8220;=lorem(X)&#8221; where X is the number of paragraphs; i.e. <strong>=lorem(2)</strong>. Thank you Geri for this tip.</p>
<div id="attachment_433" class="wp-caption aligncenter" style="width: 310px"><a href="http://pekalicious.com/blog/wp-content/uploads/2010/04/before-heading-style.png" rel="lightbox[431]"><img class="size-medium wp-image-433" title="before-heading-style" src="http://pekalicious.com/blog/wp-content/uploads/2010/04/before-heading-style-300x115.png" alt="Example without styles" width="300" height="115" /></a><p class="wp-caption-text">Example without styles</p></div>
<p>Once you are done with your titles, style them with the appropriate heading style. Forget about setting the numbering in the heading style. We will number them in a better way.</p>
<div id="attachment_434" class="wp-caption aligncenter" style="width: 310px"><a href="http://pekalicious.com/blog/wp-content/uploads/2010/04/after-headings.png" rel="lightbox[431]"><img class="size-medium wp-image-434" title="after-headings" src="http://pekalicious.com/blog/wp-content/uploads/2010/04/after-headings-300x238.png" alt="Example with Heading styles" width="300" height="238" /></a><p class="wp-caption-text">Example with Heading styles</p></div>
<p>Now, select your first heading and click on the &#8220;Multilevel List&#8221; in the &#8220;Home&#8221; tab and choose &#8220;Define New Multilevel List&#8230;.&#8221;.</p>
<div id="attachment_435" class="wp-caption aligncenter" style="width: 205px"><a href="http://pekalicious.com/blog/wp-content/uploads/2010/04/define-new-multilevel.png" rel="lightbox[431]"><img class="size-medium wp-image-435" title="define-new-multilevel" src="http://pekalicious.com/blog/wp-content/uploads/2010/04/define-new-multilevel-195x300.png" alt="Define New Multilevel List" width="195" height="300" /></a><p class="wp-caption-text">Define New Multilevel List</p></div>
<p>On the bottom left of the &#8220;Define new Multilevel list&#8221; window click on the &#8220;More &gt;&gt;&#8221; button. This is what you will see:</p>
<div id="attachment_436" class="wp-caption aligncenter" style="width: 310px"><a href="http://pekalicious.com/blog/wp-content/uploads/2010/04/multilevel-dialog.png" rel="lightbox[431]"><img class="size-medium wp-image-436" title="multilevel-dialog" src="http://pekalicious.com/blog/wp-content/uploads/2010/04/multilevel-dialog-300x270.png" alt="Multilevel List Dialog" width="300" height="270" /></a><p class="wp-caption-text">Multilevel List Dialog</p></div>
<p>Here we can select a level of the list (in the top left) and change its style.</p>
<p>Let&#8217;s say you want each Heading 1 to include &#8220;Chapter&#8221;. Simply enter &#8220;Chapter&#8221; before the number in the &#8220;Enter formatting for number:&#8221; text field. I personally don&#8217;t like spacing, so I set both &#8220;Aligned at:&#8221; and &#8220;Text indent at:&#8221; to 0 cm. Finally, I prefer a single space instead of a tab before my title, so I set &#8220;Follow number with:&#8221; to Space.</p>
<p>But aside from styling your list, the important step is to link this style to your header. You do this by selecting &#8220;Heading 1&#8243; to the &#8220;Link level to style:&#8221; drop down list.</p>
<div id="attachment_437" class="wp-caption aligncenter" style="width: 310px"><a href="http://pekalicious.com/blog/wp-content/uploads/2010/04/link-heading-to-style.png" rel="lightbox[431]"><img class="size-medium wp-image-437" title="link-heading-to-style" src="http://pekalicious.com/blog/wp-content/uploads/2010/04/link-heading-to-style-300x270.png" alt="Link level to style" width="300" height="270" /></a><p class="wp-caption-text">Link level to style</p></div>
<p>For levels other than 1, you can include the number of its parent level. This is very useful when you want sub sections to look like &#8220;1.2.1 Title&#8221;. Simply edit those levels and select the level you want in the &#8220;Include level number from:&#8221;. Don&#8217;t forget to link each level to the appropriate headings style.</p>
<div id="attachment_438" class="wp-caption aligncenter" style="width: 310px"><a href="http://pekalicious.com/blog/wp-content/uploads/2010/04/include-level-number.png" rel="lightbox[431]"><img class="size-medium wp-image-438" title="include-level-number" src="http://pekalicious.com/blog/wp-content/uploads/2010/04/include-level-number-300x259.png" alt="Include Level Number" width="300" height="259" /></a><p class="wp-caption-text">Include Level Number</p></div>
<p>You should now have each heading numbered correctly!</p>
<div id="attachment_440" class="wp-caption aligncenter" style="width: 267px"><a href="http://pekalicious.com/blog/wp-content/uploads/2010/04/after-numbering.png" rel="lightbox[431]"><img class="size-medium wp-image-440" title="after-numbering" src="http://pekalicious.com/blog/wp-content/uploads/2010/04/after-numbering-257x300.png" alt="After Numbering" width="257" height="300" /></a><p class="wp-caption-text">After Numbering</p></div>
<p>But what about appendices? What if you want Appendix A, Appendix B etc? Well, we know that appendices appear in the Table of Contents as the same level as Heading 1, so clearly they have to be in the first level of the list.</p>
<p>So, one way of setting this is by applying the Heading 1 style to each. Then, select your first appendix title and define a new style. The settings of the current active list style are already set, so you don&#8217;t need to set everything again. This time you have the option to select how to apply these changes. Choose &#8220;This point forward&#8221; in the &#8220;Apply changes to:&#8221; drop down list and then make your changes. Set, for instance, the &#8220;Enter formatting for number:&#8221; to Appendix and the &#8220;Number style for this level:&#8221; to &#8220;A,B,C,&#8230;&#8221; and then the &#8220;Start at:&#8221; to &#8220;A&#8221;.</p>
<div id="attachment_441" class="wp-caption aligncenter" style="width: 310px"><a href="http://pekalicious.com/blog/wp-content/uploads/2010/04/appendix-first-way.png" rel="lightbox[431]"><img class="size-medium wp-image-441" title="appendix-first-way" src="http://pekalicious.com/blog/wp-content/uploads/2010/04/appendix-first-way-300x258.png" alt="Appendix Multilevel List Style" width="300" height="258" /></a><p class="wp-caption-text">Appendix Multilevel List Style</p></div>
<p>While this will do the trick, you have to manually set the new style. I hate manuals! So let&#8217;s make them autos.</p>
<p>Create a new style by opening the &#8220;Styles&#8221; windows and clicking &#8220;New Style&#8221;. Name it &#8220;Appendix&#8221;, set the &#8220;Style type:&#8221; to &#8220;Linked (paragraph and character)&#8221; and &#8220;Style for following paragraph:&#8221; to &#8220;Normal&#8221;.</p>
<p>Now, this is where the magic happens: set the &#8220;Style based on:&#8221; to &#8220;Heading 1&#8243; and click &#8220;OK&#8221;. This will link this style with Heading 1, which means two things: a) any changes in Heading 1 will be set to Appendix as well and b) the title of this heading will be set to the same level of Heading 1 in Table of Contents.</p>
<div id="attachment_442" class="wp-caption aligncenter" style="width: 310px"><a href="http://pekalicious.com/blog/wp-content/uploads/2010/04/appendix-style.png" rel="lightbox[431]"><img class="size-medium wp-image-442" title="appendix-style" src="http://pekalicious.com/blog/wp-content/uploads/2010/04/appendix-style-300x224.png" alt="Appendix Style" width="300" height="224" /></a><p class="wp-caption-text">Appendix Style</p></div>
<p>If you now apply the Appendix style to your titles, you will see that &#8220;Chapter&#8221; appears before them. To set this to &#8220;Appendix&#8221;, select your title and define a new multi level list. Next, select the fourth level and set the &#8220;Link level to style:&#8221; to &#8220;Appendix&#8221;. Make any changes to the style you want (like setting &#8220;Appendix&#8221;) and your done!</p>
<div id="attachment_443" class="wp-caption aligncenter" style="width: 310px"><a href="http://pekalicious.com/blog/wp-content/uploads/2010/04/appendix-text.png" rel="lightbox[431]"><img class="size-medium wp-image-443" title="appendix-text" src="http://pekalicious.com/blog/wp-content/uploads/2010/04/appendix-text-300x167.png" alt="Appendix" width="300" height="167" /></a><p class="wp-caption-text">Appendix</p></div>
<p>When you will generate your Table of Contents, you&#8217;ll see that Appendices are at the same level as Heading 1. If you change the Appendix style to be based on Heading 2, this will be visible to the Table of Contents as well.</p>
<div id="attachment_444" class="wp-caption aligncenter" style="width: 310px"><a href="http://pekalicious.com/blog/wp-content/uploads/2010/04/table-of-contents1.png" rel="lightbox[431]"><img class="size-medium wp-image-444" title="table-of-contents" src="http://pekalicious.com/blog/wp-content/uploads/2010/04/table-of-contents1-300x164.png" alt="Table of Contents" width="300" height="164" /></a><p class="wp-caption-text">Table of Contents</p></div>
<p>Easy!</p>
<ul class="socialwrap size32 row">
<li class="iconOnly"><a rel="nofollow" target="_blank" class="delicious" href="http://delicious.com/post?url=http%3A%2F%2Fpekalicious.com%2Fblog%2Fmicrosoft-word-2007-numbered-headings-done-right%2F&amp;title=Microsoft+Word+2007%3A+Numbered+Headings+Done+Right" title="Bookmark this post : Microsoft Word 2007: Numbered Headings Done Right on Delicious"><span class="head">Bookmark on Delicious</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="digg" href="http://digg.com/submit?url=http%3A%2F%2Fpekalicious.com%2Fblog%2Fmicrosoft-word-2007-numbered-headings-done-right%2F&amp;title=Microsoft+Word+2007%3A+Numbered+Headings+Done+Right&amp;bodytext=In+my+previous+post+I+only+briefly+talked+about+numbering+your+headings.+Well%2C+today+I+discovered+how+to+do+them+the+right+way.+Interested%3F+Continue+reading+after+the+jump.%0D%0A%0D%0AI+was+going+to+start+with+an+introduction+to+Lists%2C+but+this+needs+a+lot+of+research+%28about+5+minutes%29+so+I+will+just+reference+Wikipedia+%28which" title="Digg this post : Microsoft Word 2007: Numbered Headings Done Right"><span class="head">Digg this post</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="facebook" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fpekalicious.com%2Fblog%2Fmicrosoft-word-2007-numbered-headings-done-right%2F&amp;t=Microsoft+Word+2007%3A+Numbered+Headings+Done+Right" title="Recommend this post : Microsoft Word 2007: Numbered Headings Done Right on Facebook"><span class="head">Recommend on Facebook</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="myspace" href="javascript:void(window.open('http://www.myspace.com/Modules/PostTo/Pages/?u='+encodeURIComponent(document.location.toString()),'ptm','height=450,width=440').focus())" title="Share this post : Microsoft Word 2007: Numbered Headings Done Right via MySpace"><span class="head">Share via MySpace</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="reddit" href="http://www.reddit.com/submit?url=http%3A%2F%2Fpekalicious.com%2Fblog%2Fmicrosoft-word-2007-numbered-headings-done-right%2F&amp;title=Microsoft+Word+2007%3A+Numbered+Headings+Done+Right" title="Share this post : Microsoft Word 2007: Numbered Headings Done Right on Reddit"><span class="head">share via Reddit</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="stumble" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fpekalicious.com%2Fblog%2Fmicrosoft-word-2007-numbered-headings-done-right%2F&amp;title=Microsoft+Word+2007%3A+Numbered+Headings+Done+Right" title="Share this post : Microsoft Word 2007: Numbered Headings Done Right with Stumblers"><span class="head">Share with Stumblers</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="tumblr" href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fpekalicious.com%2Fblog%2Fmicrosoft-word-2007-numbered-headings-done-right%2F&amp;t=Microsoft+Word+2007%3A+Numbered+Headings+Done+Right" title="Tumblr. this post : Microsoft Word 2007: Numbered Headings Done Right "><span class="head">Tumblr it</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="twitter" href="http://twitter.com/home/?status=Microsoft+Word+2007%3A+Numbered+Headings+Done+Right+-+http%253A%252F%252Fpekalicious.com%252Fblog%252Fmicrosoft-word-2007-numbered-headings-done-right%252F" title="Tweet this post : Microsoft Word 2007: Numbered Headings Done Right on Twitter"><span class="head">Tweet about it</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="" class="rss" href="http://pekalicious.com/blog/microsoft-word-2007-numbered-headings-done-right/feed" title="Follow this post : Microsoft Word 2007: Numbered Headings Done Right comments"><span class="head">Subscribe to the comments on this post</span></a></li>
<li class="iconOnly"><a rel="" class="email" href="mailto:?subject=pekalicious : Microsoft Word 2007: Numbered Headings Done Right&#038;body=here is a link to a site I really like.   http://pekalicious.com/blog/microsoft-word-2007-numbered-headings-done-right/" title="Tell a friend about this post : Microsoft Word 2007: Numbered Headings Done Right "><span class="head">Tell a friend</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="" class="print" href="javascript:window.print();" title="Print this post : Microsoft Word 2007: Numbered Headings Done Right for reading later"><span class="head">Print for later</span></a></li>
</ul>
<div class="clean"></div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/pekalicious?a=RT27-tXUxYk:oMdxK2aI-7c:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/pekalicious?i=RT27-tXUxYk:oMdxK2aI-7c:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/pekalicious?a=RT27-tXUxYk:oMdxK2aI-7c:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/pekalicious?i=RT27-tXUxYk:oMdxK2aI-7c:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/pekalicious?a=RT27-tXUxYk:oMdxK2aI-7c:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/pekalicious?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/pekalicious/~4/RT27-tXUxYk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://pekalicious.com/blog/microsoft-word-2007-numbered-headings-done-right/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://pekalicious.com/blog/microsoft-word-2007-numbered-headings-done-right/</feedburner:origLink></item>
		<item>
		<title>Microsoft Word 2007 made simple</title>
		<link>http://feedproxy.google.com/~r/pekalicious/~3/O2bAldrtKwU/</link>
		<comments>http://pekalicious.com/blog/microsoft-word-made-simple/#comments</comments>
		<pubDate>Wed, 28 Apr 2010 12:48:57 +0000</pubDate>
		<dc:creator>Panagiotis Peikidis</dc:creator>
				<category><![CDATA[HowTo]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[office 2007]]></category>
		<category><![CDATA[word 2007]]></category>

		<guid isPermaLink="false">http://pekalicious.com/blog/?p=407</guid>
		<description><![CDATA[I finally figured out how to use some features in Microsoft Word 2007. Wanna join the fun? Read after the jump! Introduction Table of Contents Introduction Headers and Footers Headings References General Tips Conclusion When I need to write a formal document (like my thoughts on why my neighbors feet smell) I usually go with [...]]]></description>
			<content:encoded><![CDATA[<p>I finally figured out how to use some features in Microsoft Word 2007. Wanna join the fun? Read after the jump!</p>
<p><span id="more-407"></span></p>
<h1 id='Introduction'>Introduction</h1>
<div style="float: right; margin: 8px;"><div id='toc'><div id='toc_title'>Table of Contents</div>
<ul><li><a href="#Introduction">Introduction</a></li>
<li><a href="#Headers-and-Footers">Headers and Footers</a></li>
<li><a href="#Headings">Headings</a></li>
<li><a href="#References">References</a></li>
<li><a href="#General-Tips">General Tips</a></li>
<li><a href="#Conclusion">Conclusion</a></li>
</ul>
</div></div>
<p>When I need to write a formal document (like my thoughts on why my neighbors feet smell) I usually go with LaTeX. Not because the name brings interesting thoughts, but because you don&#8217;t have to deal with fancy stuff, like &#8220;What color should my title be?&#8221; or &#8220;Are the margins too narrow?&#8221;.</p>
<p>Now, don&#8217;t get me wrong, I&#8217;m all for fancy stuff. But I also get easily extracted. Hey, since when did WordPress add Ctrl+S for saving? I did it by accident (oh, you must make saving a habit, trust me) and it worked! Cool!</p>
<p>As I was saying, Microsoft Word has a lot of fancy things you can do with your plain and boring words, but they usually get on your way when you want to quickly &#8211; and I mean <strong>quickly</strong>, like, the deadline is in two hours &#8211; write your essay without adding anything. So I ended up using Word for my drafts until it was time to get serious. Then I would copy &amp; paste the text in a .tex template I have created over the years and go on from there.</p>
<p>But recently I have been a little lazy. And by recently I mean the last two years. And by two years I really mean five. The thing is, LaTeX requires a lot of energy when you want your document to be fancy. Like any other thing in the Linux world, LaTeX has a <strong>LOT </strong>of options for anything you can think of. From fancy headers to editing the space around a title. The drawback, of course, is that they aren&#8217;t in the tip of your finger, more like in a corner down at the basement of a house in the next town of the far away country. In other words, you have to find it, grab it, set it up, learn it and then you can TRY using it.</p>
<p>Just to give you an idea of the situation, <a title="LaTeX Template" href="http://pekalicious.com/blog/wp-content/uploads/2010/04/latex_template.zip">here is the template I created</a>. Every time I find something fancy I just drop it in there and see what happens. And <a title="LaTeX Template Output" href="http://pekalicious.com/blog/wp-content/uploads/2010/04/body.pdf">here is an example output</a>.</p>
<p>And to top that, LaTeX doesn&#8217;t have a standard editor. There are a couple of them lying around but each and everyone I have tried seems like it&#8217;s missing X but has Y. I mostly use <a title="TeXnicCenter" href="http://www.texniccenter.org/">TeXnicCenter</a> because it supports projects. There is also a WYSIWYG editor, which probably beats the whole idea of LaTeX in the first place, but that&#8217;s another discussion.</p>
<p>Anyway, recently I have been looking into Word with a different eye, the left one. I finally figured out how to properly use headers and footers, how referencing works, how to style my document in a consistent manner and various other neat tricks. So, before I forget them I thought of writing them down and accidentally sharing it with the world as if it was for them. Pff, silly Internet people.</p>
<p>So, without further ado, here is a list of features in Microsoft Word 2007 and how to use them.</p>
<h1 id='Headers-and-Footers'>Headers and Footers</h1>
<p>STOP right where you are! I can see you typing your name on the header. Do you know what a section is? Do you know what is &#8220;linking&#8221; between sections? Do you know what is the option &#8220;Different First Page&#8221;? <a title="Did you know I'm riding this horse backwards? - Youtube" href="http://www.youtube.com/watch?v=LpUrz9RvuPk">Do you know that I&#8217;m riding this horse backwards?</a> Well, you should.</p>
<p>Section breaks are used in Word to separate layout or formatting in a document, such as page numbering. This is essential when you have a title page, a table of contents page, a list of figures page, a list of tables page, a list of lists page, and you want them all to have different headers and footers.</p>
<p>Remember how to start a paragraph in the next page? You press 1000 times the Enter key. Or, you simply click the &#8220;Page Break&#8221; and your done. Well, a section break is similar. Only this time you go the next page AND add a new section. Section breaks can also start in the middle of the page, an even page, or in an uneven page.</p>
<p>You can do this by going to the &#8220;Page Layout&#8221; tab and clicking on the &#8220;Breaks&#8221; drop down button. You can see there are four options for entering a section.</p>
<div id="attachment_408" class="wp-caption aligncenter" style="width: 203px"><a href="http://pekalicious.com/blog/wp-content/uploads/2010/04/break-sections.png" rel="lightbox[407]"><img class="size-medium wp-image-408" src="http://pekalicious.com/blog/wp-content/uploads/2010/04/break-sections-193x300.png" alt="Section Breaks" width="193" height="300" /></a><p class="wp-caption-text">Section Breaks</p></div>
<p>Let&#8217;s click the first option, &#8220;Next Page&#8221;. Just like the &#8220;Page Break&#8221; our cursor was sent to the next page and nothing else has happened. Now, either double click the top of the page or go to the &#8220;Insert&#8221; tab, click the &#8220;Header&#8221; drop down button and select any option. You will see that a contextual tab called &#8220;Design&#8221; has appeared with various options.</p>
<div id="attachment_423" class="wp-caption aligncenter" style="width: 310px"><a href="http://pekalicious.com/blog/wp-content/uploads/2010/04/contextual-design-tab.png" rel="lightbox[407]"><img class="size-medium wp-image-423" title="contextual-design-tab" src="http://pekalicious.com/blog/wp-content/uploads/2010/04/contextual-design-tab-300x41.png" alt="Design Contextual Tab" width="300" height="41" /></a><p class="wp-caption-text">Design Contextual Tab</p></div>
<p>You will also see that the header now says &#8220;Header -Section 1-&#8221; or &#8220;Header -Section 2-&#8221; instead of plain &#8220;Header&#8221;.</p>
<div id="attachment_409" class="wp-caption aligncenter" style="width: 310px"><a href="http://pekalicious.com/blog/wp-content/uploads/2010/04/header-sections.png" rel="lightbox[407]"><img class="size-medium wp-image-409" src="http://pekalicious.com/blog/wp-content/uploads/2010/04/header-sections-300x197.png" alt="Header Sections" width="300" height="197" /></a><p class="wp-caption-text">Header Sections</p></div>
<p>Now start typing in the header. Not anything, type &#8220;pekalicious.com&#8221;. Thank you. Now look at the header in section 2, same thing. Thank you again. But we want to have different headers for each section. So click anywhere in the section 2 header and then click on the preselected button &#8220;Link with Previous&#8221;. Nothing will happen, but if you now change it to, let&#8217;s say, &#8220;pek&#8221;, the header in section 1 will stay the same, &#8220;pekalicious.com&#8221;. Thank you once more.</p>
<div id="attachment_424" class="wp-caption aligncenter" style="width: 310px"><a href="http://pekalicious.com/blog/wp-content/uploads/2010/04/link-to-previews.png" rel="lightbox[407]"><img class="size-medium wp-image-424" title="link-to-previous" src="http://pekalicious.com/blog/wp-content/uploads/2010/04/link-to-previews-300x85.png" alt="Link to Previous" width="300" height="85" /></a><p class="wp-caption-text">Link to Previous</p></div>
<p>OK, we now have separated our sections, let&#8217;s add some real content. Let&#8217;s go to the footer and try to add &#8220;Page/Total Pages&#8221;. So go to the footer and hit tab two times to go all the way to the right. You can always do this the easy and boring way: by clicking at the &#8220;Page Number&#8221; drop down list. But I like to have control.</p>
<div id="attachment_410" class="wp-caption aligncenter" style="width: 243px"><a href="http://pekalicious.com/blog/wp-content/uploads/2010/04/page-number.png" rel="lightbox[407]"><img class="size-medium wp-image-410" src="http://pekalicious.com/blog/wp-content/uploads/2010/04/page-number-233x300.png" alt="Page Number" width="233" height="300" /></a><p class="wp-caption-text">Page Number Options</p></div>
<p>The way I do it is by going to the &#8220;Insert&#8221; tab, click the &#8220;Quick Parts&#8221; drop down and select &#8220;Field&#8230;&#8221;. This has a list of a lot of useful things. To insert the current page, slide down the list, select page and click &#8220;OK&#8221;. Oh, did I forgot to tell you to unlink the footer as well? Go to the footer of the first page of section 2 and unselect the &#8220;Link to Previous&#8221;. Don&#8217;t forget to delete the page number in section 1.</p>
<p>Everything seems fine until you notice that the page number in section 2 is 2 instead of 1. Well, unfortunately, you have to set the &#8220;Start at&#8230;&#8221; option. To do so, select the number, go back to the &#8220;Design&#8221; tab, click the &#8220;Page Number&#8221; drop down and select &#8220;Format Page numbers&#8230;&#8221;. Here you can set the number format, like the fancy Roman &#8220;I,II,III&#8221;, include extra information and set the &#8220;Start at&#8221;, which is what we want. So select that and enter &#8220;1&#8243;.</p>
<div id="attachment_411" class="wp-caption aligncenter" style="width: 310px"><a href="http://pekalicious.com/blog/wp-content/uploads/2010/04/page-number-format.png" rel="lightbox[407]"><img class="size-medium wp-image-411" src="http://pekalicious.com/blog/wp-content/uploads/2010/04/page-number-format-300x222.png" alt="Page Number Format Options" width="300" height="222" /></a><p class="wp-caption-text">Page Number Format Options</p></div>
<p>Now let&#8217;s add a &#8220;total pages&#8221; number next to the page number. To insert this, go back to the &#8220;Field&#8230;&#8221; window and select the &#8220;SectionPages&#8221;. NOT the &#8220;NumPages&#8221;! The former will enter the total number of pages of the current section while the latter will enter the total number of pages in our document.</p>
<p>Another interesting option for the sections is the &#8220;Different First Page&#8221;, which will allow you do edit the first page of each section separately from the next. It&#8217;s kinda cool, but I find it easier to simply add another section.</p>
<h3>Summary</h3>
<p>So, for all you TL;DR people out there, here are some fancy bullet points (and by fancy I mean &#8220;plain&#8221;):</p>
<ul>
<li>Use sections to separate different styles for different pages</li>
<li>Don&#8217;t use &#8220;Link with previous&#8221; in order to separate them</li>
<li>Use section-related fields (SectionPages instead of NumPages)</li>
<li>Set the &#8220;Start at&#8230;&#8221; option to get your page number right</li>
</ul>
<h1 id='Headings'>Headings</h1>
<p>Here is what LaTeX has learned me: write first, add other shit later. In other words, leave Table of Contents, Headings and other stuff AFTER you have finished your first draft. This is important for two reasons: a) you don&#8217;t get distracted and b) you don&#8217;t get distracted. There are two levels of distraction in Word, you either try to style your document when you really have to write, or you added a style to the entire paragraph instead of a sentence and you have do undo, select carefully the words you want and style them.</p>
<p>Have you ever styled a paragraph and start writing only to discover that it has the same style? Typical in word processors. Here is a quick tip: press Ctrl+Space before you start typing the next paragraph. Voila! No styling what so ever! In fact, select any text that has some sort of formatting (like bold) and hit Ctrl+Space. Voila again!</p>
<p>Anyway, probably the most useful style is the Headings, aside from Bold, Italics and Color. Or Text Direction, Bullets and Indention. Or Font Family, Font Size and Strikethrough. Or&#8230; Anyway, Headings are important.</p>
<p>Luckily, headings DON&#8217;T continue after you have pressed enter. Cool right? Well, this can be configured for any style in that fancy box of styles up there. Even more cool is that you can have a consistent style for all your headings without selecting one by one and changing them. Just right click on any style and select &#8220;Modify&#8221;.</p>
<div id="attachment_412" class="wp-caption aligncenter" style="width: 310px"><a href="http://pekalicious.com/blog/wp-content/uploads/2010/04/modify-style.png" rel="lightbox[407]"><img class="size-medium wp-image-412" src="http://pekalicious.com/blog/wp-content/uploads/2010/04/modify-style-300x111.png" alt="Modify Style" width="300" height="111" /></a><p class="wp-caption-text">Modify Style</p></div>
<p>Here you have a LOT of options. The &#8220;Style for following paragraph&#8221; will do the Enter trick. Feel free to change everything and see what happens.</p>
<p>Another important thing about the headings styles is that they are used to automatically create a table of contents. Add some Heading 1, 2 and 3 styles and then go to the &#8220;References&#8221; tab, click on the &#8220;Table of Contents&#8221; drop down and select one. Magic!</p>
<div id="attachment_413" class="wp-caption aligncenter" style="width: 310px"><a href="http://pekalicious.com/blog/wp-content/uploads/2010/04/table-of-contents.png" rel="lightbox[407]"><img class="size-medium wp-image-413" src="http://pekalicious.com/blog/wp-content/uploads/2010/04/table-of-contents-300x96.png" alt="Table of Contents" width="300" height="96" /></a><p class="wp-caption-text">Table of Contents</p></div>
<p>The cool thing about the table of contents is that you don&#8217;t have to write it yourself. Every time you add a new Headings style, simply click on it and hit the &#8220;Update Table&#8221; button.</p>
<div id="attachment_414" class="wp-caption aligncenter" style="width: 248px"><a href="http://pekalicious.com/blog/wp-content/uploads/2010/04/update-toc.png" rel="lightbox[407]"><img class="size-full wp-image-414" src="http://pekalicious.com/blog/wp-content/uploads/2010/04/update-toc.png" alt="Update Table of Contents" width="238" height="137" /></a><p class="wp-caption-text">Update Table of Contents</p></div>
<p>By the way, if you happen to loose a style (it doesn&#8217;t appear in the Quick Styles list on top) click on that little icon on the bottom right of the styles box to show the &#8220;Styles&#8221; window. Then click on the &#8220;Options&#8230;&#8221; on the bottom right of that window and select &#8220;All styles&#8221; in the &#8220;Select styles to show&#8221; drop down. Once you use the style it will appear again at the top. If it doesn&#8217;t, then right click on it, select &#8220;Modify&#8221; and check the &#8220;Add to Quick Style list&#8221;</p>
<div id="attachment_425" class="wp-caption aligncenter" style="width: 310px"><a href="http://pekalicious.com/blog/wp-content/uploads/2010/04/styles-config.png" rel="lightbox[407]"><img class="size-medium wp-image-425" title="styles-config" src="http://pekalicious.com/blog/wp-content/uploads/2010/04/styles-config-300x225.png" alt="Add Style to Quick List" width="300" height="225" /></a><p class="wp-caption-text">Add Style to Quick List</p></div>
<p>I love this Ctrl+S feature in WordPress!</p>
<p>Among the many options you have for formatting the Headings, the one you will likely need is numbering. Especially if you are in the academics field. To add numbering go to the &#8220;Format&#8221; drop down and select&#8230; erm&#8230; &#8220;Numbering&#8221;. Here you have a variety of options, but let&#8217;s make it more interesting. Select the simple numbering &#8220;1,2,3,&#8230;&#8221; and click &#8220;Define New Number Format&#8230;&#8221;. In the &#8220;Number format:&#8221; field, before the number, enter &#8220;Chapter &#8220;. Tada! All Headings start with Chapter. You can do the same for Headings 2 and enter &#8220;Section&#8221; etc.</p>
<div id="attachment_426" class="wp-caption aligncenter" style="width: 310px"><a href="http://pekalicious.com/blog/wp-content/uploads/2010/04/numbered-headings.png" rel="lightbox[407]"><img class="size-medium wp-image-426" title="numbered-headings" src="http://pekalicious.com/blog/wp-content/uploads/2010/04/numbered-headings-300x147.png" alt="Numbered Headings with Text" width="300" height="147" /></a><p class="wp-caption-text">Numbered Headings with Text</p></div>
<p>But wait, now the &#8220;Table of Contents&#8221; title says &#8220;Chapter 1. Table of Contents&#8221;. Surely we don&#8217;t want that. To fix this, simply&#8230; delete it! The next heading will automagically have the right number.</p>
<p><strong>Update</strong>: Turns out, <a title="Microsoft Word 2007: Numbered Headings Done Right - pekalicious" href="http://pekalicious.com/blog/microsoft-word-2007-numbered-headings-done-right/">there is a better way of numbering your headings</a>.</p>
<h3>Summary</h3>
<p>So, to summarize:</p>
<ul>
<li>First write, do other shit later</li>
<li>Use Headings to automatically generate Table of Contents</li>
<li>Modify the style instead of a specific heading</li>
<li>Optionally add number and text before the title</li>
</ul>
<h1 id='References'>References</h1>
<p>One of the best things in LaTeX is its simplicity of adding citations: just add &#8220;\cite{Name_of_Citation}&#8221; which you have already defined in a Bibtex file in the Bibtex format, insert it into your main document, compile twice and your done. OK, maybe I have done this 23098420938 times, but still, this will add a fancy &#8220;Bibliography&#8221; at the end of your document with correct numbering and format (APA, IEEE etc). There is also this amazing tool, <a title="JabRef" href="http://jabref.sourceforge.net/">JabRef</a>, that will help you.</p>
<p>Let&#8217;s do the same fancy thing in Word. First of all, you need to decide what style you will be using. If it&#8217;s APA, your OK, but if you are unlucky like me, it&#8217;s definitely IEEE. This is not included in 2007, but you can download it <a title="IEEE Citation Style for Word 2007 - Bibword" href="http://bibword.codeplex.com/releases/view/15365">here</a>. Copy the file in the %programfiles%\Microsoft Office\Office12\Bibliography\Style directory and restart Word. You should now see the IEEE in the drop down in the &#8220;References&#8221; tab.</p>
<div id="attachment_415" class="wp-caption aligncenter" style="width: 300px"><a href="http://pekalicious.com/blog/wp-content/uploads/2010/04/ieee-style.png" rel="lightbox[407]"><img class="size-full wp-image-415" src="http://pekalicious.com/blog/wp-content/uploads/2010/04/ieee-style.png" alt="IEEE Reference Style" width="290" height="244" /></a><p class="wp-caption-text">IEEE Reference Style</p></div>
<p>Let&#8217;s add some sources: click on &#8220;Manages Sources&#8221; and add some books. Good thing there is a Master List, this will save you in the long run.</p>
<div id="attachment_416" class="wp-caption aligncenter" style="width: 310px"><a href="http://pekalicious.com/blog/wp-content/uploads/2010/04/source-manager.png" rel="lightbox[407]"><img class="size-medium wp-image-416" src="http://pekalicious.com/blog/wp-content/uploads/2010/04/source-manager-300x205.png" alt="Source Manager" width="300" height="205" /></a><p class="wp-caption-text">Source Manager</p></div>
<p>Go at the end of any word, click the &#8220;Insert Citation&#8221; drop down and select your book. That&#8217;s it!</p>
<div id="attachment_417" class="wp-caption aligncenter" style="width: 205px"><a href="http://pekalicious.com/blog/wp-content/uploads/2010/04/insert-citation.png" rel="lightbox[407]"><img class="size-full wp-image-417" title="insert-citation" src="http://pekalicious.com/blog/wp-content/uploads/2010/04/insert-citation.png" alt="Insert Citation Menu" width="195" height="294" /></a><p class="wp-caption-text">Insert Citation Menu</p></div>
<p>If you use APA, you will see &#8220;(pek, My Boring Book, 2010)&#8221; or, if you use IEEE, you will see just a boring &#8220;[1]&#8220;. To create the bibliography at the end of your document, just click on the &#8220;Bibliography&#8221; drop down and select the style you want. This works the same way as Table of Contents, so if you see &#8220;Chapter X&#8221; simply delete it.</p>
<div id="attachment_418" class="wp-caption aligncenter" style="width: 310px"><a href="http://pekalicious.com/blog/wp-content/uploads/2010/04/bibliography.png" rel="lightbox[407]"><img class="size-medium wp-image-418" title="bibliography" src="http://pekalicious.com/blog/wp-content/uploads/2010/04/bibliography-300x123.png" alt="Bibliography" width="300" height="123" /></a><p class="wp-caption-text">Bibliography</p></div>
<p>That was easy. Even easier are footnotes. Just click on the &#8220;Add Footnote&#8221; button and enter your text.</p>
<div id="attachment_419" class="wp-caption aligncenter" style="width: 266px"><a href="http://pekalicious.com/blog/wp-content/uploads/2010/04/footnote.png" rel="lightbox[407]"><img class="size-medium wp-image-419" title="footnote" src="http://pekalicious.com/blog/wp-content/uploads/2010/04/footnote-256x300.png" alt="Footnote" width="256" height="300" /></a><p class="wp-caption-text">Footnote</p></div>
<p>To create the list of figures, you must insert captions. Not the ones where you try to position the text under an image and call it a caption, I mean real captions, as in, select the image, go to the &#8220;References&#8221; tab and click &#8220;Insert Caption&#8221;. Once you have done that to a couple of images, insert anywhere you want in the top of page 3 the table of figures by clicking &#8220;Insert Table of Figures&#8221;. Again, works the same way. Make sure not to delete the number that is automatically added, otherwise it will not show up in the Table of Figures.</p>
<div id="attachment_420" class="wp-caption aligncenter" style="width: 310px"><a href="http://pekalicious.com/blog/wp-content/uploads/2010/04/table-of-figures.png" rel="lightbox[407]"><img class="size-medium wp-image-420" title="table-of-figures" src="http://pekalicious.com/blog/wp-content/uploads/2010/04/table-of-figures-300x191.png" alt="Table of figures" width="300" height="191" /></a><p class="wp-caption-text">Table of figures</p></div>
<p>To cross-reference a section, a figure, a table, or any text, go anywhere and click &#8220;Cross-reference&#8221;. There are many options there, but I will focus on bookmarks. You can bookmark anything in a Word document by simply selecting it and clicking the &#8220;Bookmark&#8221; button in the &#8220;Insert&#8221; tab. Just enter the name of the bookmark and click &#8220;Add&#8221;. To cross-reference this select &#8220;Bookmark&#8221; in the &#8220;Reference Type&#8221; and then chose what to reference to in the &#8220;Insert reference to&#8221; drop down.</p>
<div id="attachment_421" class="wp-caption aligncenter" style="width: 310px"><a href="http://pekalicious.com/blog/wp-content/uploads/2010/04/bookmark.png" rel="lightbox[407]"><img class="size-medium wp-image-421" title="bookmark" src="http://pekalicious.com/blog/wp-content/uploads/2010/04/bookmark-300x119.png" alt="Bookmark" width="300" height="119" /></a><p class="wp-caption-text">Bookmark</p></div>
<p>Finally, we can create an Index page that lists all of our important words, like Donkey. Select a word or phrase, click on the &#8220;Mark Entry&#8221; in the &#8220;Reference&#8221; tab and then click &#8220;Mark&#8221; in the . This will add some gibberish next to the word and also show all kinds of stuff. These stuff can be hidden again by clicking the &#8220;Show/Hide Marks&#8221; in the &#8220;Home&#8221; tab. Once you are done creating all your entries, create the index page by clicking &#8220;Insert Index&#8221; in the &#8220;Reference&#8221; tab.</p>
<div id="attachment_427" class="wp-caption aligncenter" style="width: 310px"><a href="http://pekalicious.com/blog/wp-content/uploads/2010/04/index.png" rel="lightbox[407]"><img class="size-medium wp-image-427" title="index" src="http://pekalicious.com/blog/wp-content/uploads/2010/04/index-300x110.png" alt="Index" width="300" height="110" /></a><p class="wp-caption-text">Index</p></div>
<p>Have I mentioned how much I love WordPress&#8217; Ctrl+S?</p>
<h3>Summary</h3>
<p>That&#8217;s it for the references. Pretty simple I think. And here are your bullets:</p>
<ul>
<li>Citations, Table of figures and Index can all be created automatically</li>
<li>Use the &#8220;Insert Caption&#8221; instead of manually adding text under your image</li>
<li>Use &#8220;Bookmarks&#8221; to cross-reference anything in your document</li>
</ul>
<h1 id='General-Tips'>General Tips</h1>
<p>SAVE. SAVE SAVE SAVE SAVE. I can&#8217;t emphasize this enough. Make Ctrl+S a habit. And I&#8217;m not just talking about Microsoft Word; PowerPoint, notepad, trees, everything. Just save whenever you stop for more than 2 seconds.</p>
<p>First type and then style. Even when you want to bold a text. You will avoid &#8220;bolding&#8221; a lot of things. Just remember, in case of panic, use Ctrl+Space.</p>
<p>Use comments under the &#8220;Review&#8221; tab to remember things. Comments catch your eye easier than underlining a sentence.</p>
<h1 id='Conclusion'>Conclusion</h1>
<p>After finally figuring out the sections and citations, I started appreciating Word more. Of course, I still prefer LaTeX for my &#8220;serious&#8221; documents (see Cook Book), but now I can use Word for more than just drafts. And these are only the basics. I have yet to discover what this &#8220;Mailings&#8221; tab is or how to properly use the &#8220;Equation&#8221;.</p>
<p>Have fun.</p>
<p>And save.</p>
<ul class="socialwrap size32 row">
<li class="iconOnly"><a rel="nofollow" target="_blank" class="delicious" href="http://delicious.com/post?url=http%3A%2F%2Fpekalicious.com%2Fblog%2Fmicrosoft-word-made-simple%2F&amp;title=Microsoft+Word+2007+made+simple" title="Bookmark this post : Microsoft Word 2007 made simple on Delicious"><span class="head">Bookmark on Delicious</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="digg" href="http://digg.com/submit?url=http%3A%2F%2Fpekalicious.com%2Fblog%2Fmicrosoft-word-made-simple%2F&amp;title=Microsoft+Word+2007+made+simple&amp;bodytext=I+finally+figured+out+how+to+use+some+features+in+Microsoft+Word+2007.+Wanna+join+the+fun%3F+Read+after+the+jump%21%0D%0A%0D%0A%0D%0A%0D%0AIntroduction%0D%0A%5Btoc%3D%221%22+title%3D%22Table+of+Contents%22+%5D%0D%0AWhen+I+need+to+write+a+formal+document+%28like+my+thoughts+on+why+my+neighbors+feet+smell%29+I+usually+go+with+LaTeX.+Not+because+the+name+brings+interes" title="Digg this post : Microsoft Word 2007 made simple"><span class="head">Digg this post</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="facebook" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fpekalicious.com%2Fblog%2Fmicrosoft-word-made-simple%2F&amp;t=Microsoft+Word+2007+made+simple" title="Recommend this post : Microsoft Word 2007 made simple on Facebook"><span class="head">Recommend on Facebook</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="myspace" href="javascript:void(window.open('http://www.myspace.com/Modules/PostTo/Pages/?u='+encodeURIComponent(document.location.toString()),'ptm','height=450,width=440').focus())" title="Share this post : Microsoft Word 2007 made simple via MySpace"><span class="head">Share via MySpace</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="reddit" href="http://www.reddit.com/submit?url=http%3A%2F%2Fpekalicious.com%2Fblog%2Fmicrosoft-word-made-simple%2F&amp;title=Microsoft+Word+2007+made+simple" title="Share this post : Microsoft Word 2007 made simple on Reddit"><span class="head">share via Reddit</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="stumble" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fpekalicious.com%2Fblog%2Fmicrosoft-word-made-simple%2F&amp;title=Microsoft+Word+2007+made+simple" title="Share this post : Microsoft Word 2007 made simple with Stumblers"><span class="head">Share with Stumblers</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="tumblr" href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fpekalicious.com%2Fblog%2Fmicrosoft-word-made-simple%2F&amp;t=Microsoft+Word+2007+made+simple" title="Tumblr. this post : Microsoft Word 2007 made simple "><span class="head">Tumblr it</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="twitter" href="http://twitter.com/home/?status=Microsoft+Word+2007+made+simple+-+http%253A%252F%252Fpekalicious.com%252Fblog%252Fmicrosoft-word-made-simple%252F" title="Tweet this post : Microsoft Word 2007 made simple on Twitter"><span class="head">Tweet about it</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="" class="rss" href="http://pekalicious.com/blog/microsoft-word-made-simple/feed" title="Follow this post : Microsoft Word 2007 made simple comments"><span class="head">Subscribe to the comments on this post</span></a></li>
<li class="iconOnly"><a rel="" class="email" href="mailto:?subject=pekalicious : Microsoft Word 2007 made simple&#038;body=here is a link to a site I really like.   http://pekalicious.com/blog/microsoft-word-made-simple/" title="Tell a friend about this post : Microsoft Word 2007 made simple "><span class="head">Tell a friend</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="" class="print" href="javascript:window.print();" title="Print this post : Microsoft Word 2007 made simple for reading later"><span class="head">Print for later</span></a></li>
</ul>
<div class="clean"></div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/pekalicious?a=O2bAldrtKwU:1tNOwbRCJkY:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/pekalicious?i=O2bAldrtKwU:1tNOwbRCJkY:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/pekalicious?a=O2bAldrtKwU:1tNOwbRCJkY:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/pekalicious?i=O2bAldrtKwU:1tNOwbRCJkY:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/pekalicious?a=O2bAldrtKwU:1tNOwbRCJkY:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/pekalicious?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/pekalicious/~4/O2bAldrtKwU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://pekalicious.com/blog/microsoft-word-made-simple/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://pekalicious.com/blog/microsoft-word-made-simple/</feedburner:origLink></item>
		<item>
		<title>Anonymous Hypochondriac – Part I</title>
		<link>http://feedproxy.google.com/~r/pekalicious/~3/e4IMV6k76TY/</link>
		<comments>http://pekalicious.com/blog/anonymous-hypochondriac-part-i/#comments</comments>
		<pubDate>Fri, 23 Apr 2010 01:44:25 +0000</pubDate>
		<dc:creator>Panagiotis Peikidis</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Anonymous Hypochondriac]]></category>
		<category><![CDATA[writings]]></category>

		<guid isPermaLink="false">http://pekalicious.com/blog/?p=400</guid>
		<description><![CDATA[A hypochondriac is someone that will wake up in the middle of the night and take a long deep breath because he thought that for the last two minutes he wasn&#8217;t breathing at all. A hypochondriac is someone that will see a bruise a few inches above his right hip and think that it has [...]]]></description>
			<content:encoded><![CDATA[<p>A hypochondriac is someone that will wake up in the middle of the night and take a long deep breath because he thought that for the last two minutes he wasn&#8217;t breathing at all. A hypochondriac is someone that will see a bruise a few inches above his right hip and think that it has something to do with an STD while completely forgetting that he slept on an eraser at that exact same spot. A hypochondriac is someone that discovers a lump in his head and immediately panics until his girlfriend will tell him that it was always there.</p>
<p>One thing is for sure, a hypochondriac is someone that has no health problems what so ever. By the wise words of Mike Baldwin, the first step for a hypochondriac is to admit that he has no problem.</p>
<p>I am a hypochondriac and I have been sick more times than I have been healed. These are my stories.</p>
<p><span id="more-400"></span></p>
<p style="text-align: center;">-*-</p>
<p>The mind is a funny thing they say. Sometimes it will mess with you and sometimes you will mess with it.</p>
<p>Lately I had some sleeping problems. Everything began when Karla gave me her position at work so she could go on a trip in Italy. Why Italy? She was always curious what pizza tasted like in the country that invented it. Yes, she is a simple person.</p>
<p>She is also my best friend, my ex-love-of-my-life and my boss. Most people don&#8217;t believe this is even possible; including me. But the thing is, we were a couple before she was my boss and we were friends way before we were a couple. Or at least this is how I try to explain our relationship, hoping that nobody starts asking questions.</p>
<p>Anyway, I got double the amount of work with the same amount of procrastination. So work kept piling up until it was two weeks before Karla came back. That was when my mind woke me up: &#8220;Hey you. You must stop watching The Peep Show and get down to business. Here is a dose of adrenaline to help you.&#8221; The next five days were a living hell. I was working overtime with little to no sleep. It had occurred to me that I will not make it on time. And then Dani showed up.</p>
<p>One of the benefits of being a hypochondriac is that a lot of people get tired of your whining and after a while just ignore you entirely. Luckily Dani is not that kind of person. He is the closest friend I got and shares the same amount of interest for the things I like: stand up comedy, photography, comic books and LEGO. He is the only person who I can unleash my uncontrolable geekness without feeling that he lost interest in the middle of my sentence, like Karla. Sometimes I really have no idea why she even hangs out with me.</p>
<p>When Dani entered my office and saw me sleeping between two towers of papers he decided to help. Now, Dani is good at a lot of things: he knows what good stand up comedy is, he immediately understands what LEGO pieces are needed to build anything observed in nature and he can even judge a comic by its cover. What Dani is definitely not good at is taking responsibilities.</p>
<p>So when Dani decided to help me, all he really did is triple the height of those paper towers. Unfortunately, I was too tired to care. My first priority was to sleep as much as possible, which proved harder than I thought.</p>
<p>As anyone that hasn&#8217;t slept for more than 40 hours can tell you, when you finally lye down your heart rate increases because it is under a lot of stress. A heart rate that fast will keep you awake until it relaxes. But if you don&#8217;t have enough time you end up going back to work with a mere one hour sleep. That is when I started thinking that I maybe have insomnia.</p>
<p>Every night I was anxious to get enough sleep and because of that anxious I couldn&#8217;t! For a couple of days I couldn&#8217;t remember how much I slept the night before or if I slept at all. I was a zombie at work and a vampire at night. A Vampire-zombie? Then one day Dani came and told me the &#8220;good&#8221; news.</p>
<p>I haven&#8217;t told you the whole story with Karla. Probably because it&#8217;s a long one. But what you need to know is that I always thought that no matter how many relationships she will have, we would one day end up together. We even had those talks every 2-year-old couple has. You know, the one where she makes you say that you will always be together even though, at that moment, you aren&#8217;t even sure if you will be together tomorrow and then you finally realize that you did want to be together, only now its too late because you broke up two weeks ago and she has moved on with one of your most hated friends? Yeah, that talk.</p>
<p>So when Dani came to me and said &#8220;Ross proposed to Karla&#8221; I wasn&#8217;t sure whether I fainted because of that or because I haven&#8217;t slept for a month.</p>
<p>I woke up with Dani&#8217;s arms wrapped around me. I never noticed how loud he snorred. Then I realized, I finally slept!</p>
<p>- &#8220;Dani, Dani, wake up! Wake up man!&#8221;<br />
- &#8220;What?&#8221;<br />
- &#8220;Dani, I finally slept!&#8221;<br />
- &#8220;Well, I still am.&#8221;<br />
- &#8220;Wake up, I wanna know how many hours I was sleeping. What time is it?&#8221;<br />
- &#8220;Dude, the clock is right in front of you.&#8221;<br />
- &#8220;Eight in the morning? Awesome! What time did I go to sleep?&#8221;<br />
- &#8220;You didn&#8217;t. You passed out. And so will I.&#8221;</p>
<p>And that&#8217;s when I remembered. Ross and Karla are gonna get married.</p>
<p>Of all the people in the world, she chose Ross. Sometimes I think that she did this only to get on my nerves. But after so many failed attempts I started to realize how over she is with me. And yet, even though we almost don&#8217;t have anything in common, even though she keeps pushing me to start a conversation, even though I never go out with her, she still calls everyday to see what&#8217;s up, she still finds time to meet me and she still is there for me in every panic attack. Yet, she is going to marry Ross.</p>
<p>Now is a good time to start smoking again.</p>
<ul class="socialwrap size32 row">
<li class="iconOnly"><a rel="nofollow" target="_blank" class="delicious" href="http://delicious.com/post?url=http%3A%2F%2Fpekalicious.com%2Fblog%2Fanonymous-hypochondriac-part-i%2F&amp;title=Anonymous+Hypochondriac+%26%238211%3B+Part+I" title="Bookmark this post : Anonymous Hypochondriac &#8211; Part I on Delicious"><span class="head">Bookmark on Delicious</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="digg" href="http://digg.com/submit?url=http%3A%2F%2Fpekalicious.com%2Fblog%2Fanonymous-hypochondriac-part-i%2F&amp;title=Anonymous+Hypochondriac+%26%238211%3B+Part+I&amp;bodytext=A+hypochondriac+is+someone+that+will+wake+up+in+the+middle+of+the+night+and+take+a+long+deep+breath+because+he+thought+that+for+the+last+two+minutes+he+wasn%27t+breathing+at+all.+A+hypochondriac+is+someone+that+will+see+a+bruise+a+few+inches+above+his+right+hip+and+think+that+it+has+something+to+do+with+an+STD+while+comp" title="Digg this post : Anonymous Hypochondriac &#8211; Part I"><span class="head">Digg this post</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="facebook" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fpekalicious.com%2Fblog%2Fanonymous-hypochondriac-part-i%2F&amp;t=Anonymous+Hypochondriac+%26%238211%3B+Part+I" title="Recommend this post : Anonymous Hypochondriac &#8211; Part I on Facebook"><span class="head">Recommend on Facebook</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="myspace" href="javascript:void(window.open('http://www.myspace.com/Modules/PostTo/Pages/?u='+encodeURIComponent(document.location.toString()),'ptm','height=450,width=440').focus())" title="Share this post : Anonymous Hypochondriac &#8211; Part I via MySpace"><span class="head">Share via MySpace</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="reddit" href="http://www.reddit.com/submit?url=http%3A%2F%2Fpekalicious.com%2Fblog%2Fanonymous-hypochondriac-part-i%2F&amp;title=Anonymous+Hypochondriac+%26%238211%3B+Part+I" title="Share this post : Anonymous Hypochondriac &#8211; Part I on Reddit"><span class="head">share via Reddit</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="stumble" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fpekalicious.com%2Fblog%2Fanonymous-hypochondriac-part-i%2F&amp;title=Anonymous+Hypochondriac+%26%238211%3B+Part+I" title="Share this post : Anonymous Hypochondriac &#8211; Part I with Stumblers"><span class="head">Share with Stumblers</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="tumblr" href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fpekalicious.com%2Fblog%2Fanonymous-hypochondriac-part-i%2F&amp;t=Anonymous+Hypochondriac+%26%238211%3B+Part+I" title="Tumblr. this post : Anonymous Hypochondriac &#8211; Part I "><span class="head">Tumblr it</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="twitter" href="http://twitter.com/home/?status=Anonymous+Hypochondriac+%26%238211%3B+Part+I+-+http%253A%252F%252Fpekalicious.com%252Fblog%252Fanonymous-hypochondriac-part-i%252F" title="Tweet this post : Anonymous Hypochondriac &#8211; Part I on Twitter"><span class="head">Tweet about it</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="" class="rss" href="http://pekalicious.com/blog/anonymous-hypochondriac-part-i/feed" title="Follow this post : Anonymous Hypochondriac &#8211; Part I comments"><span class="head">Subscribe to the comments on this post</span></a></li>
<li class="iconOnly"><a rel="" class="email" href="mailto:?subject=pekalicious : Anonymous Hypochondriac &#8211; Part I&#038;body=here is a link to a site I really like.   http://pekalicious.com/blog/anonymous-hypochondriac-part-i/" title="Tell a friend about this post : Anonymous Hypochondriac &#8211; Part I "><span class="head">Tell a friend</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="" class="print" href="javascript:window.print();" title="Print this post : Anonymous Hypochondriac &#8211; Part I for reading later"><span class="head">Print for later</span></a></li>
</ul>
<div class="clean"></div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/pekalicious?a=e4IMV6k76TY:P7q39fsyBUc:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/pekalicious?i=e4IMV6k76TY:P7q39fsyBUc:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/pekalicious?a=e4IMV6k76TY:P7q39fsyBUc:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/pekalicious?i=e4IMV6k76TY:P7q39fsyBUc:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/pekalicious?a=e4IMV6k76TY:P7q39fsyBUc:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/pekalicious?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/pekalicious/~4/e4IMV6k76TY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://pekalicious.com/blog/anonymous-hypochondriac-part-i/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://pekalicious.com/blog/anonymous-hypochondriac-part-i/</feedburner:origLink></item>
		<item>
		<title>Introducing ‘JSpriteSheetCreator’</title>
		<link>http://feedproxy.google.com/~r/pekalicious/~3/_iLNX2v0ZbI/</link>
		<comments>http://pekalicious.com/blog/introducing-jspritesheetcreator/#comments</comments>
		<pubDate>Fri, 16 Oct 2009 18:48:51 +0000</pubDate>
		<dc:creator>Panagiotis Peikidis</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[game programming]]></category>

		<guid isPermaLink="false">http://pekalicious.com/blog/?p=392</guid>
		<description><![CDATA[One of the first things you will need when developing a 2D game will be a sprite class. This sprite class will eventually need to handle animations. So what do you do? As any prototyping tool you develop, you go look for free graphic resources. Unfortunately, most animated sprites are in a gif format. So [...]]]></description>
			<content:encoded><![CDATA[<p>One of the first things you will need when developing a 2D game will be a sprite class. This sprite class will eventually need to handle animations. So what do you do? As any prototyping tool you develop, you go look for free graphic resources. Unfortunately, most animated sprites are in a gif format. So now you need something that will convert that into a single sprite sheet. Here is where JSpriteSheetCreator comes.</p>
<p><span id="more-392"></span></p>
<p>Either my google-fu isn&#8217;t what it used to or a demand for such an utility isn&#8217;t what I had imagined. I&#8217;m talking about a small application that will take an animated gif file and turn it into a single sprite sheet. Let me rephrase that to make it a little more clear: JSpriteSheetCreator will convert a file <span style="text-decoration: underline;"><strong>FROM</strong></span> an <span style="text-decoration: underline;">animated gif</span> <span style="color: #ff0000;"><span style="text-decoration: underline;"><strong>TO</strong></span></span> a <span style="text-decoration: underline;">single png sprite sheet</span>.</p>
<p>Yeah&#8230; I repeat that because searching for &#8220;<a href="http://www.google.com/search?q=convert+gif+to+single+sprite+sheet">convert gif to single sprite sheet</a>&#8221; or &#8220;<a href="http://www.google.com/search?q=from+gif+&quot;to+sprite+sheet&quot;">from gif &#8220;to sprite sheet&#8221;</a>&#8221; or &#8220;<a href="http://www.google.com/search?q=sprite+sheet+converter">sprite sheet converter</a>&#8221; or &#8220;<a href="http://www.google.com/search?q=FOR+GOD+SAKES+I+NEED+TO+CONVERT+A+GIF+TO+A+PNG">&lt;other search you think will work&gt;</a>&#8221; and any other combination of words I looked for didn&#8217;t work. Google kept returning from sprite sheet to gif. Which is kind of weird because, as I see it, in games, you have better control of the animation with a sprite sheet than a gif. On the other hand, making an animated gif is probably useful for many other reasons.</p>
<p>Anyway, the only application that I finally found was <a title="Avi4BMP" href="http://www.bottomap.com/Software/A4B/A4B.html">Avi4Bmp</a>. Which does the basic job of converting from an animated gif to a png and vise versa pretty good. But I have more ideas for such a tool.</p>
<p>Initially, JSpriteSheetCreator will do just that. But in my next iteration I will add support for reordering the frames and of course import/export <a href="http://www.ziggyware.com/readarticle.php?article_id=138">xml animation data</a> (<strong>WARNING</strong>: as of this time, google will tell you that ziggyware is an attack site. <a href="http://forums.xna.com/forums/p/40420/236290.aspx">They are probably hacked</a> so make sure you know what you are doing i.e. use <a href="https://addons.mozilla.org/en-US/firefox/addon/1865">AdBlock</a> and/or <a href="https://addons.mozilla.org/en-US/firefox/addon/722">NoScript</a>) that will help integrate this into a game developers workflow.</p>
<p>As any other utility I develop, I am hosting this in my own server. You can find it under my <a href="http://pekalicious.com/javacorner">Java Corner</a>. You can even run it without downloading it with Web Start (provided you trust me). You can also find the source code.</p>
<p>Of course, I would like to thank Kevin Weiner for his ultra slim <a href="http://www.fmsware.com/stuff/gif.html">GifDecoder</a> class.</p>
<p>Enjoy!</p>
<ul class="socialwrap size32 row">
<li class="iconOnly"><a rel="nofollow" target="_blank" class="delicious" href="http://delicious.com/post?url=http%3A%2F%2Fpekalicious.com%2Fblog%2Fintroducing-jspritesheetcreator%2F&amp;title=Introducing+%26%238216%3BJSpriteSheetCreator%26%238217%3B" title="Bookmark this post : Introducing &#8216;JSpriteSheetCreator&#8217; on Delicious"><span class="head">Bookmark on Delicious</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="digg" href="http://digg.com/submit?url=http%3A%2F%2Fpekalicious.com%2Fblog%2Fintroducing-jspritesheetcreator%2F&amp;title=Introducing+%26%238216%3BJSpriteSheetCreator%26%238217%3B&amp;bodytext=One+of+the+first+things+you+will+need+when+developing+a+2D+game+will+be+a+sprite+class.+This+sprite+class+will+eventually+need+to+handle+animations.+So+what+do+you+do%3F+As+any+prototyping+tool+you+develop%2C+you+go+look+for+free+graphic+resources.+Unfortunately%2C+most+animated+sprites+are+in+a+gif+format.+So+now+you+need+s" title="Digg this post : Introducing &#8216;JSpriteSheetCreator&#8217;"><span class="head">Digg this post</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="facebook" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fpekalicious.com%2Fblog%2Fintroducing-jspritesheetcreator%2F&amp;t=Introducing+%26%238216%3BJSpriteSheetCreator%26%238217%3B" title="Recommend this post : Introducing &#8216;JSpriteSheetCreator&#8217; on Facebook"><span class="head">Recommend on Facebook</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="myspace" href="javascript:void(window.open('http://www.myspace.com/Modules/PostTo/Pages/?u='+encodeURIComponent(document.location.toString()),'ptm','height=450,width=440').focus())" title="Share this post : Introducing &#8216;JSpriteSheetCreator&#8217; via MySpace"><span class="head">Share via MySpace</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="reddit" href="http://www.reddit.com/submit?url=http%3A%2F%2Fpekalicious.com%2Fblog%2Fintroducing-jspritesheetcreator%2F&amp;title=Introducing+%26%238216%3BJSpriteSheetCreator%26%238217%3B" title="Share this post : Introducing &#8216;JSpriteSheetCreator&#8217; on Reddit"><span class="head">share via Reddit</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="stumble" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fpekalicious.com%2Fblog%2Fintroducing-jspritesheetcreator%2F&amp;title=Introducing+%26%238216%3BJSpriteSheetCreator%26%238217%3B" title="Share this post : Introducing &#8216;JSpriteSheetCreator&#8217; with Stumblers"><span class="head">Share with Stumblers</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="tumblr" href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fpekalicious.com%2Fblog%2Fintroducing-jspritesheetcreator%2F&amp;t=Introducing+%26%238216%3BJSpriteSheetCreator%26%238217%3B" title="Tumblr. this post : Introducing &#8216;JSpriteSheetCreator&#8217; "><span class="head">Tumblr it</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="twitter" href="http://twitter.com/home/?status=Introducing+%26%238216%3BJSpriteSheetCreator%26%238217%3B+-+http%253A%252F%252Fpekalicious.com%252Fblog%252Fintroducing-jspritesheetcreator%252F" title="Tweet this post : Introducing &#8216;JSpriteSheetCreator&#8217; on Twitter"><span class="head">Tweet about it</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="" class="rss" href="http://pekalicious.com/blog/introducing-jspritesheetcreator/feed" title="Follow this post : Introducing &#8216;JSpriteSheetCreator&#8217; comments"><span class="head">Subscribe to the comments on this post</span></a></li>
<li class="iconOnly"><a rel="" class="email" href="mailto:?subject=pekalicious : Introducing &#8216;JSpriteSheetCreator&#8217;&#038;body=here is a link to a site I really like.   http://pekalicious.com/blog/introducing-jspritesheetcreator/" title="Tell a friend about this post : Introducing &#8216;JSpriteSheetCreator&#8217; "><span class="head">Tell a friend</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="" class="print" href="javascript:window.print();" title="Print this post : Introducing &#8216;JSpriteSheetCreator&#8217; for reading later"><span class="head">Print for later</span></a></li>
</ul>
<div class="clean"></div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/pekalicious?a=_iLNX2v0ZbI:mDKrveTrsXI:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/pekalicious?i=_iLNX2v0ZbI:mDKrveTrsXI:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/pekalicious?a=_iLNX2v0ZbI:mDKrveTrsXI:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/pekalicious?i=_iLNX2v0ZbI:mDKrveTrsXI:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/pekalicious?a=_iLNX2v0ZbI:mDKrveTrsXI:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/pekalicious?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/pekalicious/~4/_iLNX2v0ZbI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://pekalicious.com/blog/introducing-jspritesheetcreator/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://pekalicious.com/blog/introducing-jspritesheetcreator/</feedburner:origLink></item>
		<item>
		<title>Introducing ‘Flickr Fullscreen Scroller’</title>
		<link>http://feedproxy.google.com/~r/pekalicious/~3/jKghjVfqt_Q/</link>
		<comments>http://pekalicious.com/blog/introducing-flickr-fullscreen-scroller/#comments</comments>
		<pubDate>Sun, 10 May 2009 17:00:28 +0000</pubDate>
		<dc:creator>Panagiotis Peikidis</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[flickr]]></category>
		<category><![CDATA[flickr api]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[one-night-stand]]></category>
		<category><![CDATA[project]]></category>

		<guid isPermaLink="false">http://pekalicious.com/blog/?p=340</guid>
		<description><![CDATA[After playing around with Twitter&#8217;s API, I decided to take a look at Flickr&#8217;s API as well. Nothing special, just something I wanted for myself and decided to extend it for general purpose. So today’s one-night-stand is called… Flickr FullScreen Scroller. It is a web app that shows the photos of a Flickr user account [...]]]></description>
			<content:encoded><![CDATA[<p>After <a title="Twitter Followers Checker - pekalicious" href="http://pekalicious.com/blog/introducing-twitter-followers-checker/" target="_blank">playing around with Twitter&#8217;s API</a>, I decided to take a look at <a title="Flickr API" href="http://www.flickr.com/services/api/" target="_blank">Flickr&#8217;s API</a> as well. Nothing special, just something I wanted for myself and decided to extend it for general purpose. </p>
<p> <span id="more-340"></span>So today’s one-night-stand is called… <a title="Flickr Fullscreen Scroller - pekalicious" href="http://pekalicious.com/flickrfullscreenscroller/" target="_blank">Flickr FullScreen Scroller</a>. It is a web app that shows the photos of a Flickr user account in full-screen. Use left or right arrow keys to navigate threw the photos (left mouse click will also move to the next photo).
</p>
<p>There are <a title="Flickr Full Screen - Google" href="http://www.google.com/search?q=flickr+full+screen" target="_blank">many many fullscreen Flickr slide shows</a> out there, including an <a title="New Flickr Slideshow - To the Pic" href="http://www.tothepc.com/archives/new-flickr-slideshow-embed-view-fullscreen-more/" target="_blank">official one from Flickr</a>, but:</p>
<ol type="a">
<li>Most of them don&#8217;t maximize photos to actual full-screen (as in, fill the entire viewport). They have mirror effects on the bottom, or controls on the top, or arrow overlays etc. I wanted a totally clean interface. </li>
<li>Most of them where slide shows. I wanted to manually browse through the photos. </li>
<li>I wanted the photos to be one next to the other and not one after the other (does that even makes sense?). </li>
<li>They weren&#8217;t developed by me. Everything else is just an excuse. </li>
</ol>
<p>So enjoy!</p>
</p>
<ul class="socialwrap size32 row">
<li class="iconOnly"><a rel="nofollow" target="_blank" class="delicious" href="http://delicious.com/post?url=http%3A%2F%2Fpekalicious.com%2Fblog%2Fintroducing-flickr-fullscreen-scroller%2F&amp;title=Introducing+%26%238216%3BFlickr+Fullscreen+Scroller%26%238217%3B" title="Bookmark this post : Introducing &#8216;Flickr Fullscreen Scroller&#8217; on Delicious"><span class="head">Bookmark on Delicious</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="digg" href="http://digg.com/submit?url=http%3A%2F%2Fpekalicious.com%2Fblog%2Fintroducing-flickr-fullscreen-scroller%2F&amp;title=Introducing+%26%238216%3BFlickr+Fullscreen+Scroller%26%238217%3B&amp;bodytext=After+playing+around+with+Twitter%27s+API%2C+I+decided+to+take+a+look+at+Flickr%27s+API+as+well.+Nothing+special%2C+just+something+I+wanted+for+myself+and+decided+to+extend+it+for+general+purpose.++So+today%E2%80%99s+one-night-stand+is+called%E2%80%A6+Flickr+FullScreen+Scroller.+It+is+a+web+app+that+shows+the+photos+of+a+Flickr+user+accou" title="Digg this post : Introducing &#8216;Flickr Fullscreen Scroller&#8217;"><span class="head">Digg this post</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="facebook" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fpekalicious.com%2Fblog%2Fintroducing-flickr-fullscreen-scroller%2F&amp;t=Introducing+%26%238216%3BFlickr+Fullscreen+Scroller%26%238217%3B" title="Recommend this post : Introducing &#8216;Flickr Fullscreen Scroller&#8217; on Facebook"><span class="head">Recommend on Facebook</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="myspace" href="javascript:void(window.open('http://www.myspace.com/Modules/PostTo/Pages/?u='+encodeURIComponent(document.location.toString()),'ptm','height=450,width=440').focus())" title="Share this post : Introducing &#8216;Flickr Fullscreen Scroller&#8217; via MySpace"><span class="head">Share via MySpace</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="reddit" href="http://www.reddit.com/submit?url=http%3A%2F%2Fpekalicious.com%2Fblog%2Fintroducing-flickr-fullscreen-scroller%2F&amp;title=Introducing+%26%238216%3BFlickr+Fullscreen+Scroller%26%238217%3B" title="Share this post : Introducing &#8216;Flickr Fullscreen Scroller&#8217; on Reddit"><span class="head">share via Reddit</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="stumble" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fpekalicious.com%2Fblog%2Fintroducing-flickr-fullscreen-scroller%2F&amp;title=Introducing+%26%238216%3BFlickr+Fullscreen+Scroller%26%238217%3B" title="Share this post : Introducing &#8216;Flickr Fullscreen Scroller&#8217; with Stumblers"><span class="head">Share with Stumblers</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="tumblr" href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fpekalicious.com%2Fblog%2Fintroducing-flickr-fullscreen-scroller%2F&amp;t=Introducing+%26%238216%3BFlickr+Fullscreen+Scroller%26%238217%3B" title="Tumblr. this post : Introducing &#8216;Flickr Fullscreen Scroller&#8217; "><span class="head">Tumblr it</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="twitter" href="http://twitter.com/home/?status=Introducing+%26%238216%3BFlickr+Fullscreen+Scroller%26%238217%3B+-+http%253A%252F%252Fpekalicious.com%252Fblog%252Fintroducing-flickr-fullscreen-scroller%252F" title="Tweet this post : Introducing &#8216;Flickr Fullscreen Scroller&#8217; on Twitter"><span class="head">Tweet about it</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="" class="rss" href="http://pekalicious.com/blog/introducing-flickr-fullscreen-scroller/feed" title="Follow this post : Introducing &#8216;Flickr Fullscreen Scroller&#8217; comments"><span class="head">Subscribe to the comments on this post</span></a></li>
<li class="iconOnly"><a rel="" class="email" href="mailto:?subject=pekalicious : Introducing &#8216;Flickr Fullscreen Scroller&#8217;&#038;body=here is a link to a site I really like.   http://pekalicious.com/blog/introducing-flickr-fullscreen-scroller/" title="Tell a friend about this post : Introducing &#8216;Flickr Fullscreen Scroller&#8217; "><span class="head">Tell a friend</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="" class="print" href="javascript:window.print();" title="Print this post : Introducing &#8216;Flickr Fullscreen Scroller&#8217; for reading later"><span class="head">Print for later</span></a></li>
</ul>
<div class="clean"></div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/pekalicious?a=jKghjVfqt_Q:_kbS6jWhHs0:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/pekalicious?i=jKghjVfqt_Q:_kbS6jWhHs0:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/pekalicious?a=jKghjVfqt_Q:_kbS6jWhHs0:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/pekalicious?i=jKghjVfqt_Q:_kbS6jWhHs0:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/pekalicious?a=jKghjVfqt_Q:_kbS6jWhHs0:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/pekalicious?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/pekalicious/~4/jKghjVfqt_Q" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://pekalicious.com/blog/introducing-flickr-fullscreen-scroller/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://pekalicious.com/blog/introducing-flickr-fullscreen-scroller/</feedburner:origLink></item>
		<item>
		<title>Introducing ‘Strip to Print’</title>
		<link>http://feedproxy.google.com/~r/pekalicious/~3/xFAasEGZ-2A/</link>
		<comments>http://pekalicious.com/blog/introducing-strip-to-print/#comments</comments>
		<pubDate>Sat, 09 May 2009 17:00:55 +0000</pubDate>
		<dc:creator>Panagiotis Peikidis</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[print]]></category>
		<category><![CDATA[project]]></category>

		<guid isPermaLink="false">http://pekalicious.com/blog/?p=332</guid>
		<description><![CDATA[Have you ever wanted to print a website but only part of it? Especially from a blog. Remove the comments, the navigation menu, the footer; basically everything else other than the post itself. Well, I can think of at least one website that I want to print right now. And, as any programming geek would [...]]]></description>
			<content:encoded><![CDATA[<p>Have you ever wanted to print a website but only part of it? Especially from a blog. Remove the comments, the navigation menu, the footer; basically everything else other than the post itself. Well, I can think of at least <a title="Lighting 101 - Strobist" href="http://strobist.blogspot.com/2006/03/lighting-101.html" target="_blank">one website that I want to print</a> right now. And, as any programming geek would think, the easiest way I found to do so is by creating a small tool.</p>
<p><span id="more-332"></span>So I give you <a title="Strip to Print - pekalicious" href="http://pekalicious.com/striptoprint/" target="_blank">Strip to Print</a>! A tool that will only display the HTML part that you want. It&#8217;s very simple: You enter the URL, the tag that contains the HTML code and then you &#8220;Strip!&#8221; it. For example, enter &#8220;http://pekalicious.com/blog/sharing-the-pae8397-short-film-script/&#8221; as the URL and leave the &#8220;.post&#8221; in the next textfield (or simply click <a title="Strip to Print - Demo" href="http://localhost/striptoprint/index.php?url=http://pekalicious.com/blog/sharing-the-pae8397-short-film-script/&amp;id=.post" target="_blank">here</a>). Click &#8220;Strip!&#8221; and observe the article from my blog striped and ready to be printed.</p>
<p>The hardest part is finding the tag you want. I may add a small DOM selector in the future, but for the time being (and probably for a long time) I recommend Firefox&#8217;s <a title="DOM Inspector - Firefox Addon" href="https://addons.mozilla.org/en-US/firefox/addon/6622" target="_blank">DOM Inspector</a>. I personally use this to find the id, class or DOM path of any website. Warning: <strong><span style="text-decoration: underline;">every matched tag will be displayed</span></strong>. Depending on what you want, this may be desirable or not. For example, enter the &#8220;https://addons.mozilla.org/en-US/firefox/browse/type:1/cat:72?sort=newest&#8221; URL and use &#8220;.addon&#8221; as the tag (or click <a title="Strip to Print - Demo 2" href="http://pekalicious.com/striptoprint/?url=https://addons.mozilla.org/en-US/firefox/browse/type:1/cat:72?sort=newest&amp;id=.addon" target="_blank">here</a>). This will strip all addon DIVs from Firefox&#8217;s addon site. Also notice that a lot are missing (styles, images etc). I said, this is a very basic tool.</p>
<p>Currently I know that WordPress and Blogger use the &#8220;.post&#8221; id while Wikipedia uses the &#8220;.content&#8221; id. Post a comment if you have found a useful id.</p>
<p>Also, under the &#8220;Strip!&#8221; button there is a <a title="Bookmarklet - Wikipedia" href="http://en.wikipedia.org/wiki/Bookmarklet" target="_blank">bookmarklet</a> you can use to quickly access this tool. Just drag and drop the link to your bookmarks toolbar. Now, whenever you want to strip a website click this bookmark, enter the tag and &#8220;Strip!&#8221; it.</p>
<p>Finally, here are two applications I recommend using along with this tool:</p>
<ul>
<li><a title="CutePDF Writer - Acro Software Inc." href="http://www.cutepdf.com/Products/CutePDF/writer.asp" target="_blank">CutePDF Writer</a> will install itself as a printer in your computer. This will allow you to print anything into a pdf.</li>
<li>And once you have a collection of pdf&#8217;s, you can use the <a title="PDF Sam" href="http://www.pdfsam.org/" target="_blank">PDF Sam</a> application to merge them into one.</li>
</ul>
<p>That&#8217;s it. Enjoy!</p>
<ul class="socialwrap size32 row">
<li class="iconOnly"><a rel="nofollow" target="_blank" class="delicious" href="http://delicious.com/post?url=http%3A%2F%2Fpekalicious.com%2Fblog%2Fintroducing-strip-to-print%2F&amp;title=Introducing+%26%238216%3BStrip+to+Print%26%238217%3B" title="Bookmark this post : Introducing &#8216;Strip to Print&#8217; on Delicious"><span class="head">Bookmark on Delicious</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="digg" href="http://digg.com/submit?url=http%3A%2F%2Fpekalicious.com%2Fblog%2Fintroducing-strip-to-print%2F&amp;title=Introducing+%26%238216%3BStrip+to+Print%26%238217%3B&amp;bodytext=Have+you+ever+wanted+to+print+a+website+but+only+part+of+it%3F+Especially+from+a+blog.+Remove+the+comments%2C+the+navigation+menu%2C+the+footer%3B+basically+everything+else+other+than+the+post+itself.+Well%2C+I+can+think+of+at+least+one+website+that+I+want+to+print+right+now.+And%2C+as+any+programming+geek+would+think%2C+the+easiest" title="Digg this post : Introducing &#8216;Strip to Print&#8217;"><span class="head">Digg this post</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="facebook" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fpekalicious.com%2Fblog%2Fintroducing-strip-to-print%2F&amp;t=Introducing+%26%238216%3BStrip+to+Print%26%238217%3B" title="Recommend this post : Introducing &#8216;Strip to Print&#8217; on Facebook"><span class="head">Recommend on Facebook</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="myspace" href="javascript:void(window.open('http://www.myspace.com/Modules/PostTo/Pages/?u='+encodeURIComponent(document.location.toString()),'ptm','height=450,width=440').focus())" title="Share this post : Introducing &#8216;Strip to Print&#8217; via MySpace"><span class="head">Share via MySpace</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="reddit" href="http://www.reddit.com/submit?url=http%3A%2F%2Fpekalicious.com%2Fblog%2Fintroducing-strip-to-print%2F&amp;title=Introducing+%26%238216%3BStrip+to+Print%26%238217%3B" title="Share this post : Introducing &#8216;Strip to Print&#8217; on Reddit"><span class="head">share via Reddit</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="stumble" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fpekalicious.com%2Fblog%2Fintroducing-strip-to-print%2F&amp;title=Introducing+%26%238216%3BStrip+to+Print%26%238217%3B" title="Share this post : Introducing &#8216;Strip to Print&#8217; with Stumblers"><span class="head">Share with Stumblers</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="tumblr" href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fpekalicious.com%2Fblog%2Fintroducing-strip-to-print%2F&amp;t=Introducing+%26%238216%3BStrip+to+Print%26%238217%3B" title="Tumblr. this post : Introducing &#8216;Strip to Print&#8217; "><span class="head">Tumblr it</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="twitter" href="http://twitter.com/home/?status=Introducing+%26%238216%3BStrip+to+Print%26%238217%3B+-+http%253A%252F%252Fpekalicious.com%252Fblog%252Fintroducing-strip-to-print%252F" title="Tweet this post : Introducing &#8216;Strip to Print&#8217; on Twitter"><span class="head">Tweet about it</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="" class="rss" href="http://pekalicious.com/blog/introducing-strip-to-print/feed" title="Follow this post : Introducing &#8216;Strip to Print&#8217; comments"><span class="head">Subscribe to the comments on this post</span></a></li>
<li class="iconOnly"><a rel="" class="email" href="mailto:?subject=pekalicious : Introducing &#8216;Strip to Print&#8217;&#038;body=here is a link to a site I really like.   http://pekalicious.com/blog/introducing-strip-to-print/" title="Tell a friend about this post : Introducing &#8216;Strip to Print&#8217; "><span class="head">Tell a friend</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="" class="print" href="javascript:window.print();" title="Print this post : Introducing &#8216;Strip to Print&#8217; for reading later"><span class="head">Print for later</span></a></li>
</ul>
<div class="clean"></div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/pekalicious?a=xFAasEGZ-2A:0ve1Z_NAkm8:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/pekalicious?i=xFAasEGZ-2A:0ve1Z_NAkm8:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/pekalicious?a=xFAasEGZ-2A:0ve1Z_NAkm8:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/pekalicious?i=xFAasEGZ-2A:0ve1Z_NAkm8:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/pekalicious?a=xFAasEGZ-2A:0ve1Z_NAkm8:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/pekalicious?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/pekalicious/~4/xFAasEGZ-2A" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://pekalicious.com/blog/introducing-strip-to-print/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://pekalicious.com/blog/introducing-strip-to-print/</feedburner:origLink></item>
		<item>
		<title>Sharing the ‘PAE8397′ short film script</title>
		<link>http://feedproxy.google.com/~r/pekalicious/~3/K-1fpzYWHzE/</link>
		<comments>http://pekalicious.com/blog/sharing-the-pae8397-short-film-script/#comments</comments>
		<pubDate>Mon, 04 May 2009 17:33:50 +0000</pubDate>
		<dc:creator>Panagiotis Peikidis</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[film]]></category>
		<category><![CDATA[project]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[short]]></category>

		<guid isPermaLink="false">http://pekalicious.com/blog/?p=289</guid>
		<description><![CDATA[Have you ever started something with your friends and had to leave it because it turns out, nobody was as excited as you were? What did you do about it? Well, I decided to share it. In my case it was a short film. And the thing about short films (and films in general) is [...]]]></description>
			<content:encoded><![CDATA[<p>Have you ever started something with your friends and had to leave it because it turns out, nobody was as excited as you were? What did you do about it?</p>
<p>Well, I decided to share it.</p>
<p><span id="more-289"></span></p>
<p>In my case it was a short film. And the thing about short films (and films in general) is that they involve actors. And if you are anything like me, then the only real acting you can do is merely a cameo. Which means that you really need actors. But here is the catch: it&#8217;s a low-to-no budget film. And just like any other non-profit effort, it means that people that are going to be involved must be at least as half as excited as you are.  Otherwise you might have troubles.</p>
<p>Troubles like people leaving right in the middle of the rehearsals. Right when you thought everything was finally rolling. And the timing was great as well. Less than a week before Easter is over. Not even enough time to shoot. And as that wasn&#8217;t enough, more people became less and less interested until you finally decide to join the club as well.</p>
<p>But it&#8217;s fine. After all, it&#8217;s Easter. People rest this time of the year. Needless to say, it turned out to be a very relaxing Easter. Totally unproductive mind you, but relaxing nonetheless. I also reconnected with some really old friends. And it&#8217;s not like we were gonna make money out of it. We wish, but weren&#8217;t. And then there&#8217;s the summer. It&#8217;s not that far away. Yeah, we still got the summer. Maybe things will go better. We now have plenty of time to rewrite the script, prepare our props, find a little budget and all those boring things.</p>
<p>And then I got this idea. About sharing it on the Internet. To see how people will react. How you will react. &#8220;Not a bad idea&#8221; I thought to myself. &#8220;Not a bad idea at all&#8221;. And so I did.</p>
<h2>Synopsis</h2>
<p>A driver gets robbed in the middle of the night. The thief points a gun at him and orders him to drive to a darker, more quieter place. But the driver doesn&#8217;t obey and instead crashes the car on a tree hoping the thief gets hurt. Unfortunately, the thief gets up again, but, as luck has it, the robber suffers amnesia instead.</p>
<p>The film starts as the thief wakes up and doesn&#8217;t know what&#8217;s happening (neither does the audience).</p>
<p><em>Note: OK. I know the synopsis is horrible. Maybe it isn&#8217;t even a synopsis. But come on. The whole script is 4 pages! It&#8217;s a synopsis by itself!</em></p>
<h2>Film Script</h2>
<ul>
<li>English version: <a href="http://pekalicious.com/blog/wp-content/uploads/2009/05/pae8397-final-draft-en.pdf">pae8397-final-draft-en.pdf</a></li>
<li>Greek version: <a href="http://pekalicious.com/blog/wp-content/uploads/2009/05/pae8397-final-draft-el.pdf">pae8397-final-draft-el.pdf</a></li>
</ul>
<p>This work is licensed under the <a title="Creative Commons Attribution-Non-Commerical-Shar Alike 3.0 Greece Licence" href="http://creativecommons.org/licenses/by-nc-sa/3.0/gr/" target="_blank">Creative Commons Attribution-Non-Commercial-Share Alike 3.0 Greece Licence</a>.</p>
<p><em>Warning: The original script was written in Greek. I tried to translate it as best as I could.</em></p>
<h2>Info</h2>
<p>Number of pages: 4</p>
<p>Estimated running time: 5 minutes</p>
<h2>Making of<strong><br />
</strong></h2>
<p><em>Note: The following will have no sense what so ever if you haven&#8217;t read the script.</em></p>
<p>This film has as few as three actors, one of which has a part of less than 10 seconds. But I&#8217;ll discuss the acting a little later. For now, I want to go threw the set which is quite challenging. Remember, this is a low-budget film, so we will concentrate on as many DIY solutions as possible.</p>
<p>Which begs the question: &#8220;How are you gonna find a crashed car?&#8221;. This is the first thing everybody asked me once they read the second line of the script. Well, the good thing about the scene is that it&#8217;s dark.</p>
<p>You see, the good thing about shooting in the dark is that you can hide a lot of &#8220;mistakes&#8221; since not much can be seen by the audience. So when I was thinking about a crashed car, I was thinking mostly about broken glass stickers, smoke coming out of the engine and stuff like that. There is no reason to actually show the damaged area (or actually damage a car for that matter&#8230; although, now that I think of it&#8230;). Even the part where the driver hits the door several times on a tree can be easily &#8220;pillowed&#8221; externally so that nothing will get damaged.</p>
<p><img class="alignnone size-thumbnail wp-image-303" title="broken glass" src="http://pekalicious.com/blog/wp-content/uploads/2009/05/broken-glass-150x150.jpg" alt="broken glass" width="150" height="150" /></p>
<p>But then there&#8217;s the lighting. That&#8217;s the bad thing about a dark scene. Combine that with the small space of the inside of a car and you got yourself a difficult situation. Lucky for us, <a title="What it took to create 'Collateral' - Cinematographers" href="http://www.cinematographers.nl/THEDoPH4.htm" target="_blank">cinematographer Paul Cameron encountered the same problem when making Collateral</a>:</p>
<blockquote><p>With a majority of the interaction between the two lead characters taking place inside Foxx&#8217;s cab, a system had to be devised to light the actors in a way that would avoid the &#8220;incandescent light in your face&#8221; look while still drawing in the surrounding nightscape. &#8220;Michael wanted this sort of wraparound, non-directional light,&#8221; says Beebe. &#8220;He wanted it to feel like there was no real source, to make it appear that everything was lit from the street by the street&#8217;s own ambience.&#8221;</p>
<p>To accomplish this illusion, Paul Cameron early on developed a system using electro-luminescent panels, such as those used to illuminate digital watches. Having noticed the material illuminating transit bus shelter advertising, Cameron located a local manufacturer, Novatech Electro-Luminescent in Santa Ana, and commissioned the company to make dozens of the panels for use in the cab [and 16 other vehicles]. Roughly 5&#8243; x 15&#8243; in size, approximately 30 of the panels were placed inside the cab, attached with Velcro and controlled by individual dimmers, allowing the units to be shut off or removed, depending on the requirements of the shot.</p></blockquote>
<p>This system is called a LitePanel (or LitePad) and you can find one right here: <a title="LitePad - Rosco" href="http://www.rosco.com/us/video/litepad_ho.asp" target="_blank">http://www.rosco.com/us/video/litepad_ho.asp</a>. On the bottom left you can see exactly how it can easily be place on a steering wheel. Just perfect. But wait; this costs money! So let&#8217;s keep looking shall we?</p>
<p>My next stop was asking the <a title="Lighting the inside of a car - dpreview" href="http://www.dpreview.com/forums/read.asp?forum=1025&amp;message=31619203" target="_blank">good fellas at dpreview</a> to recommend a solution. And sure enough, they came up with two:</p>
<ul>
<li>Use a laptop!</li>
<li>Create a custom LitePanel by buying cheap LEDs ( example product: <a title=" 	 Brightest Day Light White LED Photography Video Panel - Ebay" href="http://cgi.ebay.com/LED-Photography-Video-Panel_W0QQitemZ390038586321QQcmdZViewItemQQptZLH_DefaultDomain_0" target="_blank">http://cgi.ebay.com/LED-Photography-Video-Panel_W0QQitemZ390038586321QQcmdZViewItemQQptZLH_DefaultDomain_0</a>).</li>
</ul>
<p>The laptop is a really great and cheap idea (I&#8217;m not even considering the case where you can&#8217;t at least find one). Just set a white desktop background and your ready to go! You can even have a set of images from completely white to completely black and change them appropriately. Oh oh oh.. You can even <a title="6 iPhone Flashlight Apps? Finally, a Reason to Buy an iPhone - iCrAPP" href="http://icrapp.com/2008/07/14/6-iphone-flashlight-apps-finally-a-reason-to-buy-an-iphone/" target="_blank">create a program that does</a>&#8230; OK&#8230; You know where this is going&#8230;</p>
<p>And then there&#8217;s the DIY solution by buying some cheap LEDs from you local electronics store. Or by breaking something like <a title="28 LED Flashlight Black - nRebate" href="http://www.nrebate.com/en/28-led-flashlight-black.html?language=en&amp;currency=USD" target="_blank">this</a>. What ever works for you.</p>
<p>Whatever your choice, as the guys at dpreview also pointed out, you will have to cover the car ceiling from the inside with white paper to reflect light in order to soften the shadows.</p>
<h2>Plot Holes</h2>
<p>The script, although just 4 pages long, isn&#8217;t perfect. Can you imagine? I was shocked too. Anyway, right in the middle of rehearsing we realized that we haven&#8217;t quite figured out what type of characters we where talking about.</p>
<p>You know, their phychological backgrounds and stuff. I mean, you got this driver that crashes himself on a tree, doesn&#8217;t obey even when aimed by a gun and generally is a badass, but yet doesn&#8217;t beat the sh*t out of the thief when he realizes that he suffers from amnesia. We had to change that. I mean, the gun should be the first thing he&#8217;s thinking about when he gets up.</p>
<p>As for the thief, the more we talked about him, the &#8220;wimpier&#8221; he was becoming. We thought that this robbery might as well be his first unsuccessful attempt. You can clearly see why when the driver has the balls to continue driving even when he shouts at him to stop the damn car with a gun on his neck.</p>
<p>After so many hours of debating, changing, disagreeing and all that, I realize that making a character isn&#8217;t that simple. We changed a lot from this script. The biggest change is with the thief now sitting in the passenger seat and the gun being at his feet. Maybe I&#8217;ll share this version when we are done with the changes.</p>
<p>Or even better, maybe you have any suggestions you would like to share. I&#8217;ll be glad to hear them.</p>
<p>We will probably have this done at summer. Maybe even sooner. Either way, we will definitely upload the result at <a title="TH. - MySpace Film" href="http://www.myspace.com/tadros" target="_blank">Thodoris&#8217; Myspace Film page</a> along with the other projects. So stay tuned!</p>
<ul class="socialwrap size32 row">
<li class="iconOnly"><a rel="nofollow" target="_blank" class="delicious" href="http://delicious.com/post?url=http%3A%2F%2Fpekalicious.com%2Fblog%2Fsharing-the-pae8397-short-film-script%2F&amp;title=Sharing+the+%26%238216%3BPAE8397%26%238242%3B+short+film+script" title="Bookmark this post : Sharing the &#8216;PAE8397&#8242; short film script on Delicious"><span class="head">Bookmark on Delicious</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="digg" href="http://digg.com/submit?url=http%3A%2F%2Fpekalicious.com%2Fblog%2Fsharing-the-pae8397-short-film-script%2F&amp;title=Sharing+the+%26%238216%3BPAE8397%26%238242%3B+short+film+script&amp;bodytext=Have+you+ever+started+something+with+your+friends+and+had+to+leave+it+because+it+turns+out%2C+nobody+was+as+excited+as+you+were%3F+What+did+you+do+about+it%3F%0D%0A%0D%0AWell%2C+I+decided+to+share+it.%0D%0A%0D%0A%0D%0A%0D%0AIn+my+case+it+was+a+short+film.+And+the+thing+about+short+films+%28and+films+in+general%29+is+that+they+involve+actors.+And+if+you+a" title="Digg this post : Sharing the &#8216;PAE8397&#8242; short film script"><span class="head">Digg this post</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="facebook" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fpekalicious.com%2Fblog%2Fsharing-the-pae8397-short-film-script%2F&amp;t=Sharing+the+%26%238216%3BPAE8397%26%238242%3B+short+film+script" title="Recommend this post : Sharing the &#8216;PAE8397&#8242; short film script on Facebook"><span class="head">Recommend on Facebook</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="myspace" href="javascript:void(window.open('http://www.myspace.com/Modules/PostTo/Pages/?u='+encodeURIComponent(document.location.toString()),'ptm','height=450,width=440').focus())" title="Share this post : Sharing the &#8216;PAE8397&#8242; short film script via MySpace"><span class="head">Share via MySpace</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="reddit" href="http://www.reddit.com/submit?url=http%3A%2F%2Fpekalicious.com%2Fblog%2Fsharing-the-pae8397-short-film-script%2F&amp;title=Sharing+the+%26%238216%3BPAE8397%26%238242%3B+short+film+script" title="Share this post : Sharing the &#8216;PAE8397&#8242; short film script on Reddit"><span class="head">share via Reddit</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="stumble" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fpekalicious.com%2Fblog%2Fsharing-the-pae8397-short-film-script%2F&amp;title=Sharing+the+%26%238216%3BPAE8397%26%238242%3B+short+film+script" title="Share this post : Sharing the &#8216;PAE8397&#8242; short film script with Stumblers"><span class="head">Share with Stumblers</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="tumblr" href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fpekalicious.com%2Fblog%2Fsharing-the-pae8397-short-film-script%2F&amp;t=Sharing+the+%26%238216%3BPAE8397%26%238242%3B+short+film+script" title="Tumblr. this post : Sharing the &#8216;PAE8397&#8242; short film script "><span class="head">Tumblr it</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="twitter" href="http://twitter.com/home/?status=Sharing+the+%26%238216%3BPAE8397%26%238242%3B+short+film+script+-+http%253A%252F%252Fpekalicious.com%252Fblog%252Fsharing-the-pae8397-short-film-script%252F" title="Tweet this post : Sharing the &#8216;PAE8397&#8242; short film script on Twitter"><span class="head">Tweet about it</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="" class="rss" href="http://pekalicious.com/blog/sharing-the-pae8397-short-film-script/feed" title="Follow this post : Sharing the &#8216;PAE8397&#8242; short film script comments"><span class="head">Subscribe to the comments on this post</span></a></li>
<li class="iconOnly"><a rel="" class="email" href="mailto:?subject=pekalicious : Sharing the &#8216;PAE8397&#8242; short film script&#038;body=here is a link to a site I really like.   http://pekalicious.com/blog/sharing-the-pae8397-short-film-script/" title="Tell a friend about this post : Sharing the &#8216;PAE8397&#8242; short film script "><span class="head">Tell a friend</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="" class="print" href="javascript:window.print();" title="Print this post : Sharing the &#8216;PAE8397&#8242; short film script for reading later"><span class="head">Print for later</span></a></li>
</ul>
<div class="clean"></div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/pekalicious?a=K-1fpzYWHzE:FA1808-ZbMU:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/pekalicious?i=K-1fpzYWHzE:FA1808-ZbMU:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/pekalicious?a=K-1fpzYWHzE:FA1808-ZbMU:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/pekalicious?i=K-1fpzYWHzE:FA1808-ZbMU:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/pekalicious?a=K-1fpzYWHzE:FA1808-ZbMU:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/pekalicious?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/pekalicious/~4/K-1fpzYWHzE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://pekalicious.com/blog/sharing-the-pae8397-short-film-script/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://pekalicious.com/blog/sharing-the-pae8397-short-film-script/</feedburner:origLink></item>
		<item>
		<title>Introducing Twitter Followers Checker</title>
		<link>http://feedproxy.google.com/~r/pekalicious/~3/SKfdIfpHO94/</link>
		<comments>http://pekalicious.com/blog/introducing-twitter-followers-checker/#comments</comments>
		<pubDate>Wed, 29 Apr 2009 20:05:18 +0000</pubDate>
		<dc:creator>Panagiotis Peikidis</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[project]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[twitter api]]></category>

		<guid isPermaLink="false">http://pekalicious.com/blog/?p=276</guid>
		<description><![CDATA[Ever so often my Twitter followers list changes and usually that means that somebody stopped following me. Leaving aside their reasons (if you ask me, I wouldn&#8217;t follow me in the first place) I hate the fact that Twitter doesn&#8217;t provide a way of informing me who was it. Instead, I have to remember. And [...]]]></description>
			<content:encoded><![CDATA[<p>Ever so often my Twitter followers list changes and usually that means that somebody stopped following me. Leaving aside their reasons (if you ask me, I wouldn&#8217;t follow me in the first place) I hate the fact that Twitter doesn&#8217;t provide a way of informing me who was it. Instead, I have to remember. And since I have the worst memory anyone could possibly have, I decided to do something about it (about Twitter&#8217;s lack of functionality, not my memory).</p>
<p><span id="more-276"></span>OK, I&#8217;ll admit it, my memory isn&#8217;t the only reason I started this. After all, there&#8217;s <a title="Qwitter" href="http://useqwitter.com" target="_blank">Qwitter</a>, a site that emails you when somebody stops following you. And probably a dozen other similar solutions out there. My main reason for making this is having a chance to finally poke the <a title="Twitter API" href="http://apiwiki.twitter.com/" target="_blank">Twitter API</a> and play around (<a title="Introducing Final Grade Calculator - pekalicious" href="http://pekalicious.com/blog/introducing-final-grade-calculator/" target="_blank">once again</a>) with <a title="jQuery" href="http://jquery.com/" target="_blank">jQuery</a>. Yet another reason would be to avoid doing my practicals, but I doubt I would be doing them anyway.</p>
<p>So, without any further ado, I introduce you to the <a title="Twitter Follower Checker" href="http://pekalicious.com/twitterfollowercheck/" target="_blank">Twitter Follower Checker</a> (name says it all?). This little application took me about a day and still needs a lot of work to actually be any useful, but it quickly tells you what you want to know: Who started/stopped following you.</p>
<p>How does it work? Well, how would you keep track of your followers list changes? Probably the first thing that will come to your mind is to store somewhere (text file?) all your current followers list. Then, when you notice that your followers count has changed you simply compare the old stored list with the new current list.</p>
<p>Well, that is exactly what this does! As you can see, it&#8217;s magic! You enter the users screen name (yes, it can be any user, as long as he is not private), upload the old data and click &#8220;Check!&#8221; to compare the two! Voila! You quickly find out your recent changes and get filled with unattractive numbers.</p>
<p>As in most cases though, no matter how simple an application sounds, there are always some creepy little bugs that can&#8217;t wait to jump in front of you and make your life miserable for a couple of hours at least.</p>
<p>One of those bugs was found while using the <a title="jQuery Form Plugin" href="http://malsup.com/jquery/form/" target="_blank">jQuery Form Plugin</a>. It took me more than an hour to finally find out that a simple change of a string was all it took. See, when you use jQuery Form Plugin with files, you must <a title="Form Plugin: files not supported ? - jQuery Google Groups" href="http://groups.google.com/group/jquery-en/browse_thread/thread/7016828517e5ca47" target="_blank">not have an input with the name attribute set to &#8220;submit&#8221;</a>. That&#8217;s fine. I changed that and my problem still remained.  So I thought that the problem was somewhere else. A couple of hours later I accidentally saw in the Firefox Error Console that &#8220;jquery form plugin form.submit is not a function&#8221;. So I go back to my input field and change the id=&#8221;submit&#8221; to something else and that was it! Or was it? Unfortunately, it was. I wish it was something more sophisticated.</p>
<p>However, the biggest &#8220;bug&#8221; I have is displaying Twitter screen names. I say &#8220;bug&#8221; (with quotation marks) and not bug (without quotation marks) because it seems like one to the end-user but it&#8217;s actually a limitation of the Twitter API (and my time). The problem is fetching the followers list in a human readable way. If you want to fetch a users followers list, Twitter API gives you two options:</p>
<ol>
<li><a title="statuses/followers - Twitter API" href="http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-statuses%C2%A0followers" target="_blank">statuses/followers</a> will return the 100 latest updated followers with full information (name, screen name, location, description etc.)</li>
<li><a title="followers/ids" href="http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-followers%C2%A0ids" target="_blank">followers/ids</a> will return a list of all the followers User IDs (instead of screen names)</li>
</ol>
<p>In the first case, there are two problems: speed and amount. It is dead slow, in contrast with the second case, because you have to download so much information, which is mostly useless, and at the same time it&#8217;s limited to only the last 100 followers.</p>
<p>In the second case there is an even bigger problem. followers/ids provides you with a list of all the followers a user has, but the list contains User IDs instead of usernames. Which would be perfectly fine if translating a User ID to a username wouldn&#8217;t cost you anything. Unfortunately that is not the case. One of the ways of translating is by using<a title="users/show - Twitter API" href="http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-users%C2%A0show" target="_blank"> users/show</a>, which costs one hit for every query. If you have more than 100 followers, it&#8217;s almost impossible.</p>
<p>The end result of this is that, instead of displaying perfectly readable user names, the end-user sees a bunch of linked numbers. Every click on a link costs him 1 hit and takes him to an unreadable xml file.</p>
<p>Of course there are many ways to solve these problems: Caching names, translating the xml etc. But then it wouldn&#8217;t be my one-night-stand application. They all need time, which I have, but prefer spending it on my next one.</p>
<p>On the bright side, I had some fun with the Twitter API. I loved and hated it&#8217;s simplicity. Loved it because it was easy to actually use the API and hated it because the documentation was seriously limited (i.e. you cannot find the 100 followers limitation of the statuses/followers in it&#8217;s documentation page).</p>
<p>Funny story: while trying random usernames, I found that <a title="sdfsdfasd - Twitter" href="http://twitter.com/sdfsdfasd" target="_blank">sdfsdfasd</a> actually is a registered user! Looking closer you will see that he is not that active as one might think. Digging even deeper you find out that the only person he is following (<a title="MITcpw - Twitter" href="http://twitter.com/MITcpw" target="_blank">MITcpw</a>) has many users just like him. Interesting! But boring. Anyway.</p>
<p>One final note. Every time I catch myself using jQuery, I can&#8217;t resist not overusing it. I keep thinking &#8220;can I make this without refreshing the site?&#8221;. So when the time came to add the &#8220;powered by jQuery&#8221; button I said to myself &#8220;this doesn&#8217;t represent me at all&#8221;. So I went and quickly fixed a button that perfectly describes my jQuery usage.</p>
<p><img class="alignnone size-full wp-image-281" title="OVERpowered by jQuery" src="http://pekalicious.com/blog/wp-content/uploads/2009/04/overjq.png" alt="OVERpowered by jQuery" width="110" height="31" /></p>
<p>And there you have it, my latest over-jqueried web app that&#8217;s probably totally useless. Knock yourselves out!</p>
<p>Note to self: start using images in my posts!</p>
<ul class="socialwrap size32 row">
<li class="iconOnly"><a rel="nofollow" target="_blank" class="delicious" href="http://delicious.com/post?url=http%3A%2F%2Fpekalicious.com%2Fblog%2Fintroducing-twitter-followers-checker%2F&amp;title=Introducing+Twitter+Followers+Checker" title="Bookmark this post : Introducing Twitter Followers Checker on Delicious"><span class="head">Bookmark on Delicious</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="digg" href="http://digg.com/submit?url=http%3A%2F%2Fpekalicious.com%2Fblog%2Fintroducing-twitter-followers-checker%2F&amp;title=Introducing+Twitter+Followers+Checker&amp;bodytext=Ever+so+often+my+Twitter+followers+list+changes+and+usually+that+means+that+somebody+stopped+following+me.+Leaving+aside+their+reasons+%28if+you+ask+me%2C+I+wouldn%27t+follow+me+in+the+first+place%29+I+hate+the+fact+that+Twitter+doesn%27t+provide+a+way+of+informing+me+who+was+it.+Instead%2C+I+have+to+remember.+And+since+I+have+the" title="Digg this post : Introducing Twitter Followers Checker"><span class="head">Digg this post</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="facebook" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fpekalicious.com%2Fblog%2Fintroducing-twitter-followers-checker%2F&amp;t=Introducing+Twitter+Followers+Checker" title="Recommend this post : Introducing Twitter Followers Checker on Facebook"><span class="head">Recommend on Facebook</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="myspace" href="javascript:void(window.open('http://www.myspace.com/Modules/PostTo/Pages/?u='+encodeURIComponent(document.location.toString()),'ptm','height=450,width=440').focus())" title="Share this post : Introducing Twitter Followers Checker via MySpace"><span class="head">Share via MySpace</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="reddit" href="http://www.reddit.com/submit?url=http%3A%2F%2Fpekalicious.com%2Fblog%2Fintroducing-twitter-followers-checker%2F&amp;title=Introducing+Twitter+Followers+Checker" title="Share this post : Introducing Twitter Followers Checker on Reddit"><span class="head">share via Reddit</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="stumble" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fpekalicious.com%2Fblog%2Fintroducing-twitter-followers-checker%2F&amp;title=Introducing+Twitter+Followers+Checker" title="Share this post : Introducing Twitter Followers Checker with Stumblers"><span class="head">Share with Stumblers</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="tumblr" href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fpekalicious.com%2Fblog%2Fintroducing-twitter-followers-checker%2F&amp;t=Introducing+Twitter+Followers+Checker" title="Tumblr. this post : Introducing Twitter Followers Checker "><span class="head">Tumblr it</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="twitter" href="http://twitter.com/home/?status=Introducing+Twitter+Followers+Checker+-+http%253A%252F%252Fpekalicious.com%252Fblog%252Fintroducing-twitter-followers-checker%252F" title="Tweet this post : Introducing Twitter Followers Checker on Twitter"><span class="head">Tweet about it</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="" class="rss" href="http://pekalicious.com/blog/introducing-twitter-followers-checker/feed" title="Follow this post : Introducing Twitter Followers Checker comments"><span class="head">Subscribe to the comments on this post</span></a></li>
<li class="iconOnly"><a rel="" class="email" href="mailto:?subject=pekalicious : Introducing Twitter Followers Checker&#038;body=here is a link to a site I really like.   http://pekalicious.com/blog/introducing-twitter-followers-checker/" title="Tell a friend about this post : Introducing Twitter Followers Checker "><span class="head">Tell a friend</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="" class="print" href="javascript:window.print();" title="Print this post : Introducing Twitter Followers Checker for reading later"><span class="head">Print for later</span></a></li>
</ul>
<div class="clean"></div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/pekalicious?a=SKfdIfpHO94:yLMmKw93QTo:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/pekalicious?i=SKfdIfpHO94:yLMmKw93QTo:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/pekalicious?a=SKfdIfpHO94:yLMmKw93QTo:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/pekalicious?i=SKfdIfpHO94:yLMmKw93QTo:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/pekalicious?a=SKfdIfpHO94:yLMmKw93QTo:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/pekalicious?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/pekalicious/~4/SKfdIfpHO94" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://pekalicious.com/blog/introducing-twitter-followers-checker/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://pekalicious.com/blog/introducing-twitter-followers-checker/</feedburner:origLink></item>
	</channel>
</rss>
