<?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>Julian Timpner</title> <link>http://timpner.com</link> <description>Clean Code That Works</description> <lastBuildDate>Tue, 24 Jan 2012 15:32:46 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.3.1</generator> <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/timpner" /><feedburner:info uri="timpner" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item><title>NetBeans on Windows 7 x64</title><link>http://feedproxy.google.com/~r/timpner/~3/szcsvFdKOgU/</link> <comments>http://timpner.com/software/netbeans-on-windows-7-x64/#comments</comments> <pubDate>Thu, 18 Aug 2011 21:42:15 +0000</pubDate> <dc:creator>Jay</dc:creator> <category><![CDATA[Software]]></category> <category><![CDATA[NetBeans]]></category> <category><![CDATA[Windows 7]]></category><guid isPermaLink="false">http://timpner.com/?p=954</guid> <description><![CDATA[NetBeans 7 has a problem under Windows 7 x64. When trying to start it, it only says: JVM creation failed. Just adding &#8220;-J-Xmx256m&#8221; to the netbeans_default_options, and thus not relying on the default value, solves the problem.]]></description> <content:encoded><![CDATA[<p>NetBeans 7 has a problem under Windows 7 x64. When trying to start it, it only says:</p><blockquote
style="margin-left: 105px; padding-left: 105px;" ><p>JVM creation failed.</p></blockquote><p>Just adding <b>&#8220;-J-Xmx256m&#8221;</b> to the <tt>netbeans_default_options</tt>, and thus not relying on the default value, solves the problem.</p><div
class="shr-publisher-954" ></div><div
style="clear: both; min-height: 1px; height: 3px; width: 100%;" ></div><div
class="shareaholic-like-buttonset"  style="float:none;height:30px;" ><a
class="shareaholic-fblike"  data-shr_layout="button_count"  data-shr_showfaces="false"  data-shr_href="http%3A%2F%2Ftimpner.com%2Fsoftware%2Fnetbeans-on-windows-7-x64%2F"  data-shr_title="NetBeans+on+Windows+7+x64" ></a><a
class="shareaholic-googleplusone"  data-shr_size="medium"  data-shr_count="true"  data-shr_href="http%3A%2F%2Ftimpner.com%2Fsoftware%2Fnetbeans-on-windows-7-x64%2F"  data-shr_title="NetBeans+on+Windows+7+x64" ></a><a
class="shareaholic-tweetbutton"  data-shr_count="horizontal"  data-shr_href="http%3A%2F%2Ftimpner.com%2Fsoftware%2Fnetbeans-on-windows-7-x64%2F"  data-shr_title="NetBeans+on+Windows+7+x64" ></a></div><div
style="clear: both; min-height: 1px; height: 3px; width: 100%;" ></div><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/timpner?a=szcsvFdKOgU:I0Cos73J5uI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/timpner?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/timpner?a=szcsvFdKOgU:I0Cos73J5uI:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/timpner?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/timpner?a=szcsvFdKOgU:I0Cos73J5uI:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/timpner?i=szcsvFdKOgU:I0Cos73J5uI:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/timpner?a=szcsvFdKOgU:I0Cos73J5uI:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/timpner?i=szcsvFdKOgU:I0Cos73J5uI:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/timpner/~4/szcsvFdKOgU" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://timpner.com/software/netbeans-on-windows-7-x64/feed/</wfw:commentRss> <slash:comments>2</slash:comments> <feedburner:origLink>http://timpner.com/software/netbeans-on-windows-7-x64/</feedburner:origLink></item> <item><title>Clojure: Importing a Leiningen Project into Eclipse</title><link>http://feedproxy.google.com/~r/timpner/~3/ric6C0umuF4/</link> <comments>http://timpner.com/computing/clojure-importing-a-leiningen-project-into-eclipse/#comments</comments> <pubDate>Fri, 11 Mar 2011 03:18:18 +0000</pubDate> <dc:creator>Jay</dc:creator> <category><![CDATA[Computing]]></category> <category><![CDATA[Clojure]]></category><guid isPermaLink="false">http://timpner.com/?p=943</guid> <description><![CDATA[To import a Leiningen project into Eclipse, so that you can use CounterClockwise with all its nice features, such as syntax highlighting, there is a handy plugin called lein-eclipse. To get started, all you have to do is to add this plugin as a dev-dependency in your project&#8217;s project.clj. 1 2 3 4 5 6 &#8230; <a
href="http://timpner.com/computing/clojure-importing-a-leiningen-project-into-eclipse/">Read more <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>To import a Leiningen project into Eclipse, so that you can use CounterClockwise with all its nice features, such as syntax highlighting, there is a handy plugin called <strong>lein-eclipse</strong>.</p><p>To get started, all you have to do is to add this plugin as a <em>dev-dependency</em> in your project&#8217;s <tt>project.clj</tt>.</p><div
class="wp_syntax" ><table><tr><td
class="line_numbers" ><pre>1
2
3
4
5
6
7
8
9
10
11
</pre></td><td
class="code" ><pre class="lisp"  style="font-family:monospace;" ><span style="color: #66cc66;" >&#40;</span>defproject my-project <span style="color: #ff0000;" >&quot;1.0.0-SNAPSHOT&quot;</span>
  <span style="color: #66cc66;" >:</span><span style="color: #555;" >description</span> <span style="color: #ff0000;" >&quot;My Clojure Leiningen Project&quot;</span>
  <span style="color: #66cc66;" >:</span><span style="color: #555;" >dependencies</span> <span style="color: #66cc66;" >&#91;</span>
        <span style="color: #66cc66;" >&#91;</span>org<span style="color: #66cc66;" >.</span>clojure/clojure <span style="color: #ff0000;" >&quot;1.2.0&quot;</span><span style="color: #66cc66;" >&#93;</span>
        <span style="color: #66cc66;" >&#91;</span>org<span style="color: #66cc66;" >.</span>clojure/clojure-contrib <span style="color: #ff0000;" >&quot;1.2.0&quot;</span><span style="color: #66cc66;" >&#93;</span>
	<span style="color: #66cc66;" >&#91;</span>ring/ring-jetty-adapter <span style="color: #ff0000;" >&quot;0.2.5&quot;</span><span style="color: #66cc66;" >&#93;</span>
  <span style="color: #66cc66;" >&#93;</span>
  <span style="color: #66cc66;" >:</span><span style="color: #555;" >dev-dependencies</span> <span style="color: #66cc66;" >&#91;</span>
        <span style="color: #66cc66;" >&#91;</span>lein-eclipse <span style="color: #ff0000;" >&quot;1.0.0&quot;</span><span style="color: #66cc66;" >&#93;</span>
  <span style="color: #66cc66;" >&#93;</span>
<span style="color: #66cc66;" >&#41;</span></pre></td></tr></table></div><p>Then, you need to download the project dependencies via</p><p><strong>prompt&gt; lein deps</strong></p><p>This will automatically install <em>lein-eclipse</em> and add a new task called <em>eclipse</em> to <em>leiningen</em>. Invoking</p><p><strong>prompt&gt; lein eclipse</strong></p><p>runs this task and creates the Eclipse projects files <tt>.project</tt> and <tt>.classpath</tt>. Now you can simply import the project into Eclipse via &#8220;File->Import->Existing Project into Workspace&#8221;.</p><div
class="shr-publisher-943" ></div><div
style="clear: both; min-height: 1px; height: 3px; width: 100%;" ></div><div
class="shareaholic-like-buttonset"  style="float:none;height:30px;" ><a
class="shareaholic-fblike"  data-shr_layout="button_count"  data-shr_showfaces="false"  data-shr_href="http%3A%2F%2Ftimpner.com%2Fcomputing%2Fclojure-importing-a-leiningen-project-into-eclipse%2F"  data-shr_title="Clojure%3A+Importing+a+Leiningen+Project+into+Eclipse" ></a><a
class="shareaholic-googleplusone"  data-shr_size="medium"  data-shr_count="true"  data-shr_href="http%3A%2F%2Ftimpner.com%2Fcomputing%2Fclojure-importing-a-leiningen-project-into-eclipse%2F"  data-shr_title="Clojure%3A+Importing+a+Leiningen+Project+into+Eclipse" ></a><a
class="shareaholic-tweetbutton"  data-shr_count="horizontal"  data-shr_href="http%3A%2F%2Ftimpner.com%2Fcomputing%2Fclojure-importing-a-leiningen-project-into-eclipse%2F"  data-shr_title="Clojure%3A+Importing+a+Leiningen+Project+into+Eclipse" ></a></div><div
style="clear: both; min-height: 1px; height: 3px; width: 100%;" ></div><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/timpner?a=ric6C0umuF4:kPXvkPzAwEc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/timpner?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/timpner?a=ric6C0umuF4:kPXvkPzAwEc:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/timpner?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/timpner?a=ric6C0umuF4:kPXvkPzAwEc:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/timpner?i=ric6C0umuF4:kPXvkPzAwEc:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/timpner?a=ric6C0umuF4:kPXvkPzAwEc:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/timpner?i=ric6C0umuF4:kPXvkPzAwEc:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/timpner/~4/ric6C0umuF4" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://timpner.com/computing/clojure-importing-a-leiningen-project-into-eclipse/feed/</wfw:commentRss> <slash:comments>0</slash:comments> <feedburner:origLink>http://timpner.com/computing/clojure-importing-a-leiningen-project-into-eclipse/</feedburner:origLink></item> <item><title>Android: NullPointerException when scrolling through a MapView w/ ItemizedOverlay</title><link>http://feedproxy.google.com/~r/timpner/~3/gCrNbyrajPE/</link> <comments>http://timpner.com/computing/android-nullpointerexception-when-scrolling-through-a-mapview-w-itemizedoverlay/#comments</comments> <pubDate>Sat, 13 Nov 2010 10:44:14 +0000</pubDate> <dc:creator>Jay</dc:creator> <category><![CDATA[Computing]]></category> <category><![CDATA[Android]]></category> <category><![CDATA[Java]]></category><guid isPermaLink="false">http://timpner.com/?p=885</guid> <description><![CDATA[When I implemented a MapView with an ItemizedOverlay (the implementation steps are described in the Android developer documentation), I encountered a flaw in the API, or at least in the corresponding documentation. If you add an ItemizedOverlay to your MapView, but do not add any OverlayItems (which may be the default for your application, with &#8230; <a
href="http://timpner.com/computing/android-nullpointerexception-when-scrolling-through-a-mapview-w-itemizedoverlay/">Read more <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>When I implemented a MapView with an ItemizedOverlay (the implementation steps are described in the <a
href="http://developer.android.com/guide/tutorials/views/hello-mapview.html" >Android developer documentation</a>), I encountered a flaw in the API, or at least in the corresponding documentation. If you add an ItemizedOverlay to your MapView, but do not add any OverlayItems (which may be the default for your application, with OverlayItems being added during runtime), scrolling through the MapView causes the following NullPointerException:</p><div
class="wp_syntax" ><div
class="code" ><pre class="java"  style="font-family:monospace;" >ERROR<span style="color: #339933;" >/</span>AndroidRuntime<span style="color: #009900;" >&#40;</span><span style="color: #cc66cc;" >232</span><span style="color: #009900;" >&#41;</span><span style="color: #339933;" >:</span> java.<span style="color: #006633;" >lang</span>.<span style="color: #003399;" >NullPointerException</span>
  at com.<span style="color: #006633;" >google</span>.<span style="color: #006633;" >android</span>.<span style="color: #006633;" >maps</span>.<span style="color: #006633;" >ItemizedOverlay</span>.<span style="color: #006633;" >getItemsAtLocation</span><span style="color: #009900;" >&#40;</span>ItemizedOverlay.<span style="color: #006633;" >java</span><span style="color: #339933;" >:</span><span style="color: #cc66cc;" >617</span><span style="color: #009900;" >&#41;</span>
  at com.<span style="color: #006633;" >google</span>.<span style="color: #006633;" >android</span>.<span style="color: #006633;" >maps</span>.<span style="color: #006633;" >ItemizedOverlay</span>.<span style="color: #006633;" >getItemAtLocation</span><span style="color: #009900;" >&#40;</span>ItemizedOverlay.<span style="color: #006633;" >java</span><span style="color: #339933;" >:</span><span style="color: #cc66cc;" >586</span><span style="color: #009900;" >&#41;</span>
  at com.<span style="color: #006633;" >google</span>.<span style="color: #006633;" >android</span>.<span style="color: #006633;" >maps</span>.<span style="color: #006633;" >ItemizedOverlay</span>.<span style="color: #006633;" >handleMotionEvent</span><span style="color: #009900;" >&#40;</span>ItemizedOverlay.<span style="color: #006633;" >java</span><span style="color: #339933;" >:</span><span style="color: #cc66cc;" >498</span><span style="color: #009900;" >&#41;</span>
  at com.<span style="color: #006633;" >google</span>.<span style="color: #006633;" >android</span>.<span style="color: #006633;" >maps</span>.<span style="color: #006633;" >ItemizedOverlay</span>.<span style="color: #006633;" >onTouchEvent</span><span style="color: #009900;" >&#40;</span>ItemizedOverlay.<span style="color: #006633;" >java</span><span style="color: #339933;" >:</span><span style="color: #cc66cc;" >572</span><span style="color: #009900;" >&#41;</span>
  at com.<span style="color: #006633;" >google</span>.<span style="color: #006633;" >android</span>.<span style="color: #006633;" >maps</span>.<span style="color: #006633;" >OverlayBundle</span>.<span style="color: #006633;" >onTouchEvent</span><span style="color: #009900;" >&#40;</span>OverlayBundle.<span style="color: #006633;" >java</span><span style="color: #339933;" >:</span><span style="color: #cc66cc;" >63</span><span style="color: #009900;" >&#41;</span>
  at com.<span style="color: #006633;" >google</span>.<span style="color: #006633;" >android</span>.<span style="color: #006633;" >maps</span>.<span style="color: #006633;" >MapView</span>.<span style="color: #006633;" >onTouchEvent</span><span style="color: #009900;" >&#40;</span>MapView.<span style="color: #006633;" >java</span><span style="color: #339933;" >:</span><span style="color: #cc66cc;" >625</span><span style="color: #009900;" >&#41;</span>
  at android.<span style="color: #006633;" >view</span>.<span style="color: #003399;" >View</span>.<span style="color: #006633;" >dispatchTouchEvent</span><span style="color: #009900;" >&#40;</span><span style="color: #003399;" >View</span>.<span style="color: #006633;" >java</span><span style="color: #339933;" >:</span><span style="color: #cc66cc;" >3709</span><span style="color: #009900;" >&#41;</span>
  at android.<span style="color: #006633;" >view</span>.<span style="color: #006633;" >ViewGroup</span>.<span style="color: #006633;" >dispatchTouchEvent</span><span style="color: #009900;" >&#40;</span>ViewGroup.<span style="color: #006633;" >java</span><span style="color: #339933;" >:</span><span style="color: #cc66cc;" >852</span><span style="color: #009900;" >&#41;</span>
  at android.<span style="color: #006633;" >view</span>.<span style="color: #006633;" >ViewGroup</span>.<span style="color: #006633;" >dispatchTouchEvent</span><span style="color: #009900;" >&#40;</span>ViewGroup.<span style="color: #006633;" >java</span><span style="color: #339933;" >:</span><span style="color: #cc66cc;" >822</span><span style="color: #009900;" >&#41;</span>
  at android.<span style="color: #006633;" >view</span>.<span style="color: #006633;" >ViewGroup</span>.<span style="color: #006633;" >dispatchTouchEvent</span><span style="color: #009900;" >&#40;</span>ViewGroup.<span style="color: #006633;" >java</span><span style="color: #339933;" >:</span><span style="color: #cc66cc;" >822</span><span style="color: #009900;" >&#41;</span>
  at android.<span style="color: #006633;" >view</span>.<span style="color: #006633;" >ViewGroup</span>.<span style="color: #006633;" >dispatchTouchEvent</span><span style="color: #009900;" >&#40;</span>ViewGroup.<span style="color: #006633;" >java</span><span style="color: #339933;" >:</span><span style="color: #cc66cc;" >822</span><span style="color: #009900;" >&#41;</span>
  at com.<span style="color: #006633;" >android</span>.<span style="color: #006633;" >internal</span>.<span style="color: #006633;" >policy</span>.<span style="color: #006633;" >impl</span>.<span style="color: #006633;" >PhoneWindow</span>$DecorView.<span style="color: #006633;" >superDispatchTouchEvent</span><span style="color: #009900;" >&#40;</span>PhoneWindow.<span style="color: #006633;" >java</span><span style="color: #339933;" >:</span><span style="color: #cc66cc;" >1659</span><span style="color: #009900;" >&#41;</span>
  at com.<span style="color: #006633;" >android</span>.<span style="color: #006633;" >internal</span>.<span style="color: #006633;" >policy</span>.<span style="color: #006633;" >impl</span>.<span style="color: #006633;" >PhoneWindow</span>.<span style="color: #006633;" >superDispatchTouchEvent</span><span style="color: #009900;" >&#40;</span>PhoneWindow.<span style="color: #006633;" >java</span><span style="color: #339933;" >:</span><span style="color: #cc66cc;" >1107</span><span style="color: #009900;" >&#41;</span>
  at android.<span style="color: #006633;" >app</span>.<span style="color: #006633;" >Activity</span>.<span style="color: #006633;" >dispatchTouchEvent</span><span style="color: #009900;" >&#40;</span>Activity.<span style="color: #006633;" >java</span><span style="color: #339933;" >:</span><span style="color: #cc66cc;" >2061</span><span style="color: #009900;" >&#41;</span>
  at com.<span style="color: #006633;" >android</span>.<span style="color: #006633;" >internal</span>.<span style="color: #006633;" >policy</span>.<span style="color: #006633;" >impl</span>.<span style="color: #006633;" >PhoneWindow</span>$DecorView.<span style="color: #006633;" >dispatchTouchEvent</span><span style="color: #009900;" >&#40;</span>PhoneWindow.<span style="color: #006633;" >java</span><span style="color: #339933;" >:</span><span style="color: #cc66cc;" >1643</span><span style="color: #009900;" >&#41;</span>
  at android.<span style="color: #006633;" >view</span>.<span style="color: #006633;" >ViewGroup</span>.<span style="color: #006633;" >dispatchTouchEvent</span><span style="color: #009900;" >&#40;</span>ViewGroup.<span style="color: #006633;" >java</span><span style="color: #339933;" >:</span><span style="color: #cc66cc;" >822</span><span style="color: #009900;" >&#41;</span>
  at android.<span style="color: #006633;" >view</span>.<span style="color: #006633;" >ViewGroup</span>.<span style="color: #006633;" >dispatchTouchEvent</span><span style="color: #009900;" >&#40;</span>ViewGroup.<span style="color: #006633;" >java</span><span style="color: #339933;" >:</span><span style="color: #cc66cc;" >822</span><span style="color: #009900;" >&#41;</span>
  at android.<span style="color: #006633;" >view</span>.<span style="color: #006633;" >ViewGroup</span>.<span style="color: #006633;" >dispatchTouchEvent</span><span style="color: #009900;" >&#40;</span>ViewGroup.<span style="color: #006633;" >java</span><span style="color: #339933;" >:</span><span style="color: #cc66cc;" >822</span><span style="color: #009900;" >&#41;</span>
  at android.<span style="color: #006633;" >view</span>.<span style="color: #006633;" >ViewGroup</span>.<span style="color: #006633;" >dispatchTouchEvent</span><span style="color: #009900;" >&#40;</span>ViewGroup.<span style="color: #006633;" >java</span><span style="color: #339933;" >:</span><span style="color: #cc66cc;" >822</span><span style="color: #009900;" >&#41;</span>
  at android.<span style="color: #006633;" >view</span>.<span style="color: #006633;" >ViewGroup</span>.<span style="color: #006633;" >dispatchTouchEvent</span><span style="color: #009900;" >&#40;</span>ViewGroup.<span style="color: #006633;" >java</span><span style="color: #339933;" >:</span><span style="color: #cc66cc;" >822</span><span style="color: #009900;" >&#41;</span>
  at android.<span style="color: #006633;" >view</span>.<span style="color: #006633;" >ViewGroup</span>.<span style="color: #006633;" >dispatchTouchEvent</span><span style="color: #009900;" >&#40;</span>ViewGroup.<span style="color: #006633;" >java</span><span style="color: #339933;" >:</span><span style="color: #cc66cc;" >822</span><span style="color: #009900;" >&#41;</span>
  at com.<span style="color: #006633;" >android</span>.<span style="color: #006633;" >internal</span>.<span style="color: #006633;" >policy</span>.<span style="color: #006633;" >impl</span>.<span style="color: #006633;" >PhoneWindow</span>$DecorView.<span style="color: #006633;" >superDispatchTouchEvent</span><span style="color: #009900;" >&#40;</span>PhoneWindow.<span style="color: #006633;" >java</span><span style="color: #339933;" >:</span><span style="color: #cc66cc;" >1659</span><span style="color: #009900;" >&#41;</span>
  at com.<span style="color: #006633;" >android</span>.<span style="color: #006633;" >internal</span>.<span style="color: #006633;" >policy</span>.<span style="color: #006633;" >impl</span>.<span style="color: #006633;" >PhoneWindow</span>.<span style="color: #006633;" >superDispatchTouchEvent</span><span style="color: #009900;" >&#40;</span>PhoneWindow.<span style="color: #006633;" >java</span><span style="color: #339933;" >:</span><span style="color: #cc66cc;" >1107</span><span style="color: #009900;" >&#41;</span>
  at android.<span style="color: #006633;" >app</span>.<span style="color: #006633;" >Activity</span>.<span style="color: #006633;" >dispatchTouchEvent</span><span style="color: #009900;" >&#40;</span>Activity.<span style="color: #006633;" >java</span><span style="color: #339933;" >:</span><span style="color: #cc66cc;" >2061</span><span style="color: #009900;" >&#41;</span>
  at com.<span style="color: #006633;" >android</span>.<span style="color: #006633;" >internal</span>.<span style="color: #006633;" >policy</span>.<span style="color: #006633;" >impl</span>.<span style="color: #006633;" >PhoneWindow</span>$DecorView.<span style="color: #006633;" >dispatchTouchEvent</span><span style="color: #009900;" >&#40;</span>PhoneWindow.<span style="color: #006633;" >java</span><span style="color: #339933;" >:</span><span style="color: #cc66cc;" >1643</span><span style="color: #009900;" >&#41;</span>
  at android.<span style="color: #006633;" >view</span>.<span style="color: #006633;" >ViewRoot</span>.<span style="color: #006633;" >handleMessage</span><span style="color: #009900;" >&#40;</span>ViewRoot.<span style="color: #006633;" >java</span><span style="color: #339933;" >:</span><span style="color: #cc66cc;" >1691</span><span style="color: #009900;" >&#41;</span>
  at android.<span style="color: #006633;" >os</span>.<span style="color: #006633;" >Handler</span>.<span style="color: #006633;" >dispatchMessage</span><span style="color: #009900;" >&#40;</span>Handler.<span style="color: #006633;" >java</span><span style="color: #339933;" >:</span><span style="color: #cc66cc;" >99</span><span style="color: #009900;" >&#41;</span>
  at android.<span style="color: #006633;" >os</span>.<span style="color: #006633;" >Looper</span>.<span style="color: #006633;" >loop</span><span style="color: #009900;" >&#40;</span>Looper.<span style="color: #006633;" >java</span><span style="color: #339933;" >:</span><span style="color: #cc66cc;" >123</span><span style="color: #009900;" >&#41;</span>
  at android.<span style="color: #006633;" >app</span>.<span style="color: #006633;" >ActivityThread</span>.<span style="color: #006633;" >main</span><span style="color: #009900;" >&#40;</span>ActivityThread.<span style="color: #006633;" >java</span><span style="color: #339933;" >:</span><span style="color: #cc66cc;" >4363</span><span style="color: #009900;" >&#41;</span>
  at java.<span style="color: #006633;" >lang</span>.<span style="color: #006633;" >reflect</span>.<span style="color: #003399;" >Method</span>.<span style="color: #006633;" >invokeNative</span><span style="color: #009900;" >&#40;</span><span style="color: #000000; font-weight: bold;" >Native</span> <span style="color: #003399;" >Method</span><span style="color: #009900;" >&#41;</span>
  at java.<span style="color: #006633;" >lang</span>.<span style="color: #006633;" >reflect</span>.<span style="color: #003399;" >Method</span>.<span style="color: #006633;" >invoke</span><span style="color: #009900;" >&#40;</span><span style="color: #003399;" >Method</span>.<span style="color: #006633;" >java</span><span style="color: #339933;" >:</span><span style="color: #cc66cc;" >521</span><span style="color: #009900;" >&#41;</span>
  at com.<span style="color: #006633;" >android</span>.<span style="color: #006633;" >internal</span>.<span style="color: #006633;" >os</span>.<span style="color: #006633;" >ZygoteInit</span>$MethodAndArgsCaller.<span style="color: #006633;" >run</span><span style="color: #009900;" >&#40;</span>ZygoteInit.<span style="color: #006633;" >java</span><span style="color: #339933;" >:</span><span style="color: #cc66cc;" >860</span><span style="color: #009900;" >&#41;</span>
  at com.<span style="color: #006633;" >android</span>.<span style="color: #006633;" >internal</span>.<span style="color: #006633;" >os</span>.<span style="color: #006633;" >ZygoteInit</span>.<span style="color: #006633;" >main</span><span style="color: #009900;" >&#40;</span>ZygoteInit.<span style="color: #006633;" >java</span><span style="color: #339933;" >:</span><span style="color: #cc66cc;" >618</span><span style="color: #009900;" >&#41;</span>
  at dalvik.<span style="color: #006633;" >system</span>.<span style="color: #006633;" >NativeStart</span>.<span style="color: #006633;" >main</span><span style="color: #009900;" >&#40;</span><span style="color: #000000; font-weight: bold;" >Native</span> <span style="color: #003399;" >Method</span><span style="color: #009900;" >&#41;</span></pre></div></div><p>After long hours of debugging, I was able to find help in the <a
href="https://code.google.com/p/android/issues/detail?id=2035" >Android Bug Tracking</a> system. An easy workaround for this problem (which should really be addressed in the API and/or the corresponding documentation) is to add a call to the &#8220;populate()&#8221; function in the constructor of the class that extends ItemizedOverlay. Then, your subclass constructor should look like this:</p><div
class="wp_syntax" ><div
class="code" ><pre class="java"  style="font-family:monospace;" ><span style="color: #000000; font-weight: bold;" >super</span><span style="color: #009900;" >&#40;</span>boundCenterBottom<span style="color: #009900;" >&#40;</span>defaultMarker<span style="color: #009900;" >&#41;</span><span style="color: #009900;" >&#41;</span><span style="color: #339933;" >;</span>
populate<span style="color: #009900;" >&#40;</span><span style="color: #009900;" >&#41;</span><span style="color: #339933;" >;</span></pre></div></div><p>This solves the problem and scrolling, even without any OverlayItems, works like a charm.</p><div
class="shr-publisher-885" ></div><div
style="clear: both; min-height: 1px; height: 3px; width: 100%;" ></div><div
class="shareaholic-like-buttonset"  style="float:none;height:30px;" ><a
class="shareaholic-fblike"  data-shr_layout="button_count"  data-shr_showfaces="false"  data-shr_href="http%3A%2F%2Ftimpner.com%2Fcomputing%2Fandroid-nullpointerexception-when-scrolling-through-a-mapview-w-itemizedoverlay%2F"  data-shr_title="Android%3A+NullPointerException+when+scrolling+through+a+MapView+w%2F+ItemizedOverlay" ></a><a
class="shareaholic-googleplusone"  data-shr_size="medium"  data-shr_count="true"  data-shr_href="http%3A%2F%2Ftimpner.com%2Fcomputing%2Fandroid-nullpointerexception-when-scrolling-through-a-mapview-w-itemizedoverlay%2F"  data-shr_title="Android%3A+NullPointerException+when+scrolling+through+a+MapView+w%2F+ItemizedOverlay" ></a><a
class="shareaholic-tweetbutton"  data-shr_count="horizontal"  data-shr_href="http%3A%2F%2Ftimpner.com%2Fcomputing%2Fandroid-nullpointerexception-when-scrolling-through-a-mapview-w-itemizedoverlay%2F"  data-shr_title="Android%3A+NullPointerException+when+scrolling+through+a+MapView+w%2F+ItemizedOverlay" ></a></div><div
style="clear: both; min-height: 1px; height: 3px; width: 100%;" ></div><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/timpner?a=gCrNbyrajPE:J44ulrW1IlY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/timpner?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/timpner?a=gCrNbyrajPE:J44ulrW1IlY:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/timpner?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/timpner?a=gCrNbyrajPE:J44ulrW1IlY:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/timpner?i=gCrNbyrajPE:J44ulrW1IlY:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/timpner?a=gCrNbyrajPE:J44ulrW1IlY:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/timpner?i=gCrNbyrajPE:J44ulrW1IlY:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/timpner/~4/gCrNbyrajPE" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://timpner.com/computing/android-nullpointerexception-when-scrolling-through-a-mapview-w-itemizedoverlay/feed/</wfw:commentRss> <slash:comments>7</slash:comments> <feedburner:origLink>http://timpner.com/computing/android-nullpointerexception-when-scrolling-through-a-mapview-w-itemizedoverlay/</feedburner:origLink></item> <item><title>Reverse Engineering a PostgreSQL Database</title><link>http://feedproxy.google.com/~r/timpner/~3/Gd0IwOtItsw/</link> <comments>http://timpner.com/computing/reverse-engineering-a-postgresql-database/#comments</comments> <pubDate>Wed, 10 Nov 2010 02:11:14 +0000</pubDate> <dc:creator>Jay</dc:creator> <category><![CDATA[Computing]]></category> <category><![CDATA[Database]]></category> <category><![CDATA[Reverse Engineering]]></category><guid isPermaLink="false">http://timpner.com/?p=838</guid> <description><![CDATA[When working with legacy (relational) databases it might come in handy to visualize an existing schema. Microsoft Visio supports such a reverse engineering of most databases in a remarkably easy way. This little tutorial assumes that the database to be reverse engineered is a PostgreSQL installation. Therefore, the first thing you need to do is &#8230; <a
href="http://timpner.com/computing/reverse-engineering-a-postgresql-database/">Read more <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>When working with legacy (relational) databases it might come in handy to visualize an existing schema. Microsoft Visio supports such a reverse engineering of most databases in a remarkably easy way. This little tutorial assumes that the database to be reverse engineered is a PostgreSQL installation.</p><p>Therefore, the first thing you need to do is to install the <a
href="http://www.postgresql.org/ftp/odbc/versions/msi/" >PostgreSQL ODBC driver</a>.</p><p>Second, you can start Visio and create a new &#8220;Database Model Diagram&#8221;. Select the &#8220;Database&#8221; tap, and your window should look like this:</p><div
id="attachment_870"  class="wp-caption alignnone"  style="width: 560px" ><a
href="http://timpner.com/wp-content/uploads/2010/11/RevEng-1.png" ><img
hspace="0"  vspace="2"  align="left"  border="1"  src="http://timpner.com/wp-content/uploads/2010/11/RevEng-1.png"  alt="RevEng 1 Reverse Engineering a PostgreSQL Database" title="RevEng-1"  width="550"  height="326"  class="size-full wp-image-870"   style="float: left; margin: 0 7px 2px 0; padding: 4px; border: 1px solid #555555" /></a><p
class="wp-caption-text" >Visio Reverse Engineering</p></div><p>Now, select &#8216;Reverse Engineer&#8217; and create a new data source. Choose &#8220;User Data Source&#8221; and &#8220;PostgreSQL Unicode&#8221;, as seen in the following screenshots. Enter your database connection credentials and test it.</p><div
id="attachment_871"  class="wp-caption alignnone"  style="width: 487px" ><a
href="http://timpner.com/wp-content/uploads/2010/11/RevEng-2.png" ><img
hspace="0"  vspace="2"  align="left"  border="1"  src="http://timpner.com/wp-content/uploads/2010/11/RevEng-2.png"  alt="RevEng 2 Reverse Engineering a PostgreSQL Database" title="RevEng-2"  width="477"  height="357"  class="size-full wp-image-871"   style="float: left; margin: 0 7px 2px 0; padding: 4px; border: 1px solid #555555" /></a><p
class="wp-caption-text" >Creating a PostgreSQL User DSN</p></div><div
id="attachment_872"  class="wp-caption alignnone"  style="width: 487px" ><a
href="http://timpner.com/wp-content/uploads/2010/11/RevEng-3.png" ><img
hspace="0"  vspace="2"  align="left"  border="1"  src="http://timpner.com/wp-content/uploads/2010/11/RevEng-3.png"  alt="RevEng 3 Reverse Engineering a PostgreSQL Database" title="RevEng-3"  width="477"  height="357"  class="size-full wp-image-872"   style="float: left; margin: 0 7px 2px 0; padding: 4px; border: 1px solid #555555" /></a><p
class="wp-caption-text" >Creating a PostgreSQL User DSN</p></div><p>If the User Data Source was successfully added, you should be able to select the &#8220;Generic ODBC Driver&#8221; and the specified PostgreSQL data source.</p><div
id="attachment_873"  class="wp-caption alignnone"  style="width: 576px" ><a
href="http://timpner.com/wp-content/uploads/2010/11/RevEng-4.png" ><img
hspace="0"  vspace="2"  align="left"  border="1"  src="http://timpner.com/wp-content/uploads/2010/11/RevEng-4.png"  alt="RevEng 4 Reverse Engineering a PostgreSQL Database" title="RevEng-4"  width="566"  height="375"  class="size-full wp-image-873"   style="float: left; margin: 0 7px 2px 0; padding: 4px; border: 1px solid #555555" /></a><p
class="wp-caption-text" >Visio Generic ODBC Driver</p></div><p>After filling in the correct username and password, you can for instance specify which object types you&#8217;d like to reverse engineer.</p><div
id="attachment_874"  class="wp-caption alignnone"  style="width: 577px" ><a
href="http://timpner.com/wp-content/uploads/2010/11/RevEng-5.png" ><img
hspace="0"  vspace="2"  align="left"  border="1"  src="http://timpner.com/wp-content/uploads/2010/11/RevEng-5.png"  alt="RevEng 5 Reverse Engineering a PostgreSQL Database" title="RevEng-5"  width="567"  height="376"  class="size-full wp-image-874"   style="float: left; margin: 0 7px 2px 0; padding: 4px; border: 1px solid #555555" /></a><p
class="wp-caption-text" >Visio ODBC Setup</p></div><p>The result of this process is a nicely layouted diagram of the corresponding database.</p><div
id="attachment_875"  class="wp-caption alignnone"  style="width: 569px" ><a
href="http://timpner.com/wp-content/uploads/2010/11/RevEng-6.png" ><img
hspace="0"  vspace="2"  align="left"  border="1"  src="http://timpner.com/wp-content/uploads/2010/11/RevEng-6.png"  alt="RevEng 6 Reverse Engineering a PostgreSQL Database" title="RevEng-6"  width="559"  height="367"  class="size-full wp-image-875"   style="float: left; margin: 0 7px 2px 0; padding: 4px; border: 1px solid #555555" /></a><p
class="wp-caption-text" >Example Reverse Engineered Diagram</p></div><div
class="shr-publisher-838" ></div><div
style="clear: both; min-height: 1px; height: 3px; width: 100%;" ></div><div
class="shareaholic-like-buttonset"  style="float:none;height:30px;" ><a
class="shareaholic-fblike"  data-shr_layout="button_count"  data-shr_showfaces="false"  data-shr_href="http%3A%2F%2Ftimpner.com%2Fcomputing%2Freverse-engineering-a-postgresql-database%2F"  data-shr_title="Reverse+Engineering+a+PostgreSQL+Database" ></a><a
class="shareaholic-googleplusone"  data-shr_size="medium"  data-shr_count="true"  data-shr_href="http%3A%2F%2Ftimpner.com%2Fcomputing%2Freverse-engineering-a-postgresql-database%2F"  data-shr_title="Reverse+Engineering+a+PostgreSQL+Database" ></a><a
class="shareaholic-tweetbutton"  data-shr_count="horizontal"  data-shr_href="http%3A%2F%2Ftimpner.com%2Fcomputing%2Freverse-engineering-a-postgresql-database%2F"  data-shr_title="Reverse+Engineering+a+PostgreSQL+Database" ></a></div><div
style="clear: both; min-height: 1px; height: 3px; width: 100%;" ></div><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/timpner?a=Gd0IwOtItsw:mBS2x17bNpw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/timpner?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/timpner?a=Gd0IwOtItsw:mBS2x17bNpw:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/timpner?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/timpner?a=Gd0IwOtItsw:mBS2x17bNpw:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/timpner?i=Gd0IwOtItsw:mBS2x17bNpw:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/timpner?a=Gd0IwOtItsw:mBS2x17bNpw:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/timpner?i=Gd0IwOtItsw:mBS2x17bNpw:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/timpner/~4/Gd0IwOtItsw" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://timpner.com/computing/reverse-engineering-a-postgresql-database/feed/</wfw:commentRss> <slash:comments>1</slash:comments> <feedburner:origLink>http://timpner.com/computing/reverse-engineering-a-postgresql-database/</feedburner:origLink></item> <item><title>Java Servlet &amp; JSP Form-based File Upload</title><link>http://feedproxy.google.com/~r/timpner/~3/DlbcBDzs2mk/</link> <comments>http://timpner.com/computing/java-servlet-jsp-form-based-file-upload/#comments</comments> <pubDate>Sat, 30 Oct 2010 01:09:18 +0000</pubDate> <dc:creator>Jay</dc:creator> <category><![CDATA[Computing]]></category> <category><![CDATA[Java]]></category><guid isPermaLink="false">http://timpner.com/?p=709</guid> <description><![CDATA[Surprisingly, Java Servlets and JSP do not have build-in support for handling form-based file uploads. However, there are several open source libraries available for this purpose, among which the Apache Commons FileUpload is one of the most stable. This post will demonstrate how to use this library to handle form-based file uploads using JSP technology. &#8230; <a
href="http://timpner.com/computing/java-servlet-jsp-form-based-file-upload/">Read more <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>Surprisingly, Java Servlets and JSP do not have build-in support for handling form-based file uploads. However, there are several open source libraries available for this purpose, among which the <strong>Apache Commons FileUpload</strong> is one of the most stable. This post will demonstrate how to use this library to handle form-based file uploads using JSP technology.</p><p>Two files will be required for this to work: the <a
href="http://jakarta.apache.org/commons/fileupload/" >Apache Commons FileUpload</a> library, as well as the <a
href="http://jakarta.apache.org/commons/io/" >Apache Commons IO</a> library.</p><p>In order to install them correctly, one needs to extract the downloaded archives and copy the <em>commons-fileupload-&lt;version&gt;.jar</em> and <em>commons-io-&lt;version&gt;.jar</em> to the WEB-INF/lib directory of the web app that is to be developed. If these libraries rather be available to all web applications on the server, the jar files should be copied to <em>$CATALINA_HOME/shared/lib/</em>, where $CATALINE_HOME is the root directory of the Tomcat installation.</p><p>The following assumes that two files have been set up: first, a simple HTML file with a form that allows the user to select the file to be uploaded. Note that <strong>enctype=&#8221;multipart/form-data&#8221;</strong> is essential here.</p><div
class="wp_syntax" ><div
class="code" ><pre class="html"  style="font-family:monospace;" >&lt;form method=&quot;POST&quot; action=&quot;action.jsp&quot; enctype=&quot;multipart/form-data&quot;&gt;
  &lt;input type=&quot;file&quot; name=&quot;file&quot;/&gt;
  &lt;input type=&quot;submit&quot;/&gt;
&lt;/form&gt;</pre></div></div><p>Second, a file <em>action.jsp</em> that receives the HTML file&#8217;s HTTP request and processes it. To do so, it will need to import several packages:</p><div
class="wp_syntax" ><div
class="code" ><pre class="java"  style="font-family:monospace;" ><span style="color: #339933;" >&lt;</span> <span style="color: #339933;" >%</span>@page <span style="color: #000000; font-weight: bold;" >import</span><span style="color: #339933;" >=</span><span style="color: #0000ff;" >&quot;org.apache.commons.fileupload.servlet.*&quot;</span><span style="color: #339933;" >%&gt;</span>
<span style="color: #339933;" >&lt;</span> <span style="color: #339933;" >%</span>@page <span style="color: #000000; font-weight: bold;" >import</span><span style="color: #339933;" >=</span><span style="color: #0000ff;" >&quot;org.apache.commons.fileupload.disk.*&quot;</span><span style="color: #339933;" >%&gt;</span>
<span style="color: #339933;" >&lt;</span> <span style="color: #339933;" >%</span>@page <span style="color: #000000; font-weight: bold;" >import</span><span style="color: #339933;" >=</span><span style="color: #0000ff;" >&quot;org.apache.commons.fileupload.*&quot;</span><span style="color: #339933;" >%&gt;</span>
<span style="color: #339933;" >&lt;</span> <span style="color: #339933;" >%</span>@page <span style="color: #000000; font-weight: bold;" >import</span><span style="color: #339933;" >=</span><span style="color: #0000ff;" >&quot;java.io.InputStream&quot;</span><span style="color: #339933;" >%&gt;</span></pre></div></div><p>The next thing to do is to check if the HTTP request is correctly encoded in the multipart format.</p><div
class="wp_syntax" ><div
class="code" ><pre class="java"  style="font-family:monospace;" ><span style="color: #000000; font-weight: bold;" >if</span> <span style="color: #009900;" >&#40;</span>ServletFileUpload.<span style="color: #006633;" >isMultipartContent</span><span style="color: #009900;" >&#40;</span>request<span style="color: #009900;" >&#41;</span><span style="color: #009900;" >&#41;</span><span style="color: #009900;" >&#123;</span>
  <span style="color: #666666; font-style: italic;" >// Process the request</span>
<span style="color: #009900;" >&#125;</span></pre></div></div><p>The actual parsing of the request is done via the ServletFileUpload class and the DiskFileItemFactory class. Here, the uploaded file is stored as a byte array in the session.</p><div
class="wp_syntax" ><div
class="code" ><pre class="java"  style="font-family:monospace;" >ServletFileUpload servletFileUpload <span style="color: #339933;" >=</span> <span style="color: #000000; font-weight: bold;" >new</span> ServletFileUpload<span style="color: #009900;" >&#40;</span><span style="color: #000000; font-weight: bold;" >new</span> DiskFileItemFactory<span style="color: #009900;" >&#40;</span><span style="color: #009900;" >&#41;</span><span style="color: #009900;" >&#41;</span><span style="color: #339933;" >;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;" >try</span> <span style="color: #009900;" >&#123;</span>
  @SuppressWarnings<span style="color: #009900;" >&#40;</span><span style="color: #0000ff;" >&quot;unchecked&quot;</span><span style="color: #009900;" >&#41;</span>
  List<span style="color: #339933;" >&lt;</span> fileitem<span style="color: #339933;" >&gt;</span> fileItemsList <span style="color: #339933;" >=</span> servletFileUpload.<span style="color: #006633;" >parseRequest</span><span style="color: #009900;" >&#40;</span>request<span style="color: #009900;" >&#41;</span><span style="color: #339933;" >;</span>
  <span style="color: #000000; font-weight: bold;" >for</span> <span style="color: #009900;" >&#40;</span>FileItem fileItem <span style="color: #339933;" >:</span> fileItemsList<span style="color: #009900;" >&#41;</span> <span style="color: #009900;" >&#123;</span>
    <span style="color: #000000; font-weight: bold;" >if</span> <span style="color: #009900;" >&#40;</span>fileItem.<span style="color: #006633;" >isFormField</span><span style="color: #009900;" >&#40;</span><span style="color: #009900;" >&#41;</span><span style="color: #009900;" >&#41;</span> <span style="color: #009900;" >&#123;</span>
      <span style="color: #666666; font-style: italic;" >/* The fileItem is not a file, but rather a name-value pair. */</span>
      <span style="color: #003399;" >String</span> name <span style="color: #339933;" >=</span> fileItem.<span style="color: #006633;" >getFieldName</span><span style="color: #009900;" >&#40;</span><span style="color: #009900;" >&#41;</span><span style="color: #339933;" >;</span>
      <span style="color: #003399;" >String</span> value <span style="color: #339933;" >=</span> fileItem.<span style="color: #006633;" >getString</span><span style="color: #009900;" >&#40;</span><span style="color: #009900;" >&#41;</span><span style="color: #339933;" >;</span>
      <span style="color: #666666; font-style: italic;" >// business logic here</span>
    <span style="color: #009900;" >&#125;</span> <span style="color: #000000; font-weight: bold;" >else</span> <span style="color: #009900;" >&#123;</span>
      <span style="color: #666666; font-style: italic;" >/* The fileItem is an uploaded file. */</span>
      <span style="color: #000066; font-weight: bold;" >byte</span><span style="color: #009900;" >&#91;</span><span style="color: #009900;" >&#93;</span> fileData <span style="color: #339933;" >=</span> fileItem.<span style="color: #006633;" >get</span><span style="color: #009900;" >&#40;</span><span style="color: #009900;" >&#41;</span><span style="color: #339933;" >;</span>
      session.<span style="color: #006633;" >setAttribute</span><span style="color: #009900;" >&#40;</span><span style="color: #0000ff;" >&quot;file&quot;</span>, fileData<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> <span style="color: #000000; font-weight: bold;" >catch</span> <span style="color: #009900;" >&#40;</span><span style="color: #003399;" >Exception</span> ex<span style="color: #009900;" >&#41;</span> <span style="color: #009900;" >&#123;</span>
  <span style="color: #666666; font-style: italic;" >/* Possible exceptions include the file exceeding the upload size limit. */</span>
<span style="color: #009900;" >&#125;</span></pre></div></div><p>This is only a very basic example, of course, and may not perform well with large files for example. Moreover, you might want to change the default settings for parsing the HTTP request, using the methods setSizeThreshold() and setRespository() of the DiskFileItemFactory class and the setSizeMax() method of the ServletFileUpload class.</p><div
class="shr-publisher-709" ></div><div
style="clear: both; min-height: 1px; height: 3px; width: 100%;" ></div><div
class="shareaholic-like-buttonset"  style="float:none;height:30px;" ><a
class="shareaholic-fblike"  data-shr_layout="button_count"  data-shr_showfaces="false"  data-shr_href="http%3A%2F%2Ftimpner.com%2Fcomputing%2Fjava-servlet-jsp-form-based-file-upload%2F"  data-shr_title="Java+Servlet+%26+JSP+Form-based+File+Upload" ></a><a
class="shareaholic-googleplusone"  data-shr_size="medium"  data-shr_count="true"  data-shr_href="http%3A%2F%2Ftimpner.com%2Fcomputing%2Fjava-servlet-jsp-form-based-file-upload%2F"  data-shr_title="Java+Servlet+%26+JSP+Form-based+File+Upload" ></a><a
class="shareaholic-tweetbutton"  data-shr_count="horizontal"  data-shr_href="http%3A%2F%2Ftimpner.com%2Fcomputing%2Fjava-servlet-jsp-form-based-file-upload%2F"  data-shr_title="Java+Servlet+%26+JSP+Form-based+File+Upload" ></a></div><div
style="clear: both; min-height: 1px; height: 3px; width: 100%;" ></div><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/timpner?a=DlbcBDzs2mk:_Jo0E9YN6UQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/timpner?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/timpner?a=DlbcBDzs2mk:_Jo0E9YN6UQ:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/timpner?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/timpner?a=DlbcBDzs2mk:_Jo0E9YN6UQ:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/timpner?i=DlbcBDzs2mk:_Jo0E9YN6UQ:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/timpner?a=DlbcBDzs2mk:_Jo0E9YN6UQ:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/timpner?i=DlbcBDzs2mk:_Jo0E9YN6UQ:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/timpner/~4/DlbcBDzs2mk" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://timpner.com/computing/java-servlet-jsp-form-based-file-upload/feed/</wfw:commentRss> <slash:comments>0</slash:comments> <feedburner:origLink>http://timpner.com/computing/java-servlet-jsp-form-based-file-upload/</feedburner:origLink></item> <item><title>NetBeans Platform Certified Training</title><link>http://feedproxy.google.com/~r/timpner/~3/_bMXiCYNLcM/</link> <comments>http://timpner.com/computing/netbeans-platform-certified-training/#comments</comments> <pubDate>Wed, 19 May 2010 14:29:06 +0000</pubDate> <dc:creator>Jay</dc:creator> <category><![CDATA[Computing]]></category> <category><![CDATA[NetBeans]]></category><guid isPermaLink="false">http://timpner.com/?p=695</guid> <description><![CDATA[NetBeans Platform Certified Training at the TU Braunschweig in Germany. <a
href="http://timpner.com/computing/netbeans-platform-certified-training/">Read more <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p><img
hspace="0"  vspace="2"  align="left"  border="1"  src="http://netbeans.org/images_www/visual-guidelines/NB-logo-single.jpg"  alt="NB logo single NetBeans Platform Certified Training" class="alignleft"   style="float: left; margin: 0 7px 2px 0; padding: 4px; border: 1px solid #555555" title="NetBeans Platform Certified Training" /> I am spending the next two days doing the NetBeans Platform Certified Training at the TU Braunschweig in Germany with Sun&#8217;s Geertjan Wielenga and <a
href="http://netbeans.org/community/contribute/dreamteam.html" >NetBeans Dream Team</a> member Aljoscha Rittner.</p><p>If you would also like to have a training on the NetBeans Platform at your university or company, just drop Geertjan an email or leave a comment at his <a
href="http://blogs.sun.com/geertjan/entry/braunschweig_on_the_netbeans_platform" >blog</a>.</p><p>For more information about the Certified Training, visit the <a
href="http://edu.netbeans.org/courses/nbplatform-certified-training/" >official course website</a>.</p><div
class="shr-publisher-695" ></div><div
style="clear: both; min-height: 1px; height: 3px; width: 100%;" ></div><div
class="shareaholic-like-buttonset"  style="float:none;height:30px;" ><a
class="shareaholic-fblike"  data-shr_layout="button_count"  data-shr_showfaces="false"  data-shr_href="http%3A%2F%2Ftimpner.com%2Fcomputing%2Fnetbeans-platform-certified-training%2F"  data-shr_title="NetBeans+Platform+Certified+Training" ></a><a
class="shareaholic-googleplusone"  data-shr_size="medium"  data-shr_count="true"  data-shr_href="http%3A%2F%2Ftimpner.com%2Fcomputing%2Fnetbeans-platform-certified-training%2F"  data-shr_title="NetBeans+Platform+Certified+Training" ></a><a
class="shareaholic-tweetbutton"  data-shr_count="horizontal"  data-shr_href="http%3A%2F%2Ftimpner.com%2Fcomputing%2Fnetbeans-platform-certified-training%2F"  data-shr_title="NetBeans+Platform+Certified+Training" ></a></div><div
style="clear: both; min-height: 1px; height: 3px; width: 100%;" ></div><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/timpner?a=_bMXiCYNLcM:Nno2OTIR6ME:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/timpner?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/timpner?a=_bMXiCYNLcM:Nno2OTIR6ME:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/timpner?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/timpner?a=_bMXiCYNLcM:Nno2OTIR6ME:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/timpner?i=_bMXiCYNLcM:Nno2OTIR6ME:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/timpner?a=_bMXiCYNLcM:Nno2OTIR6ME:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/timpner?i=_bMXiCYNLcM:Nno2OTIR6ME:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/timpner/~4/_bMXiCYNLcM" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://timpner.com/computing/netbeans-platform-certified-training/feed/</wfw:commentRss> <slash:comments>0</slash:comments> <feedburner:origLink>http://timpner.com/computing/netbeans-platform-certified-training/</feedburner:origLink></item> <item><title>GRE® POWERPREP with Windows 7 Pro</title><link>http://feedproxy.google.com/~r/timpner/~3/yEpnG_auGjY/</link> <comments>http://timpner.com/software/gre-powerprep-windows-7-pro/#comments</comments> <pubDate>Mon, 12 Oct 2009 06:08:29 +0000</pubDate> <dc:creator>Jay</dc:creator> <category><![CDATA[Software]]></category> <category><![CDATA[GRE®]]></category> <category><![CDATA[Windows 7]]></category><guid isPermaLink="false">http://timpner.com/?p=529</guid> <description><![CDATA[Everybody who finds himself in the situation that he or she has to take the GRE General Test will receive a CD with the GRE® POWERPREP software from ETS a few days after registering for the test. Alternatively, the software can be downloaded from the ETS website. However, it only works with Windows OS up &#8230; <a
href="http://timpner.com/software/gre-powerprep-windows-7-pro/">Read more <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>Everybody who finds himself in the situation that he or she has to take the GRE General Test will receive a CD with the GRE® POWERPREP software from ETS a few days after registering for the test. Alternatively, the software can be downloaded from the ETS website.</p><p>However, it only works with Windows OS up to XP. With Vista users experienced a lot of trouble trying to install POWERPREP, but using the compatibility mode they were able to start and use the test prep material. Nevertheless, using Windows 7 I could not accomplish to get it startet, even with the compatibility mode: the window just flickered and nothing else happened.</p><p>A possible solution for those, who do not want to install Windows XP on a separate partition, is the new Windows 7 XP mode. The XP mode offers the capability to run a Windows XP environment from your Windows 7 desktop. It therefore requires a processor with the Intel® Virtualization Technology or AMD-V™ turned on and Windows 7 Professional or higher. The <a
href="http://processorfinder.intel.com/" >Intel® Processor Spec Finder</a> helps to find out whether your (Intel) CPU meets these requirement.</p><p>If so, you can download <a
href="http://www.microsoft.com/windows/virtual-pc/download.aspx" >Virtual PC and the XP mode installer</a>. After the installation a reboot is required. Within the XP mode POWERPREP installs and runs smoothly.</p><p><em>GRE® POWERPREP and GRE® General Test are registered trademarks of Educational Testing Service (ETS). This website is not endorsed or approved by ETS.</em></p><div
class="shr-publisher-529" ></div><div
style="clear: both; min-height: 1px; height: 3px; width: 100%;" ></div><div
class="shareaholic-like-buttonset"  style="float:none;height:30px;" ><a
class="shareaholic-fblike"  data-shr_layout="button_count"  data-shr_showfaces="false"  data-shr_href="http%3A%2F%2Ftimpner.com%2Fsoftware%2Fgre-powerprep-windows-7-pro%2F"  data-shr_title="GRE%C2%AE+POWERPREP+with+Windows+7+Pro" ></a><a
class="shareaholic-googleplusone"  data-shr_size="medium"  data-shr_count="true"  data-shr_href="http%3A%2F%2Ftimpner.com%2Fsoftware%2Fgre-powerprep-windows-7-pro%2F"  data-shr_title="GRE%C2%AE+POWERPREP+with+Windows+7+Pro" ></a><a
class="shareaholic-tweetbutton"  data-shr_count="horizontal"  data-shr_href="http%3A%2F%2Ftimpner.com%2Fsoftware%2Fgre-powerprep-windows-7-pro%2F"  data-shr_title="GRE%C2%AE+POWERPREP+with+Windows+7+Pro" ></a></div><div
style="clear: both; min-height: 1px; height: 3px; width: 100%;" ></div><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/timpner?a=yEpnG_auGjY:qJ8FiDyM5Eg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/timpner?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/timpner?a=yEpnG_auGjY:qJ8FiDyM5Eg:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/timpner?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/timpner?a=yEpnG_auGjY:qJ8FiDyM5Eg:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/timpner?i=yEpnG_auGjY:qJ8FiDyM5Eg:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/timpner?a=yEpnG_auGjY:qJ8FiDyM5Eg:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/timpner?i=yEpnG_auGjY:qJ8FiDyM5Eg:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/timpner/~4/yEpnG_auGjY" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://timpner.com/software/gre-powerprep-windows-7-pro/feed/</wfw:commentRss> <slash:comments>4</slash:comments> <feedburner:origLink>http://timpner.com/software/gre-powerprep-windows-7-pro/</feedburner:origLink></item> <item><title>WordPress, and Server Error 500</title><link>http://feedproxy.google.com/~r/timpner/~3/rXz55BMNIb4/</link> <comments>http://timpner.com/software/wordpress-server-error-500/#comments</comments> <pubDate>Mon, 30 Mar 2009 16:48:01 +0000</pubDate> <dc:creator>Jay</dc:creator> <category><![CDATA[Software]]></category> <category><![CDATA[Wordpress]]></category><guid isPermaLink="false">http://timpner.com/?p=476</guid> <description><![CDATA[Like others, whose webhoster is 1and1 and who use WordPress, I experienced a lot of problems with some very popular plugins, such as qTranslate or NextGen. After activating the plugin, an Internal server error 500 occured whilst using the admin panel, even preventing me from deactivating the plugin. In this case, there&#8217;s only one option &#8230; <a
href="http://timpner.com/software/wordpress-server-error-500/">Read more <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p><img
hspace="0"  vspace="2"  align="left"  border="1"  alt="blue m WordPress, and Server Error 500" src="http://s.wordpress.org/about/images/logo-blue/blue-m.png"  title="WordPress Logo"  class="alignleft"  width="100"  height="100"   style="float: left; margin: 0 7px 2px 0; padding: 4px; border: 1px solid #555555" />Like others, whose webhoster is 1and1 and who use WordPress, I experienced a lot of problems with some very popular plugins, such as qTranslate or NextGen.<br/> After activating the plugin, an</p><blockquote
style="margin-left: 105px; padding-left: 105px;" ><p>Internal server error 500</p></blockquote><p>occured whilst using the admin panel, even preventing me from deactivating the plugin. In this case, there&#8217;s only one option left: connect via FTP to your webserver, change directory to your WordPress root, and in wp-conten/plugins rename the plugin directory. This way, WordPress won&#8217;t find it anymore and will deactivate the plugin automatically.</p><p>But, of course, there has to be a workaround, instead of simply not using certain plugins. The following activates PHP5 on your webspace and worked out perfectly for me:</p><ol><li>Open (or create) a <tt>.htaccess</tt> file in your WordPress root.</li><li>Add these lines:<div
class="wp_syntax" ><div
class="code" ><pre class="apache"  style="font-family:monospace;" ><span style="color: #00007f;" >Options</span> <span style="color: #0000ff;" >All</span> -<span style="color: #0000ff;" >Indexes</span>
<span style="color: #00007f;" >AddType</span> x-mapp-php5 .php
<span style="color: #00007f;" >AddHandler</span> x-mapp-php5 .php</pre></div></div></li></ol><div
class="shr-publisher-476" ></div><div
style="clear: both; min-height: 1px; height: 3px; width: 100%;" ></div><div
class="shareaholic-like-buttonset"  style="float:none;height:30px;" ><a
class="shareaholic-fblike"  data-shr_layout="button_count"  data-shr_showfaces="false"  data-shr_href="http%3A%2F%2Ftimpner.com%2Fsoftware%2Fwordpress-server-error-500%2F"  data-shr_title="WordPress%2C+and+Server+Error+500" ></a><a
class="shareaholic-googleplusone"  data-shr_size="medium"  data-shr_count="true"  data-shr_href="http%3A%2F%2Ftimpner.com%2Fsoftware%2Fwordpress-server-error-500%2F"  data-shr_title="WordPress%2C+and+Server+Error+500" ></a><a
class="shareaholic-tweetbutton"  data-shr_count="horizontal"  data-shr_href="http%3A%2F%2Ftimpner.com%2Fsoftware%2Fwordpress-server-error-500%2F"  data-shr_title="WordPress%2C+and+Server+Error+500" ></a></div><div
style="clear: both; min-height: 1px; height: 3px; width: 100%;" ></div><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/timpner?a=rXz55BMNIb4:5B_2vaHc7a4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/timpner?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/timpner?a=rXz55BMNIb4:5B_2vaHc7a4:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/timpner?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/timpner?a=rXz55BMNIb4:5B_2vaHc7a4:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/timpner?i=rXz55BMNIb4:5B_2vaHc7a4:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/timpner?a=rXz55BMNIb4:5B_2vaHc7a4:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/timpner?i=rXz55BMNIb4:5B_2vaHc7a4:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/timpner/~4/rXz55BMNIb4" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://timpner.com/software/wordpress-server-error-500/feed/</wfw:commentRss> <slash:comments>12</slash:comments> <feedburner:origLink>http://timpner.com/software/wordpress-server-error-500/</feedburner:origLink></item> <item><title>ISTQB Certified Tester – Foundation Level</title><link>http://feedproxy.google.com/~r/timpner/~3/kBmCZD-TtyQ/</link> <comments>http://timpner.com/computing/istqb-certified-tester-foundation-level/#comments</comments> <pubDate>Mon, 23 Feb 2009 15:23:38 +0000</pubDate> <dc:creator>Jay</dc:creator> <category><![CDATA[Computing]]></category> <category><![CDATA[Certified Tester]]></category> <category><![CDATA[ISTQB]]></category><guid isPermaLink="false">http://timpner.com/?p=386</guid> <description><![CDATA[Today, I took the ISTQB certification exam for the foundation level and some things struck me that might be of some interest for future examinees. As one has to sign a formal obligation saying that you&#8217;re not allowed to give information about exam questions, I cannot be very specific. However, here are some hints: The &#8230; <a
href="http://timpner.com/computing/istqb-certified-tester-foundation-level/">Read more <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>Today, I took the ISTQB certification exam for the foundation level and some things struck me that might be of some interest for future examinees. As one has to sign a formal obligation saying that you&#8217;re not allowed to give information about exam questions, I cannot be very specific. However, here are some hints:</p><ul><li>The standard textbook for the exam, &#8220;Software Testing Foundations &#8211; A Study Guide for the Certified Tester Exam&#8221; written by Spillner and Linz, is suitable for giving a <strong>survey</strong> and it prepares you very well for the chapters &#8220;Tool support for testing&#8221;, &#8220;Fundamentals of testing&#8221; and some other. Learn them by heart!</li><li>Still, even if you know the whole book literally by heart, there is only a not-so-good chance to pass! In order to be really good prepared, you should also learn the <strong>Syllabus</strong>, which can be downloaded from the ISTQB website. You should learn the Syllabus really good, otherwise a lot of questions are unanswerable, because they do not depend on understanding but the wording of the Syllabus.</li><li>Some questions are really incomprehensible, even if you are well prepared. At least one question in my exam didn&#8217;t make any sense, so you better anticipate that some questions are like gambling.</li><li>The word is that some people offer sample papers / sample exams / sample solutions on the web. If you like, use them to a impression of how questions are asked, but better be careful with the solutions&#8211;they often are wrong! So, don&#8217;t rely on things on the web, but on the Syllabus.</li></ul><p>The examination results are send via email one week after the exam, at the latest. Of course, I&#8217;m gonna post my results as soon as I get them.</p><p><strong>Update:</strong><br/> Just got my results: <strong>PASSED</strong> with 85%! <img
hspace="0"  vspace="2"  align="left"  border="1"  src="http://timpner.com/wp-includes/images/smilies/icon_wink.gif"  alt="icon wink ISTQB Certified Tester   Foundation Level" class="wp-smiley"   style="float: left; margin: 0 7px 2px 0; padding: 4px; border: 1px solid #555555" title="ISTQB Certified Tester   Foundation Level" /></p><div
class="shr-publisher-386" ></div><div
style="clear: both; min-height: 1px; height: 3px; width: 100%;" ></div><div
class="shareaholic-like-buttonset"  style="float:none;height:30px;" ><a
class="shareaholic-fblike"  data-shr_layout="button_count"  data-shr_showfaces="false"  data-shr_href="http%3A%2F%2Ftimpner.com%2Fcomputing%2Fistqb-certified-tester-foundation-level%2F"  data-shr_title="ISTQB+Certified+Tester+-+Foundation+Level" ></a><a
class="shareaholic-googleplusone"  data-shr_size="medium"  data-shr_count="true"  data-shr_href="http%3A%2F%2Ftimpner.com%2Fcomputing%2Fistqb-certified-tester-foundation-level%2F"  data-shr_title="ISTQB+Certified+Tester+-+Foundation+Level" ></a><a
class="shareaholic-tweetbutton"  data-shr_count="horizontal"  data-shr_href="http%3A%2F%2Ftimpner.com%2Fcomputing%2Fistqb-certified-tester-foundation-level%2F"  data-shr_title="ISTQB+Certified+Tester+-+Foundation+Level" ></a></div><div
style="clear: both; min-height: 1px; height: 3px; width: 100%;" ></div><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/timpner?a=kBmCZD-TtyQ:INSkrRfyvP4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/timpner?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/timpner?a=kBmCZD-TtyQ:INSkrRfyvP4:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/timpner?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/timpner?a=kBmCZD-TtyQ:INSkrRfyvP4:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/timpner?i=kBmCZD-TtyQ:INSkrRfyvP4:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/timpner?a=kBmCZD-TtyQ:INSkrRfyvP4:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/timpner?i=kBmCZD-TtyQ:INSkrRfyvP4:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/timpner/~4/kBmCZD-TtyQ" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://timpner.com/computing/istqb-certified-tester-foundation-level/feed/</wfw:commentRss> <slash:comments>56</slash:comments> <feedburner:origLink>http://timpner.com/computing/istqb-certified-tester-foundation-level/</feedburner:origLink></item> <item><title>3DScanner completed</title><link>http://feedproxy.google.com/~r/timpner/~3/khSH7X_tMsE/</link> <comments>http://timpner.com/computing/3dscanner/#comments</comments> <pubDate>Sun, 08 Feb 2009 16:07:09 +0000</pubDate> <dc:creator>Jay</dc:creator> <category><![CDATA[Computing]]></category> <category><![CDATA[3DScanner]]></category> <category><![CDATA[C++]]></category> <category><![CDATA[OpenGL]]></category> <category><![CDATA[Projects]]></category><guid isPermaLink="false">http://timpner.com/2009/02/08/3dscanner-fertiggestellt/</guid> <description><![CDATA[Today, after 4 months&#8217; work, we completed our team project software 3DScanner. The project&#8217;s goal was to capture real-world objects of any size and recreate them as 3D models in a virtual environment. 3DScanner has a lot of advantages compared to other (even commercial) products. Firstly, only one camera is needed. Any off-the-shelf digital camera &#8230; <a
href="http://timpner.com/computing/3dscanner/">Read more <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p><img
hspace="0"  vspace="2"  align="left"  border="1"  class="alignleft size-medium wp-image-293"  src="http://timpner.com/wp-content/uploads/2009/02/gauss-2-300x274.png"  alt="gauss 2 300x274 3DScanner completed" width="300"  height="274"   style="float: left; margin: 0 7px 2px 0; padding: 4px; border: 1px solid #555555" title="3DScanner completed" />Today, after 4 months&#8217; work, we completed our team project software <strong>3DScanner</strong>. The project&#8217;s goal was to capture real-world objects of any size and recreate them as <em>3D models</em> in a virtual environment.</p><p>3DScanner has a lot of advantages compared to other (even commercial) products. Firstly, only one camera is needed. Any off-the-shelf digital camera can be used. It does not have to be stabilized in any way (i.e. no tripod necessary), neither does it have to be calibrated. Camera calibration takes place automatically after downloading the images to a computer.</p><p>The process is fully automatic, only silhouette images have to be created manually. We propose using GIMP to cut out the objects and and fill the background with black. Then, 3DScanner is able to create a <em>mesh</em> in the <em>obj file format</em>.</p><p>For further information, please visit the <a
title="3DScanner"  href="/projects/3dscanner" >project website</a>.</p><div
class="shr-publisher-289" ></div><div
style="clear: both; min-height: 1px; height: 3px; width: 100%;" ></div><div
class="shareaholic-like-buttonset"  style="float:none;height:30px;" ><a
class="shareaholic-fblike"  data-shr_layout="button_count"  data-shr_showfaces="false"  data-shr_href="http%3A%2F%2Ftimpner.com%2Fcomputing%2F3dscanner%2F"  data-shr_title="3DScanner+completed" ></a><a
class="shareaholic-googleplusone"  data-shr_size="medium"  data-shr_count="true"  data-shr_href="http%3A%2F%2Ftimpner.com%2Fcomputing%2F3dscanner%2F"  data-shr_title="3DScanner+completed" ></a><a
class="shareaholic-tweetbutton"  data-shr_count="horizontal"  data-shr_href="http%3A%2F%2Ftimpner.com%2Fcomputing%2F3dscanner%2F"  data-shr_title="3DScanner+completed" ></a></div><div
style="clear: both; min-height: 1px; height: 3px; width: 100%;" ></div><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/timpner?a=khSH7X_tMsE:fcbCbaqTfs0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/timpner?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/timpner?a=khSH7X_tMsE:fcbCbaqTfs0:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/timpner?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/timpner?a=khSH7X_tMsE:fcbCbaqTfs0:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/timpner?i=khSH7X_tMsE:fcbCbaqTfs0:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/timpner?a=khSH7X_tMsE:fcbCbaqTfs0:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/timpner?i=khSH7X_tMsE:fcbCbaqTfs0:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/timpner/~4/khSH7X_tMsE" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://timpner.com/computing/3dscanner/feed/</wfw:commentRss> <slash:comments>1</slash:comments> <feedburner:origLink>http://timpner.com/computing/3dscanner/</feedburner:origLink></item> </channel> </rss><!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced
Database Caching using disk: basic

Served from: timpner.com @ 2012-01-24 18:54:11 -->

