<?xml version="1.0"?>
<rss version="2.0">
<channel>
  <title>Geschriebene Worte - English category</title>
  <link>http://blog.uhilger.de:80/default/categories/en/</link>
  <description>Fotografie, Software-Entwicklung, ...</description>
  <language>en</language>
  <copyright>Blog Owner</copyright>
  <lastBuildDate>Tue, 02 Mar 2010 07:19:52 GMT</lastBuildDate>
  <generator>Pebble (http://pebble.sourceforge.net)</generator>
  <docs>http://backend.userland.com/rss</docs>
  
  
  <item>
    <title>Staged vs. Candid</title>
    <link>http://blog.uhilger.de:80/default/2009/07/11/staged_vs_candid.html</link>
    
      
        <description>
          I have been asked to make photographs during a wedding in the family that commenced yesterday. It was difficult because I am nothing less than a portrait photographer or one for staged wedding photographs. And I never did a wedding so far except for my own. No own photographs from that occasion for obvious reasons ;-)&lt;br /&gt;
&lt;br /&gt;
Looking at work from top notch portrait and people photographers such as &lt;a target=&#034;_blank&#034; href=&#034;http://www.louiseburton.co.uk/&#034;&gt;Louise Burton&lt;/a&gt; or &lt;a target=&#034;_blank&#034; href=&#034;http://billwadman.com/&#034;&gt;Bill Wadman&lt;/a&gt; I clearly see my limitations in this field. I feel so much more comfortable in candid and spontaneous situations.&lt;br /&gt;
&lt;br /&gt;
&lt;a target=&#034;_blank&#034; href=&#034;http://www.photochrome.de/blog,917&#034;&gt;&lt;img height=&#034;334&#034; width=&#034;500&#034; border=&#034;1&#034; align=&#034;middle&#034; alt=&#034;&#034; src=&#034;http://data.photochrome.de/img/20090710_152036_0012_1.JPG&#034; /&gt;&lt;/a&gt;&lt;br /&gt;
Staged: Wedding of Christine and Till, July 10, 2009&lt;br /&gt;
(click for larger view)&lt;br /&gt;
&lt;br /&gt;
However, I accepted the couples wish and did the shooting having mutually agreed to do no staged shots except for some in the park with the couple, their families, groomsman and maid of honour (are these the correct english words for witnesses to the marriage?...).&lt;br /&gt;
&lt;br /&gt;
Worse comes to worse the light yesterday was horrible, I think it must have been the coldest, gustiest and cloudiest day in July I ever remember. &lt;br /&gt;
&lt;br /&gt;
&lt;a href=&#034;http://www.photochrome.de/blog,918&#034; target=&#034;_blank&#034;&gt;&lt;img height=&#034;334&#034; width=&#034;500&#034; border=&#034;1&#034; align=&#034;middle&#034; src=&#034;http://data.photochrome.de/img/20090710_205944_0214_1.JPG&#034; alt=&#034;&#034; /&gt;&lt;/a&gt;&lt;br /&gt;
Unstaged: Christine is about to throw her bridal bouquet, July 10, 2009&lt;br /&gt;
(click for larger view)&lt;br /&gt;
&lt;br /&gt;
Finally I got some decent photographs from the two on their happy day but, gee, it was hard. My world is the true moment, spontaneous, unpredicted. I think with staged shots such as portrait or wedding sessions too such unpredicted, spontaneous moments happen but to generate and capture such moments from a staged situation is what makes an exceptional portrait photographer such as the mentioned in my eyes. &lt;br /&gt;
&lt;br /&gt;
Stick to your guns. I know I won&#039;t succeed in staged shots evah.
        </description>
      
      
    
    
    
    <category>English</category>
    
    <category>Photography</category>
    
    <comments>http://blog.uhilger.de:80/default/2009/07/11/staged_vs_candid.html#comments</comments>
    <guid isPermaLink="true">http://blog.uhilger.de:80/default/2009/07/11/staged_vs_candid.html</guid>
    <pubDate>Sat, 11 Jul 2009 10:30:32 GMT</pubDate>
  </item>
  
  <item>
    <title>Chinese Democracy</title>
    <link>http://blog.uhilger.de:80/default/2009/06/13/chinese_democracy.html</link>
    
      
        <description>
          I enjoy a lot of different music, Jazz, Blues, Soul, Funk, Rhythm And Blues, Rock And Roll, Rock, Hard Rock, Indy, Electro, etc. you name it. For quite a while I have not had new Hard Rock music, I listened to the stuff I had and liked it as the mood required. &lt;br /&gt;
&lt;br /&gt;
It was only when I saw the DVD of &lt;em&gt;Body Of Lies&lt;/em&gt; that I heard something interesting that was new to me. I looked a little closer in the end titles and it turned out that it was &lt;em&gt;If The World&lt;/em&gt; by no less than Guns N&#039; Roses. &lt;br /&gt;
&lt;br /&gt;
The album was already published in November 2008 but I did not notice at all. I am not a big fan of Guns N&#039; Roses as I am not of most music artists. I know when I like something I hear and this one I liked instantly without knowing what it was.&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
Strange how something you like comes to you by total coincidence. Anyone not knowing their album &lt;em&gt;Chinese Democracy&lt;/em&gt; give it a try. You got to listen to it more than once to appreciate it completely. I like the &lt;a title=&#034;read the review of Chinese Democracy at Allmusic&#034; target=&#034;_blank&#034; href=&#034;http://www.allmusic.com/cg/amg.dll?p=amg&amp;amp;sql=10:kcftxzwkldje&#034; id=&#034;gp_e&#034;&gt;review&lt;/a&gt; of it at Allmusic too, it fits quite well.
        </description>
      
      
    
    
    
    <category>English</category>
    
    <category>Other</category>
    
    <comments>http://blog.uhilger.de:80/default/2009/06/13/chinese_democracy.html#comments</comments>
    <guid isPermaLink="true">http://blog.uhilger.de:80/default/2009/06/13/chinese_democracy.html</guid>
    <pubDate>Sat, 13 Jun 2009 15:30:31 GMT</pubDate>
  </item>
  
  <item>
    <title>Recapture Focus</title>
    <link>http://blog.uhilger.de:80/default/2009/06/07/recapture_focus.html</link>
    
      
        <description>
          Ever since I got a DSLR I missed the focusing screen I know from non digital cameras. I am a manual guy, I always set exposure and aperture manually. And typically I focus manually too.&lt;br /&gt;
&lt;br /&gt;
But with auto focus systems on DSLRs there is no split screen for manual focusing anymore. I got by with using AF meanwhile. But now I finally got me the split screen focusing screen I am used to and it is such a relief.&lt;br /&gt;
&lt;br /&gt;
No pressing of silly buttons, no positioning of auto focus points anymore. A quick twist of the focusing ring and I am done.&lt;br /&gt;
&lt;br /&gt;
&lt;img height=&#034;334&#034; width=&#034;500&#034; border=&#034;1&#034; align=&#034;middle&#034; src=&#034;http://blog.uhilger.de/default/images/haoda.JPG&#034; alt=&#034;&#034; /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&#034;text-align: center;&#034;&gt;&lt;em&gt;Haoda 5D-L focusing screen&lt;/em&gt;&lt;br /&gt;
&lt;/div&gt;
&lt;br /&gt;
I obtained the focusing screen from &lt;a title=&#034;visit the Haoda website&#034; target=&#034;_blank&#034; href=&#034;http://haodascreen.com/Canon5D.aspx&#034; id=&#034;h-hm&#034;&gt;Haoda&lt;/a&gt; in the U.S. and I can recommend it to anyone with similar needs. Two simple steps and the focusing screen is changed, it is very easy and well explained in the documentation. &lt;br /&gt;
&lt;br /&gt;
There is virtually no change in claritiy of the viewfinder. To achieve maximum accuracy, the 5D can be set to adapt metering to the new focusing screen using custom function 00 (set to 2 for Ee-S) and all is finished.
        </description>
      
      
    
    
    
    <category>English</category>
    
    <category>Photography</category>
    
    <comments>http://blog.uhilger.de:80/default/2009/06/07/recapture_focus.html#comments</comments>
    <guid isPermaLink="true">http://blog.uhilger.de:80/default/2009/06/07/recapture_focus.html</guid>
    <pubDate>Sun, 07 Jun 2009 15:12:48 GMT</pubDate>
  </item>
  
  <item>
    <title>Vom Fach?</title>
    <link>http://blog.uhilger.de:80/default/2009/05/09/vom_fach.html</link>
    
      
        <description>
          Heute bin ich in ein Fotofachgesch&amp;auml;ft spaziert, weil ich Abz&amp;uuml;ge von einigen Fotografien anfertigen lassen wollte. Normalerweise lasse ich das im Internet machen, bei einer Firma, die Laserbelichtungen mit Durst Lambda o.&amp;auml;. macht. Aber da ich gerade beim Einkaufen war, dachte ich, ich probiere einmal das Fotofachgesch&amp;auml;ft in der N&amp;auml;he.&lt;br /&gt;
&lt;br /&gt;
Der Verk&amp;auml;ufer hat ziemlich verst&amp;auml;ndnislos geschaut, als er meine Frage verneinte, ob die im Gesch&amp;auml;ft angebotenen Abz&amp;uuml;ge in 20x15 auch auf DIN A4 zentriert im Querformat ausbelichtet werden k&amp;ouml;nnen. Abz&amp;uuml;ge im Querformat auf DIN A4 zentriert mit 23mm an der l&amp;auml;ngsten Kante konnte er schon garnicht nicht anbieten.&lt;br /&gt;
&lt;br /&gt;
Ein Blick auf das im Hintergrund herumstehende Fotolabor lie&amp;szlig; mich zwar schon die Frage formulieren, warum das nicht geht, wo doch das Fotolabor diese Dinge durchaus erlaubt, aber ich lie&amp;szlig; die Frage ungestellt. Eigentlich eine Gelegenheit, einen Aufpreis zu verlangen, aber von dieser Erkenntnis war beim &amp;quot;Verk&amp;auml;ufer&amp;quot; keine Spur.&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
Stattdessen fragte ich, wie lange die Abz&amp;uuml;ge haltbar sind, aber das konnte der Verk&amp;auml;ufer auch nicht sagen. &amp;quot;Wei&amp;szlig; ich nicht, ein paar Jahre, glaube ich&amp;quot; war seine Antwort und er schob mir ein etwa 10 x 10 cm gro&amp;szlig;es St&amp;uuml;ck Fotopapier als Beispiel her&amp;uuml;ber. &lt;br /&gt;
&lt;br /&gt;
Ich sagte, das Papierbeispiel l&amp;auml;&amp;szlig;t nicht auf Haltbarkeit und nur bedingt auf Qualit&amp;auml;t schlie&amp;szlig;en. Wieder nur verst&amp;auml;ndnislose Blicke. Ich bin beileibe kein Experte, was die Ausbelichtung von digitalen Fotografien angeht. Aber was dieser Zeitgenosse alles nicht wu&amp;szlig;te, lie&amp;szlig; mich schon sehr staunen. &lt;br /&gt;
&lt;br /&gt;
Es ist klar, da&amp;szlig; viele Kunden sich mit dem zufrieden geben, was im Gesch&amp;auml;ft angeboten wird und nicht gro&amp;szlig; fragen. Aber meine Fragen sollten einer Fachkraft nicht fremd sein. Wenn &amp;quot;Fotofachgesch&amp;auml;fte&amp;quot; billige ungelernte Mitarbeiter besch&amp;auml;ftigen, sind es keine Fachgesch&amp;auml;fte. &lt;br /&gt;
&lt;br /&gt;
Schade, aber ich lasse demn&amp;auml;chst wieder &amp;uuml;ber das Internet anfertigen. Und zum Gl&amp;uuml;ck gibt es zudem noch Sander in Frankfurt. Ich frage mich blo&amp;szlig;, warum das so sein mu&amp;szlig;.&lt;br /&gt;
&lt;br /&gt;
Ich habe woanders dann noch zwei Packungen 280g Hochglanzpapier von HP gekauft und zwei Fotografien auf meinem alten Tintenstrahldrucker zuhause ausgedruckt. DIN A4 quer, 23mm an der l&amp;auml;ngsten Kante, zentriert. Nur so als Trostpflaster. &lt;br /&gt;
&lt;br /&gt;
:-D &lt;br /&gt;
&lt;br /&gt;
&lt;img height=&#034;334&#034; width=&#034;500&#034; border=&#034;1&#034; src=&#034;http://www.uhilger.de/default/images/own_ink_prints.jpg&#034; alt=&#034;&#034; /&gt;
        </description>
      
      
    
    
    
    <category>English</category>
    
    <category>Photography</category>
    
    <comments>http://blog.uhilger.de:80/default/2009/05/09/vom_fach.html#comments</comments>
    <guid isPermaLink="true">http://blog.uhilger.de:80/default/2009/05/09/vom_fach.html</guid>
    <pubDate>Sat, 09 May 2009 18:27:57 GMT</pubDate>
  </item>
  
  <item>
    <title>Keep It Simple</title>
    <link>http://blog.uhilger.de:80/default/2009/02/25/keep_it_simple.html</link>
    
      
        <description>
          Today I read an article about how to send an HTTP request and parse the XML response using JavaFX [1]. Being used to plain old Java syntax the code examples from the article looked unfamiliar and not very clear. &lt;br /&gt;
&lt;br /&gt;
I thought why not write a similar article about how to do the same with plain old Java? So here it is: How to send a HTTP request and read an XML response with plain old Java. &lt;br /&gt;
&lt;h4&gt;How to send a HTTP request&lt;/h4&gt;
To send a HTTP request we create a class &lt;span style=&#034;font-family: Courier New;&#034;&gt;HttpRequest&lt;/span&gt; as follows&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&#034;margin-left: 40px; background-color: rgb(255, 242, 204);&#034;&gt;public class HttpRequest {&lt;br /&gt;
&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;public HttpRequest() {&lt;br /&gt;
&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;super();&lt;br /&gt;
&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;}&lt;br /&gt;
&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;public static InputStream get(String urlStr) throws Exception {&lt;br /&gt;
&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;return readFrom(urlStr, null);&lt;br /&gt;
&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;}&lt;br /&gt;
&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;public static InputStream post(String urlStr, String post) &lt;br /&gt;
&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;throws Exception &lt;br /&gt;
&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;{&lt;br /&gt;
&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;return readFrom(urlStr, post);&lt;br /&gt;
&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;}&lt;br /&gt;
&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;private static InputStream readFrom(String urlStr, String post) &lt;br /&gt;
&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;throws MalformedURLException, IOException &lt;br /&gt;
&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;{&lt;br /&gt;
&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;URLConnection conn = new URL(urlStr).openConnection();&lt;br /&gt;
&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;conn.setConnectTimeout(15000);&lt;br /&gt;
&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;conn.setReadTimeout(15000);&lt;br /&gt;
&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;conn.setDoInput(true);&lt;br /&gt;
&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;if (post != null &amp;amp;&amp;amp; post.length() &amp;gt; 0) {&lt;br /&gt;
&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;conn.setDoOutput(true);&lt;br /&gt;
&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;DataOutputStream output = &lt;br /&gt;
&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;new DataOutputStream(conn.getOutputStream());&lt;br /&gt;
&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;output.writeBytes(post);&lt;br /&gt;
&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;output.flush();&lt;br /&gt;
&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;output.close();&lt;br /&gt;
&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;}&lt;br /&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;r&lt;span&gt;&lt;/span&gt;eturn conn.getInputStream();&lt;br /&gt;
&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;}&lt;br /&gt;
}&lt;br /&gt;
&lt;/div&gt;
&lt;span&gt;&lt;br /&gt;
&lt;/span&gt;Certainly you now might say, hey, that&#039;s pretty much code, why not just use the JavaFX version? Well, that&#039;s the amazing thing with Java classes, they&#039;re reusable. With above class now existing [2] all you actually need is one line of code whenever you like to send a HTTP request:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&#034;margin-left: 40px; background-color: rgb(255, 242, 204);&#034;&gt;&lt;span style=&#034;font-family: Courier New;&#034;&gt;InputStream is = HttpRequest.get(&amp;quot;http://www.java.net&amp;quot;);&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;
&lt;h4&gt;How to read an XML response&lt;/h4&gt;
The same applies for reading the response from a HTTP request that is returned in XML format. We simply create an XML reader class that is reusable for any XML response. &lt;br /&gt;
&lt;br /&gt;
&lt;div style=&#034;margin-left: 40px; background-color: rgb(255, 242, 204);&#034;&gt;&lt;span&gt;public class XmlReader implements XmlParserCallback {&lt;/span&gt;&lt;br /&gt;
&lt;span&gt;&amp;nbsp; public XmlReader() {&lt;/span&gt;&lt;br /&gt;
&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; super();&lt;/span&gt;&lt;br /&gt;
&lt;span&gt;&amp;nbsp; }&lt;/span&gt;&lt;br /&gt;
&lt;span&gt;&amp;nbsp; public void read(InputStream is) throws IOException, IllegalCharacterException {&lt;/span&gt;&lt;br /&gt;
&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; XmlParser parser = new XmlParser(this);&lt;/span&gt;&lt;br /&gt;
&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; BufferedReader r = new BufferedReader(new InputStreamReader(is));&lt;/span&gt;&lt;br /&gt;
&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; String line = r.readLine();&lt;/span&gt;&lt;br /&gt;
&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (line != null) {&lt;/span&gt;&lt;br /&gt;
&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; parser.parse(line);&lt;/span&gt;&lt;br /&gt;
&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; line = r.readLine();&lt;/span&gt;&lt;br /&gt;
&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br /&gt;
&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; r.close();&lt;/span&gt;&lt;br /&gt;
&lt;span&gt;&amp;nbsp; }&lt;/span&gt;&lt;br /&gt;
&lt;span&gt;&amp;nbsp; public void handleStartTag(String tagName, AttributeSet a) {&lt;/span&gt;&lt;br /&gt;
&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(&amp;quot;start tag &amp;quot; + tagName);&lt;/span&gt;&lt;br /&gt;
&lt;span&gt;&amp;nbsp; }&lt;/span&gt;&lt;br /&gt;
&lt;span&gt;&amp;nbsp; public void handleEndTag(String tagName) {&lt;/span&gt;&lt;br /&gt;
&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(&amp;quot;end tag &amp;quot; + tagName);&lt;/span&gt;&lt;br /&gt;
&lt;span&gt;&amp;nbsp; }&lt;/span&gt;&lt;br /&gt;
&lt;span&gt;&amp;nbsp; public void handleText(String text) {&lt;/span&gt;&lt;br /&gt;
&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(text != null &amp;amp;&amp;amp; text.trim().length() &amp;gt; 0) {&lt;/span&gt;&lt;br /&gt;
&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(&amp;quot;text &amp;quot; + text);&lt;/span&gt;&lt;br /&gt;
&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br /&gt;
&lt;span&gt;&amp;nbsp; }&lt;/span&gt;&lt;br /&gt;
&lt;span&gt;}&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;
&lt;div style=&#034;margin-left: 40px; background-color: rgb(255, 242, 204);&#034;&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&#034;background-color: rgb(255, 242, 204);&#034;&gt;&lt;br /&gt;
&lt;/span&gt;As in the JavaFX example [1] I use my own Java XML parser instead of the one sometimes packaged with the JRE. It is my own parser but it works comparable to the SAXParser. My parser is included in the example sources [2]. &lt;br /&gt;
&lt;br /&gt;
With class &lt;span style=&#034;font-family: Courier New;&#034;&gt;XmlReader&lt;/span&gt; again only a single line of code is needed wherever an XML response should be processed:&lt;br /&gt;
&lt;span style=&#034;font-family: Courier New;&#034;&gt;&lt;br /&gt;
&lt;/span&gt;
&lt;div style=&#034;margin-left: 40px; background-color: rgb(255, 242, 204);&#034;&gt;&lt;span style=&#034;font-family: Courier New;&#034;&gt;new XmlReader().read(is);&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;
&lt;div style=&#034;margin-left: 40px; background-color: rgb(255, 242, 204);&#034;&gt;  &lt;/div&gt;
&lt;h4&gt;Conclusion&lt;/h4&gt;
With two simple classes &lt;span style=&#034;font-family: Courier New;&#034;&gt;HttpRequest&lt;/span&gt; and &lt;span style=&#034;font-family: Courier New;&#034;&gt;XmlReader&lt;/span&gt; all you actually need to do is&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&#034;margin-left: 40px; background-color: rgb(255, 242, 204);&#034;&gt;&lt;span style=&#034;font-family: Courier New;&#034;&gt;InputStream is = HttpRequest.get(&amp;quot;http://www.java.net&amp;quot;);&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;
&lt;div style=&#034;margin-left: 40px; background-color: rgb(255, 242, 204);&#034;&gt;&lt;span style=&#034;font-family: Courier New;&#034;&gt;new XmlReader().read(is);&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;
&lt;br /&gt;
to send an HTTP request and process its XML response. No FX, no fancy schmancy frameworks or class libraries required. Just two plain old simple Java classes.&lt;br /&gt;
&lt;h4&gt;References&lt;/h4&gt;
[1] &lt;a target=&#034;_blank&#034; href=&#034;http://today.java.net/pub/a/today/2009/02/17/javafx-http-networking-and-xml-parsing.html&#034;&gt;JavaFX HTTP Networking and XML Parsing&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
[2] &lt;a href=&#034;http://www.uhilger.de/default/files/http_xml_src.zip&#034;&gt;Example Source Codes&lt;/a&gt;
        </description>
      
      
    
    
    
    <category>Development</category>
    
    <category>English</category>
    
    <comments>http://blog.uhilger.de:80/default/2009/02/25/keep_it_simple.html#comments</comments>
    <guid isPermaLink="true">http://blog.uhilger.de:80/default/2009/02/25/keep_it_simple.html</guid>
    <pubDate>Tue, 24 Feb 2009 23:05:14 GMT</pubDate>
  </item>
  
  <item>
    <title>Holidays Refined</title>
    <link>http://blog.uhilger.de:80/default/2009/02/22/holidays_refined.html</link>
    
      
        <description>
          Last June I &lt;a target=&#034;_blank&#034; href=&#034;http://blog.uhilger.de/default/2008/06/08/1212917962179.html&#034;&gt;blogged&lt;/a&gt; about the re-engineered version of my &lt;a target=&#034;_blank&#034; href=&#034;http://www.daybase.eu&#034;&gt;World Holiday Calendar Service&lt;/a&gt;. I have now adapted the client API to further simplify access to the service for third party applications and published the new version of the class library &lt;a target=&#034;_blank&#034; href=&#034;http://www.lightdev.com/page/106.htm&#034;&gt;here&lt;/a&gt;. I thought I give an overview of the finished service in below diagram&lt;br /&gt;
&lt;br /&gt;
&lt;img height=&#034;488&#034; width=&#034;500&#034; src=&#034;http://blog.uhilger.de/default/images/hol_srv_diag.png&#034; alt=&#034;&#034; /&gt;&lt;br /&gt;
&lt;em&gt;&lt;br /&gt;
&lt;/em&gt;&lt;blockquote&gt;&lt;em&gt;The Light Development World Holiday Calendar Service&lt;/em&gt;&lt;br /&gt;
&lt;/blockquote&gt;&lt;br /&gt;
On the back end, no static date tables need to be maintained. The &lt;a href=&#034;http://www.lightdev.com/page/98.htm&#034; target=&#034;_blank&#034;&gt;holiday class library&lt;/a&gt; dynamically computes dates of occurrence for arbitrary days and provides them to the various services offered.&lt;br /&gt;
&lt;br /&gt;
What started as a wacky habit became a system independent and universal tool for worldwide holiday determination.
        </description>
      
      
    
    
    
    <category>Development</category>
    
    <category>Computing</category>
    
    <category>English</category>
    
    <comments>http://blog.uhilger.de:80/default/2009/02/22/holidays_refined.html#comments</comments>
    <guid isPermaLink="true">http://blog.uhilger.de:80/default/2009/02/22/holidays_refined.html</guid>
    <pubDate>Sun, 22 Feb 2009 10:13:32 GMT</pubDate>
  </item>
  
  </channel>
</rss>
