<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/">
  <channel rdf:about="http://www.hjsoft.com/blog/">
    <title>John Flinchbaugh's Weblog</title>
    <link>http://www.hjsoft.com/blog/</link>
    <description>Thoughts on Java, technology, and life in general.</description>
    <items>
      <rdf:Seq>
        <rdf:li resource="http://www.hjsoft.com/blog/link/Emerging_Technology_Conference_at_MapQuest" />
        <rdf:li resource="http://www.hjsoft.com/blog/link/Practical_Subversion_Second_Edition" />
        <rdf:li resource="http://www.hjsoft.com/blog/link/Installed_Trac" />
        <rdf:li resource="http://www.hjsoft.com/blog/link/Subversion_Administration" />
        <rdf:li resource="http://www.hjsoft.com/blog/link/Practices_of_an_Agile_Developer" />
        <rdf:li resource="http://www.hjsoft.com/blog/link/Vacation_Stress" />
        <rdf:li resource="http://www.hjsoft.com/blog/link/Book_Beginning_J2ME" />
        <rdf:li resource="http://www.hjsoft.com/blog/link/No_Java_ME_Books_at_Borders" />
        <rdf:li resource="http://www.hjsoft.com/blog/link/Book_Review_Java_Puzzlers" />
        <rdf:li resource="http://www.hjsoft.com/blog/link/Recent_Reading_Technical_and_Not" />
      </rdf:Seq>
    </items>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <sy:updateBase>2004-01-01T05:00:00Z</sy:updateBase>
  </channel>
  <item rdf:about="http://www.hjsoft.com/blog/link/Emerging_Technology_Conference_at_MapQuest">
    <title>Emerging Technology Conference at MapQuest</title>
    <link>http://www.hjsoft.com/blog/link/Emerging_Technology_Conference_at_MapQuest</link>
    <description>&lt;p&gt;I'm organizing &lt;a href = "http://mapquest.pingg.com/EmergingTechnologies"&gt;An Evening of Emerging Technologies&lt;/a&gt; at MapQuest in Lancaster, PA on 23 April 2008.&lt;/p&gt;&#xD;
&lt;p&gt;It's a free open space conference, so join us to hear about technology in our region and to share your own experiences.  Click the link and register today.&lt;/p&gt;</description>
    <dc:creator>john</dc:creator>
    <dc:date>2008-03-28T14:02:56Z</dc:date>
  </item>
  <item rdf:about="http://www.hjsoft.com/blog/link/Practical_Subversion_Second_Edition">
    <title>Practical Subversion, Second Edition</title>
    <link>http://www.hjsoft.com/blog/link/Practical_Subversion_Second_Edition</link>
    <description>&lt;p&gt;&lt;a href = "http://www.apress.com/"&gt;Apress&lt;/a&gt; was again so kind as to send me a copy of &lt;a href = "http://apress.com/book/bookDisplay.html?bID=10203"&gt;Practical Subversion, Second Edition&lt;/a&gt;.  I had read the &lt;a href = "http://www.hjsoft.com/blog/link/Review_Practical_Subversion"&gt;first edition&lt;/a&gt; a couple years ago and gleaned lots of good information, so this time around I was already pretty familiar with the subject material.  Today, I use Subversion to track the source for my various Java projects.&lt;/p&gt;&lt;p&gt;The introduction and crash course chapters provide a great primer to the basics of version control -- any version control.  Since the newest versions of Subversion have added support for features like locking, the authors added material on these as well.  In these chapters I learned about these new features and their recommended application.&lt;/p&gt;&#xD;
&lt;p&gt;The administration and migration chapters ensure that you'll be able to handle any aspect of keeping your repository running.  I know lots of tools to help me when I need them, but I've not needed most this knowledge yet, since my usage of Subversion remains pretty simple.  I was delighted to find that there was a new backend to the repository (FSFS) which doesn't suffer the complexities of the old BerkleyDB backend.  I found my newer repositories were created using this backend, so I went back and converted all my old repositories.&lt;/p&gt;&#xD;
&lt;p&gt;I only skimmed the chapter on Apache integration, since I accomplished most of that with the previous version of the book.&lt;/p&gt;&#xD;
&lt;p&gt;I greatly enjoyed the chapter on best practices.  I love these more academic discussions trying to learn the big picture.  Everyone should read this chapter (again, for any version control system).  Lots of people have already figured out the best ways to structure and use a repository, so take benefit of their experiences.&lt;/p&gt;&#xD;
&lt;p&gt;In the chapter on tool integration, I found &lt;a href = "http://trac.edgewall.org/"&gt;Trac&lt;/a&gt;! It's a repository browser, wiki engine, and simple issue tracker.  This was the real jewel for me in this chapter, and I happened upon it exactly when I was looking for such a tool.  ViewVC and SVN:Web are covered in more detail, but I think the book would have probably done well to concentrate more time on Trac.  Otherwise, the authors provide some quick pointers to get you started integrating your IDE with Subversion.  I'll also come back to this chapter when I need to get Ant pulling source code for a continuous build system.&lt;/p&gt;&#xD;
&lt;p&gt;Throughout this newer edition of the book, there are scripts and add-ons highlighted to make your life with Subversion easier.  There are many more noted here than in the previous edition.  You can definitely tell that more people are using Subversion and this book does well keeping up with the advances that those people have made.&lt;/p&gt;&#xD;
&lt;p&gt;The final chapter of the book talks about using the Subversion APIs.  In my review of the first edition of this book, I had predicted that knowing these APIs could be useful for me to do complex manipulations and reporting on the repository, but in reality, I've still not touched them.  To be honest, I probably never will.  I just don't need that much power, and other people are doing good things for me (see Trac).&lt;/p&gt;&#xD;
&lt;p&gt;The appendices include the obligatory reference for all the commands in case you're not actually sitting at your computer with the built-in &lt;code&gt;help&lt;/code&gt; command.  Otherwise, there's the quick comparisons of Subversion to other version control systems.  Each system is only covered in a couple pages, but this is especially useful if you're migrating and still &lt;em&gt;think&lt;/em&gt; primarily in another system.&lt;/p&gt;&#xD;
&lt;p&gt;These days, I mostly interact with Subversion through the Subclipse plugin for Eclipse, but I often drop into a shell when bootstrapping a new repository and project (and sometimes for entertainment, I just struggle trying to get Subclipse to do the right thing).  That said, I wouldn't carry around a paper copy of this book in my bag on a daily basis for my needs.  I think daily operation with Subversion is relatively easy.  If I was the administrator of a repository for lots of other people, it would be a different story -- this book would never be far from my reach.&lt;/p&gt;</description>
    <dc:creator>john</dc:creator>
    <dc:date>2007-03-16T18:32:47Z</dc:date>
  </item>
  <item rdf:about="http://www.hjsoft.com/blog/link/Installed_Trac">
    <title>Installed Trac</title>
    <link>http://www.hjsoft.com/blog/link/Installed_Trac</link>
    <description>&lt;p&gt;The new edition of &lt;a href = "http://www.apress.com/book/bookDisplay.html?bID=10203"&gt;Practical Subversion&lt;/a&gt; mentioned &lt;a href = "http://trac.edgewall.org/"&gt;Trac&lt;/a&gt; as a simple issue tracking software that integrated nicely with &lt;a href = "http://subversion.tigris.org/"&gt;Subversion&lt;/a&gt;.  Fortunately, Debian has it already packaged up, so I installed it, read a little, and setup a few Trac repositories to match my Subversion projects.&lt;/p&gt;&lt;p&gt;I just used the default &lt;a href = "http://www.sqlite.org/"&gt;SQLite&lt;/a&gt; support, and I was on my way pretty quickly.  It gives me a wiki, issue tracker, and time-line, and source viewer -- all of which interlinked for easy navigation.  Now that it's working, I may go to the trouble to convert the DB over to my preexisting PostgreSQL install.&lt;/p&gt;&#xD;
&lt;p&gt;After having read &lt;a href = "http://www.hjsoft.com/blog/link/Practices_of_an_Agile_Developer"&gt;Practices of an Agile Developer&lt;/a&gt;, I started to realize that I could use a few extra tools to help me organize my personal projects and keep on track.  Wikis have also seemed like an intriguing technology, but I always have doubts about my own ability to keep it in order and be able to find things when I need them.  It must be better than the knowledge just floating around in my head only though.  (That feels like a real problem at work.)&lt;/p&gt;</description>
    <dc:creator>john</dc:creator>
    <dc:date>2007-01-23T11:58:50Z</dc:date>
  </item>
  <item rdf:about="http://www.hjsoft.com/blog/link/Subversion_Administration">
    <title>Subversion Administration</title>
    <link>http://www.hjsoft.com/blog/link/Subversion_Administration</link>
    <description>&lt;p&gt;I've started reading &lt;a href = "http://apress.com/book/bookDisplay.html?bID=10203"&gt;Practical Subversion, Second Edition&lt;/a&gt; which &lt;a href = "http://www.apress.com/"&gt;Apress&lt;/a&gt; kindly sent to me.  It's inspired me to poke around with the &lt;code&gt;svnadmin&lt;/code&gt; command to migrate some of my old repositories on my notebook to the new formats (fsfs) on my normal source code server.&lt;/p&gt;&#xD;
&lt;p&gt;The dump, load, and &lt;code&gt;switch --relocate&lt;/code&gt; of my working copy were dead simple.  I look forward to reminding myself of some of the more powerful Subversion features, as well as learn about the enhancements since I've first started using it.&lt;/p&gt;</description>
    <dc:creator>john</dc:creator>
    <dc:date>2007-01-04T13:47:33Z</dc:date>
  </item>
  <item rdf:about="http://www.hjsoft.com/blog/link/Practices_of_an_Agile_Developer">
    <title>Practices of an Agile Developer</title>
    <link>http://www.hjsoft.com/blog/link/Practices_of_an_Agile_Developer</link>
    <description>&lt;p&gt;I received a copy of Subramaniam's and Hunt's &lt;a href = "http://www.pragmaticprogrammer.com/titles/pad/"&gt;Practices of an Agile Developer&lt;/a&gt; for Christmas last Tuesday, and I blazed through reading it in 6 days.  It's relatively light reading (hence my unprecedented speed reading it), and it's filled me with inspiration to be a better programmer.  It's a renewal that I've been greatly needing through the past couple months.&lt;/p&gt;&lt;p&gt;I had originally heard an interview with &lt;a href = "http://www.nofluffjuststuff.com/speaker_topic_view.jsp?topicId=286"&gt;Venkat Subramaniam&lt;/a&gt; (&lt;a href = "http://www.nofluffjuststuff.com/s/podcast/x/NFJS06_VenkatSubramamiam.mp3"&gt;listen&lt;/a&gt;) in the &lt;a href = "http://www.nofluffjuststuff.com/podcasts.jsp"&gt;No Fluff Just Stuff podcast series&lt;/a&gt;.  It was a notably good listen.&lt;/p&gt;&#xD;
&lt;p&gt;The book consists of 45 practices and discussions of each.  While Agile can often be a management topic, most of this is presented in ways that it can be implemented by the developer from the bottom up -- Do it yourself, demonstrate the benefits, and others will follow.&lt;/p&gt;&#xD;
&lt;p&gt;The tone of the book is conversational and contains lots of anecdotes which sometimes feel like amusing stories from &lt;a href = "http://www.thedailywtf.org"&gt;TheDailyWTF&lt;/a&gt;, but with a very positive spin.  Some simple and valuable lesson that I've taken to heart include:&lt;/p&gt;&#xD;
&lt;ul&gt;&#xD;
&lt;li&gt;User confusion or other troubles are opportunities to improve your software.&lt;/li&gt;&#xD;
&lt;li&gt;Work to find solutions, and don't bother looking for someone to blame.&lt;/li&gt;&#xD;
&lt;li&gt;Use TDD to help guide simpler, cleaner design.&lt;/li&gt;&#xD;
&lt;li&gt;Communicate effectively with your peers, management, and users.&lt;/li&gt;&#xD;
&lt;/ul&gt;&#xD;
&lt;p&gt;Many of the other tips pertain to writing clear and concise code, refactoring, and remaining flexible -- many practices which we've already embraced.  With a bit of renewed motivation, I'll be trying to keep these practices in mind at work and in personal projects, and I'll be lending the book  to the avid readers of my team.&lt;/p&gt;</description>
    <dc:creator>john</dc:creator>
    <dc:date>2007-01-02T17:38:34Z</dc:date>
  </item>
  <item rdf:about="http://www.hjsoft.com/blog/link/Vacation_Stress">
    <title>Vacation Stress</title>
    <link>http://www.hjsoft.com/blog/link/Vacation_Stress</link>
    <description>&lt;p&gt;I'm sort of panicked about going on vacation.  It just feels like I'm being plucked from all the stuff I'm trying to get done to allow it to all pile up for my return.  I'll be missing a very important week at work and removing myself from many of my normal technical comforts.&lt;/p&gt;&#xD;
&lt;p&gt;I'm trying to remain calm by reminding myself that a tethered EDGE connection is reasonable to use, and I may get some time to sit and read and work on some code.  I also look forward to chasing the kids and playing with the camera a bit.&lt;/p&gt;&#xD;
&lt;p&gt;Getting normal life wrapped up in preparation to drop it for a week is hard work.&lt;/p&gt;</description>
    <dc:creator>john</dc:creator>
    <dc:date>2006-09-15T19:35:19Z</dc:date>
  </item>
  <item rdf:about="http://www.hjsoft.com/blog/link/Book_Beginning_J2ME">
    <title>Book: Beginning J2ME</title>
    <link>http://www.hjsoft.com/blog/link/Book_Beginning_J2ME</link>
    <description>&lt;p&gt;A couple months ago, I bought an electronic copy of Sing Li's and Jonathan Knudsen's &lt;em&gt;&lt;a href = "http://www.apress.com/book/bookDisplay.html?bID=426"&gt;Beginning J2ME: From Novice to Professional&lt;/a&gt;&lt;/em&gt; from Apress.  I had already started learning this stuff from online documents, articles, and API JavaDocs, but now I really wanted examples of design and architecture of a Java ME application.  This book helped fill in those gaps for me and lead me down a more confident path with my current application.&lt;/p&gt;&lt;p&gt;This was another one of those books that I almost skipped entire chapters.  I very quickly skimmed through most of the last half of the book: files, OBEX, bluetooth, Game API, 3D graphics, messaging, MMAPI, and encryption.  I've just not needed these abilities yet, but I know just where to find them when I do.  Some of these APIs are also disabled on my phone until I pay for a certificate and start signing applications.&lt;/p&gt;&#xD;
&lt;p&gt;To limit my scope even further, my current application that I'm developing is only using MIDP 1.0, though I'm pretty sure I'll be moving on to MIDP 2.0 next, since this book showed me how much easier it can be.  I'm pretty sure this book will be useful to me for the next several applications I develop as I get into using these newer APIs.&lt;/p&gt;&#xD;
&lt;p&gt;&lt;em&gt;*Apress ebooks are great -- I Paypalled my $20 to them and moments later downloaded it.  Instant gratification with no shipping and no searching book stores.  That's good, because &lt;a href = "http://www.hjsoft.com/blog/link/No_Java_ME_Books_at_Borders"&gt;Java ME books are hard to find&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;</description>
    <dc:creator>john</dc:creator>
    <dc:date>2006-05-10T13:52:25Z</dc:date>
  </item>
  <item rdf:about="http://www.hjsoft.com/blog/link/No_Java_ME_Books_at_Borders">
    <title>No Java ME Books at Borders</title>
    <link>http://www.hjsoft.com/blog/link/No_Java_ME_Books_at_Borders</link>
    <description>&lt;p&gt;I've been programming a MIDlet for my phone, and I wanted to make sure I'm following some sort of design standard beyond just cobbling it together from the API docs, so I wandered out to my local Borders Book Store last night.  I found &lt;em&gt;no&lt;/em&gt; Java ME (J2ME) books anywhere.  In fact, their computer section has been shrinking for a while.&lt;/p&gt;&#xD;
&lt;p&gt;I find this hard to believe when I've seen a few of these books coming up on publishers' new release lists.  I also take Google's own &lt;a href = "http://www.google.com/glm/"&gt;Google Local Mobile&lt;/a&gt; MIDlet to be a sign that Java ME really is about to come of age.&lt;/p&gt;&lt;p&gt;Since I was mostly searching for an impulse buy, I'm not going to bother ordering anything online or running out to Ollie's Outlet to buy old bargain-bin books about MIDP 1.0 just yet.  It looks like Sun and others have a pretty good set of &lt;a href = "http://developers.sun.com/techtopics/mobility/midp/reference/techart/index.html"&gt;Java ME articles&lt;/a&gt; which should get me to the next level nicely.  The &lt;a href = "http://java.sun.com/blueprints/wireless/"&gt;wireless blueprint program&lt;/a&gt; looks like it may be exactly what I need at this point.&lt;/p&gt;</description>
    <dc:creator>john</dc:creator>
    <dc:date>2006-01-13T17:58:04Z</dc:date>
  </item>
  <item rdf:about="http://www.hjsoft.com/blog/link/Book_Review_Java_Puzzlers">
    <title>Book Review: Java Puzzlers</title>
    <link>http://www.hjsoft.com/blog/link/Book_Review_Java_Puzzlers</link>
    <description>&lt;p&gt;I recently read &lt;a href = "http://www.amazon.com/gp/product/032133678X/002-0258672-8579272?v=glance&amp;amp;n=283155"&gt;Java Puzzlers&lt;/a&gt; by Joshua Bloch and Neal Gafter.  I borrowed it from a coworker for a bit of leisure reading.  I expected good things, since Bloch's &lt;a href = "http://www.hjsoft.com/blog/link/Recent_Reading_Technical_and_Not"&gt;Effective Java&lt;/a&gt; was excellent.&lt;/p&gt;&lt;p&gt;The Java content felt much more relevant and accessible than my very old printing of the C Puzzle Book.  The puzzles progressively got more complex, but few really exceeded a page of code in length.  A few puzzlers revolve around boring &lt;em&gt;punctuation&lt;/em&gt; mistakes, some are misconceptions about library routines, and toward the end he's discussing more complex thread interactions.  In the beginning, I was fanatically thinking through the puzzle before reading the solution, but toward the end I just didn't care anymore and proceeded right to the solution.&lt;/p&gt;&#xD;
&lt;p&gt;Since all the code samples were relatively short, they looked disturbingly like something I could write and expect I'd know how it will behave.  Now I fear that I may actually have some of these puzzles represented in my own code!  I'll never trust myself again.  The section on arithmetic and common overflows haunts me the most -- the errors are just so silent.  I think I'm smart enough to be cautious of the more complex examples when encountered in the real world.&lt;/p&gt;&#xD;
&lt;p&gt;In the end, it's an entertaining book and a quick read, and there are lessons to be learned.&lt;/p&gt;</description>
    <dc:creator>john</dc:creator>
    <dc:date>2006-01-12T14:58:12Z</dc:date>
  </item>
  <item rdf:about="http://www.hjsoft.com/blog/link/Recent_Reading_Technical_and_Not">
    <title>Recent Reading, Technical and Not</title>
    <link>http://www.hjsoft.com/blog/link/Recent_Reading_Technical_and_Not</link>
    <description>&lt;p&gt;Somehow, I managed to do most my modern technical reading out of order.  I started reading &lt;em&gt;Core J2EE Patterns&lt;/em&gt; and other J2EE books, then I dropped I went back to fill in the blanks with GoF Patterns.  Stepping back to even simpler concepts, I recently read Fowler's &lt;em&gt;Refactoring&lt;/em&gt;, and I've finally discovered and read Bloch's &lt;em&gt;Effective Java&lt;/em&gt;.  I fortunately got to borrow it from a coworker.&lt;/p&gt;&#xD;
&lt;p&gt;I found reinforcement for many of my current good practices (which is nice when you're in a training/architecture-type position).  I also picked up some tips which I knew needed attention, but just never quite found, such as properly dealing with synchronization or serialization.&lt;/p&gt;&#xD;
&lt;p&gt;Concurrently, I had been reading William Gibson's &lt;em&gt;Pattern Recognition&lt;/em&gt;.  Quite unlike all his previous books, this one has only 1 storyline instead of 3.  This made it feel like a much quicker read, and I managed to put it down and pick it up often without confusion.  It was one of the more satisfying of his books set in the present or very near future.&lt;/p&gt;&lt;p&gt;To hold my attention for a couple weeks, I just picked up a relatively cheap book about digital photo retouching called &lt;em&gt;40 Digital Photo Retouching Techniques&lt;/em&gt;.  It's based on Photoshop Elements, but it seems to have lots of good ideas, and most of it seems to translate to Gimp easily for me.&lt;/p&gt;&#xD;
&lt;p&gt;After that, I'll probably borrow &lt;em&gt;Java Puzzlers&lt;/em&gt; from the same guy who lent me &lt;em&gt;Effective Java&lt;/em&gt; -- He has quite the library.&lt;/p&gt;</description>
    <dc:creator>john</dc:creator>
    <dc:date>2005-11-13T00:49:23Z</dc:date>
  </item>
</rdf:RDF>

