<?xml version="1.0" encoding="UTF-8"?>
<feed xml:lang="en-US" xmlns="http://www.w3.org/2005/Atom">
  <title>black:hole:logic - Home</title>
  <id>tag:www.blackholelogic.com,2008:mephisto/</id>
  <generator uri="http://mephistoblog.com" version="0.7.3">Mephisto Noh-Varr</generator>
  <link href="http://www.blackholelogic.com/feed/atom.xml" rel="self" type="application/atom+xml"/>
  <link href="http://www.blackholelogic.com/" rel="alternate" type="text/html"/>
  <updated>2008-07-01T06:16:00Z</updated>
  <entry xml:base="http://www.blackholelogic.com/">
    <author>
      <name>kitplummer</name>
    </author>
    <id>tag:www.blackholelogic.com,2008-07-01:167</id>
    <published>2008-07-01T06:09:00Z</published>
    <updated>2008-07-01T06:16:00Z</updated>
    <category term="Techno"/>
    <link href="http://www.blackholelogic.com/2008/7/1/phidgetservo-jruby-released-to-public-domain" rel="alternate" type="text/html"/>
    <title>PhidgetServo-JRuby Released to Public Domain.</title>
<content type="html">
            &lt;p&gt;We&#8217;ve just released the &lt;a href='http://www.phidgets.com'&gt;PhidgetServo&lt;/a&gt; code and NetBeans project to the public under the Creative Commons Public Domain License.  For more information: &lt;a href='http://dozersoftware.com:3000/wiki/phidgetservo-jruby'&gt;http://dozersoftware.com:3000/wiki/phidgetservo-jruby&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;&lt;a href='http://creativecommons.org/licenses/publicdomain/'&gt;&lt;img src='http://i.creativecommons.org/l/publicdomain/88x31.png' alt='' /&gt;&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;This work is dedicated to the &lt;a href='http://creativecommons.org/licenses/publicdomain/'&gt;Public Domain&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;We, being my oldest son Layne and me &#8211; though he doesn&#8217;t really know it yet.  I&#8217;ve sparked some interest for coding via basic robotics.  We&#8217;ve also been playing with interaction via Jabber.  This particular project is the basis for an incoming message notifier (waving servo).  We&#8217;ll probably be posted another which provides a control interface via a Python-based Jabber bot.&lt;/p&gt;


	&lt;p&gt;Pretty cool.  We should have more stuff soon.  Part of the fun was skinning &lt;a href='http://www.redmine.org'&gt;Redmine&lt;/a&gt; as our project hosting site.&lt;/p&gt;


	&lt;p&gt;(Also getting a big head start on this year&#8217;s science fair project.)&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://www.blackholelogic.com/">
    <author>
      <name>kitplummer</name>
    </author>
    <id>tag:www.blackholelogic.com,2008-06-28:165</id>
    <published>2008-06-28T22:55:00Z</published>
    <updated>2008-06-28T23:45:08Z</updated>
    <category term="Technot"/>
    <link href="http://www.blackholelogic.com/2008/6/28/operation-purple-where-in-a-weird-state" rel="alternate" type="text/html"/>
    <title>Operation Purple...Where in a Weird State.</title>
<content type="html">
            &lt;p&gt;My youngest son spent this past week at a regional &#8220;Operation Purple&#8221; (&lt;a href='http://www.nmfa.org/site/PageServer?pagename=op_default?&#38;from_www.operationpurple.org'&gt;link1&lt;/a&gt;, &lt;a href='http://www.defenselink.mil/news/newsarticle.aspx?id=25558'&gt;link2&lt;/a&gt;, &lt;a href='http://www.af.mil/news/story.asp?storyID=123010230'&gt;link3&lt;/a&gt;) camp.  My wife is deploying to the &#8220;desert&#8221; in the fall for 6 months &#8211; so we thought it would go for him to spend some time with kids in similar situations.  Being that she is in the Air National Guard he doesn&#8217;t get the same exposure to military life as my oldest son did.  In general I think Operation Purple is a much needed service, and is good way for kids to, sans parents, open up.&lt;/p&gt;


	&lt;p&gt;When dropping him off you wouldn&#8217;t have noticed that it was a &#8220;special&#8221; camp &#8211; I thought this a bit strange.  Almost all of the camp counselors were from Europe.  Realizing budgets are what they are, and that fact the camp ultimately is run by the &lt;span class='caps'&gt;YMCA&lt;/span&gt;&#8230;totally acceptable, but still a bit weird.&lt;/p&gt;


	&lt;p&gt;During the week it began to dawn on me a bit&#8230;who&#8217;s going to be doing the actual &#8220;military kid, your mom or dad is going to the middle east to fight a debatable war, risking their life for your &#8211; not my &#8211; country&#8221; counseling.  Turns out that there was A representative from the &lt;a href='http://www.nmfa.org/site/PageServer'&gt;National Military Family Association&lt;/a&gt; to coordinate the real objective behind the camp.  There are also were representatives from the nearby Air Force base arriving in helos and F-16 cockpit trainers &#8211; the typical &#8220;recruiting&#8221; tools.&lt;/p&gt;


	&lt;p&gt;So, it gets more weird.  The kids were directed to discuss, in groups, their feelings about being in a military family &lt;span class='caps'&gt;AND&lt;/span&gt; the differences for them as compared to civilian families.  Keep in mind that there are kids at this camp staring in the 7-8 range &#8211; and going to mid-teens.  These kids are vulnerable&#8230;not only in the sense of dealing with a family situation, but in their social, and cultural learning.  As part of the discussion/therapy session there were tasked to capture the ideas in brainstorming style on a stand-up marker board.  The results of this session was available for parents to see.  I&#8217;m not sure if I was more concerned about the content in general, or the parents that belly-laughed (from most likely dependent wives) at an &#8220;idea&#8221; that said &#8220;military families make more money&#8221;.  I quickly noticed a few common themes amongst the older groups: cheaper gas, less racism, on-base shopping is cheaper, school friends think we&#8217;re strange, move alot, deployments cause divorces, and base housing is safer.  The younger kids definitely see things differently.  Here&#8217;s some of their thoughts: mom relies on me more, i have to do more chores, we travel (probably can read this as move too) more, and my friends parents are divorced.&lt;/p&gt;


	&lt;p&gt;During the closing ceremonies there was a brief presentation with pictures and a discussion about the program.  The &lt;span class='caps'&gt;NMHA&lt;/span&gt; representative reiterated the lesson that was given to the kids.  It goes like this: &#8220;say what I see, say what I think, and say what I feel&#8221;.   Based on what was being said by the kids&#8230;what is really needed is more honest military parents that give the kids opportunity to &#8220;say&#8221; what they see, think and feel.  Kids are smart&#8230;and they learn from what parents say, everything parents say.  But, I think it is clear that kids learn just as much from what parents don&#8217;t say, that only gets reinforced by their opinions (they do have them) and their friend environment.&lt;/p&gt;


	&lt;p&gt;I&#8217;m definitely not the lead candidate for the best parent ever&#8230;but, their are some things that just strike me as awkward or weird in other kids, which I know is a result of parenting (or lack thereof).  To my point now.  Yes, I know I&#8217;ve rambled quite a long time already.  Our country is fragile, and getting more so with ridiculously bad politics at all levels, questionable education systems, mismanaged resources, blah, blah, blah.  Our future is in our youths&#8217; hands.  If we, parents, can&#8217;t remove the fog of ignorance which is being poured on to our kids we&#8217;re doomed.  Do we really think camps run by slightly-older kids with funny accents are going to help reduce some of burden we&#8217;re forced to put on our kids, let alone the unnecessary burden of ignorance, uncertainty, and lies?  I just can&#8217;t help but think it is weird that military families are just as at risk as civilian families, to succumbing to the weirdness of our State.  Even when my wife was Active Duty some 7 years ago and we were stationed overseas it was not like this.&lt;/p&gt;


	&lt;p&gt;I only hope that the impending changes offer an opportunity for us to get back on track.&lt;/p&gt;


	&lt;p&gt;[Please don&#8217;t take away from this that I don&#8217;t appreciate the effort of &lt;span class='caps'&gt;NMFA&lt;/span&gt;.  I do, and I appreciate all of the exchange counselors.  If this camp were not Operation Purple, I&#8217;d have nothing to write about.  So, in hindsight I&#8217;m glad he went, and we&#8217;ll give him the opportunity to go again if he chooses to.]&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://www.blackholelogic.com/">
    <author>
      <name>kitplummer</name>
    </author>
    <id>tag:www.blackholelogic.com,2008-06-23:163</id>
    <published>2008-06-23T14:22:00Z</published>
    <updated>2008-06-23T14:47:10Z</updated>
    <category term="Techno"/>
    <link href="http://www.blackholelogic.com/2008/6/23/ruby-primed-for-the-enterprise" rel="alternate" type="text/html"/>
    <title>Ruby - Primed for the Enterprise...</title>
<content type="html">
            &lt;p&gt;&lt;a href='http://caldersphere.rubyforge.org/warbler/'&gt;Warbler&lt;/a&gt; is an enabler.  True, Warbler is a Rails-specific tool, and not really Ruby.  But, if Rails/JRuby isn&#8217;t, at a minimum, a blip on you enterprise developer&#8217;s radar you&#8217;re missing something important.&lt;/p&gt;


	&lt;p&gt;Anyone who has ever spent a significant amount of development time with Java knows the dev cycle (code, build, test, deploy, test, code) is painful&#8230;especially with tools like Maven driving the bus.  For this reason alone I believe Ruby has an inroad to Enterprise development.  Keep in mind that &lt;span class='caps'&gt;SOA&lt;/span&gt; and web-based services are the general target.  Ruby (Rails) combined with a &lt;span class='caps'&gt;TDD&lt;/span&gt;/BDD attitude can promote a more pleasant cycle (test, code, test, code).&lt;/p&gt;


	&lt;p&gt;Here&#8217;s a short list of the relevant stumbling blocks.  And no, &lt;span class='caps'&gt;XML&lt;/span&gt; processing isn&#8217;t on the list (it is rather good, with multiple options &#8211; try Googling for more info)&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;This is the &lt;a href='http://www.ruby-doc.org/stdlib/libdoc/soap/rdoc/index.html'&gt;&lt;span class='caps'&gt;SOAP&lt;/span&gt; support&lt;/a&gt; in Ruby.  Where the hell is the documentation.  What&#8217;s the point of having rdoc if you aren&#8217;t going to document the usage.  Lame.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href='http://www.google.com/search?q=enterprise+integration+ruby&#38;ie=utf-8&#38;oe=utf-8&#38;aq=t&#38;rls=org.mozilla:en-US:official&#38;client=firefox-a'&gt;Enterprise integration with Ruby&lt;/a&gt; is a book put out in 2006, covering generic integration topics.  That&#8217;s it, that&#8217;s all there is as far as the formal discussion goes.  &lt;em&gt;A&lt;/em&gt; book.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;Ok, see I said it was short.&lt;/p&gt;


	&lt;p&gt;With JRuby rolling, there&#8217;s no reason not to enjoy the &#8220;fun&#8221; that comes with Ruby development.  Shoot, there&#8217;s even Swing-focused tools like &#8220;Monkeybars&#8221;http://monkeybars.rubyforge.org/ that help make Java &lt;span class='caps'&gt;GUI&lt;/span&gt; development fun (ok, maybe just interesting &#8211; fun could be a stretch).&lt;/p&gt;


	&lt;p&gt;However unfortunate, I do think it will take JRuby to get some mainstream corporate use.  But, whatever it take right?  There&#8217;s no excuse now, not to start looking at, talking about, and enjoying Ruby development.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://www.blackholelogic.com/">
    <author>
      <name>kitplummer</name>
    </author>
    <id>tag:www.blackholelogic.com,2008-06-16:161</id>
    <published>2008-06-16T23:04:00Z</published>
    <updated>2008-06-16T23:10:10Z</updated>
    <category term="Techno"/>
    <link href="http://www.blackholelogic.com/2008/6/16/google-reader-circle-jerk" rel="alternate" type="text/html"/>
    <title>Google Reader Circle-Jerk...</title>
<content type="html">
            &lt;p&gt;I&#8217;m posting this blog article.  Which will then show up in my Google Reader because it is going to automatically get piped their from somebodies Yahoo! Pipe.  Once it shows up in Reader, I&#8217;m going to share it&#8230;which will cause it to show up in my Google Reader Share ( &lt;a href='http://www.google.com/reader/shared/03419463208734067981'&gt;http://www.google.com/reader/shared/03419463208734067981&lt;/a&gt; )...causing it to cycle around again.  I&#8217;m kind of curious what other ill-effects happen (browser melt-down, pink-slip action, etc.)&lt;/p&gt;


	&lt;p&gt;Here&#8217;s the tinyurl (for my shares): &lt;a href='http://tinyurl.com/6s5kop'&gt;http://tinyurl.com/6s5kop&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;Sorry, just me bein&#8217; a dork.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://www.blackholelogic.com/">
    <author>
      <name>kitplummer</name>
    </author>
    <id>tag:www.blackholelogic.com,2008-06-16:160</id>
    <published>2008-06-16T15:52:00Z</published>
    <updated>2008-06-16T16:13:24Z</updated>
    <category term="Techno"/>
    <link href="http://www.blackholelogic.com/2008/6/16/community-based-development" rel="alternate" type="text/html"/>
    <title>Community-Based Development...</title>
<content type="html">
            &lt;div&gt;
&lt;h2&gt;Introduction&lt;/h2&gt;
It is widely known that the Open Source community uses a different approach (Bazaar) to software engineering – over traditional, proprietary environments (Cathedral)[1].  However, there are many opportunities to apply Open Source practices to internal software engineering efforts, where the software product is consumed by another internal organization.  Integrating these practices is not trivial…though in most cases it is just a matter of utilizing a few new, or different tools.  In some cases, there may need to be a cultural shift, or simply a new awareness.
&lt;br&gt;&lt;br&gt;
In order to avoid any confusion in the distinction between true Open Source development, where there is a “public” interface and intra-organizational development I’d like to call the generic practices found in the Open Source world Community-Based Development (CBD).
&lt;br&gt;&lt;br&gt;
CBD serves the environment where one team is developing software that has consumption potential.  Notice I didn’t say reuse, which is a chokepoint for many engineers.  Consumption, in this case, means library, API, or interface implementation – not source code copy n’ paste.  The “customer” is another developer, or engineering project.  CBD is about optimizing this kind of relationship, especially where the customer is proactive in the development of the source product.
&lt;br&gt;&lt;br&gt;
&lt;h2&gt;Background&lt;/h2&gt;
There are a few key functions, or tools used in this provider-customer relationship – many of which are clearly defined in Producing Open Source Software [2].
&lt;br&gt;&lt;br&gt;
Here’s the quick (not all inclusive) breakdown:
&lt;ul&gt;
&lt;li&gt;Mailing lists - Dev, Announcements, Users, Builds, etc.
&lt;li&gt;RSS feeds - Tie into mailing lists, issue tracking
&lt;li&gt;Issue Tracking
&lt;li&gt;SCM
&lt;li&gt;Wiki
&lt;li&gt;Search (projects and code)
&lt;li&gt;Admin Management (Users, Roles, Project setup, etc.)
&lt;li&gt;Web Site
&lt;/ul&gt;
On the Open Source side of the fence these tools are usually consolidated, and provided from a single user-interface (website).  In many cases, projects are homed into a parent structure, provided by a “hosting” service.  There are a few examples such as SourceForge.net[3], or Java.net[4] which front-end many projects.  The software platforms that provide these infrastructures are available for commercial application in both proprietary and Open Source form.  In addition, there project infrastructure suites such as Redmine.org[5] that are designed specifically for internal/team-centric software engineering collaboration.
&lt;br&gt;&lt;br&gt;
&lt;h2&gt;Integration&lt;/h2&gt;
There are a few “tough” questions that arise when considering CBD, especially as applied to internal relationships.  The first, and probably most obvious, is how to integrate CBD with existing processes and methodologies.  Existing processes can usually accommodate CBD with little pain.  CBD is a complimentary environment, and can integrate seamlessly in to any methodology (waterfall, spiral, agile).  Where things get really complicated is in the tooling.  Most development environments are already using individual tools to perform specific functions (e.g. issue tracking, project management).  How CBD is applied where existing tools are entrenched – should not be a replacement effort.  Although, there may be some duplication – the idea is to expose the integrated collaboration tool suite to both the product developer(s) and the customer, or product consumer/integrator.  Continuous integration environments shouldn’t be affected – as the source code repository is independent from the project suite.
&lt;br&gt;&lt;br&gt;
&lt;h2&gt;Discovery&lt;/h2&gt;
Keep in mind that the developer-developer relationship requires that the consumer have the ability to search/discovery the internal software product.  Just having code in a repository with an associated issue tracking system doesn’t lend itself as available for consummation.  This is why the SourceForge (centralized collection of projects) is prevalent in the Open Source community.  Having a centralized source of CBD projects leads to the potential for consummation because they can be discovered.
&lt;br&gt;&lt;br&gt;
&lt;h2&gt;Governance&lt;/h2&gt;
In order to maintain a “community” project there is a requisite membership ideal.  Usually, the project owner plays the leadership role, whereas the consumer plays member (active or passive).  CBD requires members be given roles to control access to data, ability to commit changes, as well as general project management activities.  Again, having the consolidated project environment ensures that user administration is consistent across all projects, as well as providing a potential for parent-sub project relationships.  The consolidated suite of tools also ensures that the project owner can control the roles and privileges without implicating administrative personnel.
&lt;br&gt;&lt;br&gt;
&lt;h2&gt;Community&lt;/h2&gt;
The idea of a community-based approach to software engineering is based on the principle that the consumer is integral in the development, much in the same way as Agile Methodologies manage the customer relationship.  The consumer’s activity may be as simple as reviewing/editing documentation or providing input via issues and bug reports.  Or, it can be as proactive as the consumer writing code and submitting it to the project.  Regardless, the objective is to maintain the codebase for the continued and growing consumption without duplicating anything across the organization.  Internal to an organization, there may be boundaries specified by contract, external customers, or functional hierarchies that make it difficult for software to be reused.  The notion of CBD can help overcome this by removing the demarcations and continuously improving the “wheel” without starting over.
&lt;br&gt;&lt;br&gt;
&lt;h2&gt;References&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[1] The Cathedral and the Bazaar, by Eric S. Raymond (&lt;a href='http://www.catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/'&gt;http://www.catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/&lt;/a&gt;)
&lt;li&gt;[2] Producing Open Source Software by Karl Fogel (&lt;a href='http://producingoss.com'&gt;http://producingoss.com&lt;/a&gt;)
&lt;li&gt;[3] SourceForge (&lt;a href='http://www.sourceforge.net'&gt;http://www.sourceforge.net&lt;/a&gt;)
&lt;li&gt;[4] Java.net (&lt;a href='http://www.java.net'&gt;http://www.java.net&lt;/a&gt;)
&lt;li&gt;[5] Redmine (&lt;a href='http://www.redmine.org'&gt;http://www.redmine.org&lt;/a&gt;)
&lt;/ul&gt;
&lt;/div&gt;
          </content>  </entry>
  <entry xml:base="http://www.blackholelogic.com/">
    <author>
      <name>kitplummer</name>
    </author>
    <id>tag:www.blackholelogic.com,2008-06-13:159</id>
    <published>2008-06-13T20:52:00Z</published>
    <updated>2008-06-13T21:03:11Z</updated>
    <category term="Techno"/>
    <link href="http://www.blackholelogic.com/2008/6/13/hellotxt-dumb-twitter-dumber" rel="alternate" type="text/html"/>
    <title>Hellotxt Dumb.  Twitter Dumber.</title>
<content type="html">
            &lt;p&gt;At least 80% of the times when I attempt to update &lt;a href='http://www.twitter.com/kitplummer'&gt;Twitter&lt;/a&gt; I get the &#8220;overloaded&#8221; bullshit.  Amazing, in today&#8217;s &#8220;everything-scales&#8221; technotopia cloud we can&#8217;t get me guaranteed access to a free service.  Geez.&lt;/p&gt;


	&lt;p&gt;I&#8217;ve been on and off the Twitterino bandwagon a few times already, and am about to drop off forever.  The only thread hanging is that a few peers use twitter as their pseudo-blog.  I really wish they wouldn&#8217;t &#8211; but, unfortunately they are (even with no social network intent).&lt;/p&gt;


	&lt;p&gt;I recently found &lt;a href='http://www.hellotxt.com'&gt;Hellotxt&lt;/a&gt; via another fairly new playa &lt;a href='http://www.brightkite.com'&gt;BrightKite&lt;/a&gt;.  I&#8217;m sure I&#8217;m at least a couple of months behind&#8230;because Hellotxt already has all the majors lined up and a load of the &#8220;what the hell is thats&#8221;.  About the only one of these cats that is remotely interesting is Facebook.  I realize I should prolly care a bit more about LinkedIn &#8211; but, I have a job (at least I think I do).&lt;/p&gt;


	&lt;p&gt;So, if Twitter wins the &#8220;dumber&#8221; award for not being able to scale (and I don&#8217;t want to hear the dumbass Rails argument either), then Hellotxt picks up the dumb one.  I actually think Hellotxt is interesting simply because it is stupid that I can&#8217;t just blog my own updates&#8230;from my site, and load the feed to all these sites.  At least Hellotxt is a step towards unification of the belt.&lt;/p&gt;


	&lt;p&gt;Anyway&#8230;kind of a mindless Friday lunch &#8211; looking at some of these new fangled things that are supposed to improve my social life.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://www.blackholelogic.com/">
    <author>
      <name>kitplummer</name>
    </author>
    <id>tag:www.blackholelogic.com,2008-06-10:158</id>
    <published>2008-06-10T05:56:00Z</published>
    <updated>2008-06-10T06:04:09Z</updated>
    <category term="Techno"/>
    <link href="http://www.blackholelogic.com/2008/6/10/phidgets-and-ruby" rel="alternate" type="text/html"/>
    <title>Phidgets and Ruby...</title>
<content type="html">
            &lt;p&gt;&lt;img src='http://www.phidgets.com/images/2001tn.jpg' alt='' /&gt;&lt;/p&gt;


	&lt;p&gt;Well, I&#8217;ve been looking for a reason to play with &lt;a href='http://jruby.codehaus.org/'&gt;JRuby&lt;/a&gt; for some time now.  It finally came time, in the shape of a &lt;a href='http://www.phidgets.com'&gt;Phidgets&lt;/a&gt; servo.  Ok, so maybe it isn&#8217;t &#8220;Phidgets and Ruby&#8221; exactly.  I can&#8217;t say what I&#8217;m using the Phidgets for but being able to access them from &lt;a href='http://www.ruby-lang.org'&gt;Ruby&lt;/a&gt; is a huge bonus (if for no other reason than I prefer looking at Ruby).  Problem is&#8230;no Ruby &lt;span class='caps'&gt;API&lt;/span&gt; to access them directly.  Python yes, Ruby no.  Although I really have nothing against &lt;a href='http://www.python.org'&gt;Python&lt;/a&gt; this particular project already implicates Java.  So, what&#8217;s one more library like JRuby?&lt;/p&gt;


	&lt;p&gt;I will admit that I had quite a few problems getting through outdated documentation for JRuby.  Just getting setup with the initial &#8216;include Java&#8217; instead of &#8216;require java&#8217; was almost torture.  Ruby community&#8217;s documentation is already suspect &#8211; therefore JRuby must just want to follow suit [Ruby itself, is fairly well &lt;a href='http://www.ruby-doc.org/'&gt;documented&lt;/a&gt; &#8211; thanks to James and the Happy Camper guys].  Then I had to figure out how to work the Java interfaces for the servo&#8217;s &#8220;attach&#8221; listener.  The documentation for how to do this is a bit of a struggle too.  Just need to remember that JRuby is early 1.x version.&lt;/p&gt;


	&lt;p&gt;I was actually able to get Phidget servo to respond and set it to a given position.  Cool.  And, I will admit the code is much cleaner, simpler and a lot less of it.&lt;/p&gt;


&lt;pre&gt;
&lt;code&gt;
include Java

require 'phidget21.jar'

include_class Java::com.phidgets.ServoPhidget
include_class Java::com.phidgets.event.AttachListener
include_class Java::com.phidgets.event.AttachEvent
include_class Java::com.phidgets.PhidgetException

class ServoAttachListener

  servo = ServoPhidget.new()

  def attached(ae)
    begin
      puts &quot;Getting Device Name...&quot; 
      servo = ae.getSource()
      puts &quot;Device Name: &quot; + servo.getDeviceName()

      puts &quot;Getting Servo Count...&quot; 
      puts &quot;Servo Count: &quot; + servo.getMotorCount().to_s

      puts &quot;Getting Servo Max Position...&quot; 
      puts &quot;Position: &quot; + servo.getPositionMax(0).to_s

      puts &quot;Getting Servo Min Position...&quot; 
      puts &quot;Position: &quot; + servo.getPositionMin(0).to_s

      puts &quot;Setting Servo to Max Position...&quot; 
      servo.setPosition(0, 232.0)

    rescue PhidgetException =&amp;gt; e
      puts &quot;Java or Ruby exception: #{e}&quot; 
      raise
    end
  end

end

puts &quot;Hello Phidget Servo&quot; 

servo = ServoPhidget.new()
attach_listener = ServoAttachListener.new()

servo.addAttachListener(attach_listener)
servo.openAny()

while true

end
puts &quot;Goodbye Phidget Servo&quot; 
&lt;/code&gt;
&lt;/pre&gt;
          </content>  </entry>
  <entry xml:base="http://www.blackholelogic.com/">
    <author>
      <name>kitplummer</name>
    </author>
    <id>tag:www.blackholelogic.com,2008-06-09:157</id>
    <published>2008-06-09T18:30:00Z</published>
    <updated>2008-06-09T19:12:36Z</updated>
    <category term="Techno"/>
    <category term="Technot"/>
    <link href="http://www.blackholelogic.com/2008/6/9/irrelevant-update-schizo-in-effect" rel="alternate" type="text/html"/>
    <title>Irrelevant Update...Schizo in Effect.</title>
<content type="html">
            &lt;p&gt;So, I&#8217;ve been &#8220;offline&#8221; for a bit.  Had a short break in the academic dimension, money issues in the corporate dimension, and general techno-depression (where I just don&#8217;t give a shnizzle about any of it) &#8211; all of which removed any desire to be at the ole puter.&lt;/p&gt;


	&lt;p&gt;Not much has changed accept I&#8217;m back at it &#8211; for my last graduate class evar.&lt;/p&gt;


	&lt;p&gt;There&#8217;s been some interesting things happening in my techie-world.  I just can&#8217;t seem to get any motivation going to care.  Lot&#8217;s of good discussions around Groovy, JRuby and virtual machines in general.  Functional Programming seems to be the snowball that is sucking people up for no good reason.  Open source hardware, smaller and smaller processors, and almost the dead quiet before the tornado in the networking world.  Apple still is going nuts though I am already tired of the continued iPhone hype.  Maybe I&#8217;m just jealous because I am stuck with a 1st-gen&#8217;er.  I really wish there would be some big news from today&#8217;s MacWorld Keynote about &lt;span class='caps'&gt;OS X&lt;/span&gt; or their other platforms (non-iPhone).  Still waiting for that.&lt;/p&gt;


	&lt;p&gt;I still subscribe to Linux Journal magazine &#8211; but, am not really sure why.  The content is lame&#8230;and is second rate to most of the blogs I read anyway.  There&#8217;s nothing new in that space&#8230;especially from the OS perspective.  Reading it this morning kind of took me back to somewhere around &#8216;93 when I first saw Linux running on a friends Packard Bell PC.  It was kind of funny &#8230; I was supposed to be getting a demo of this awesome Windows alternative called OS/2 (which is now completely dead).  I got so hooked on the story of Linux that I could&#8217;ve cared less about OS/2.  I&#8217;d seen some &lt;span class='caps'&gt;UNIX&lt;/span&gt; before this &#8211; and pretty much favored &lt;span class='caps'&gt;DOS&lt;/span&gt; over Win3.X at the time.  Slackware (the Linux distro) was cool, not because of the software itself, but rather the culture.  I&#8217;m not sure what happened, but it really feels like that culture is gone, replaced by ego-driven twerps with zero appreciation.  Kind of like yoga&#8217;s americanized incarnation (downward facing dog instead of Adho Mukha Svanasana).  I kind of get the same old-skool Linux feel from the Ruby (not Rails) community, which is cool.  The difference for me between then and now, is that I really could care less if anyone jumps on the Ruby bandwagon.  Back then, I was a religious zealot about Linux &#8211; preaching to anyone who&#8217;d listen (and even those who didn&#8217;t want to hear it).  Maybe it is just a funk&#8230;but, I&#8217;m kind of just tired.  In the early 2000 I was beating the IPv6 drum only to have my head constantly bashed against a wall by corporate idiots.  At some point I think I&#8217;ve just subconsciously realized that it will all unfold however it damn well pleases and there&#8217;s no point in me caring one way or the other (I&#8217;m really just along for the ride).  I suppose the sooner I consciously accept this the better off I will be.&lt;/p&gt;


	&lt;p&gt;Then, there is the whole &#8220;human&#8221; angle&#8230;like I should be trying to save the race or something.  Like where ever I put my energy should be for the greater good (or something).  All this green crap, the election politics, fuel prices, my rapidly thinning scalp coverage, blah, blah, blah.  It really is rather depressing.  Oh wait, I&#8217;m not supposed to care about the number of hairs listing from the top o&#8217; my head&#8230;green, green is good.  Damn, green is bad.  Green means we&#8217;ve already screwed up and attempting to care.  Then I read O&#8217;Reilly&#8217;s latest blog post and return to proud American mode.  Sorry&#8230;can&#8217;t&#8230;help&#8230;myself&#8230;ahhhhhhhh&#8230;the&#8230;madness.  It&#8217;s The Happening.&lt;/p&gt;


	&lt;p&gt;I watched Discovery&#8217;s deal on &lt;span class='caps'&gt;NASA&lt;/span&gt; (leaving Earth&#8230;) last night.  Really frickin&#8217; cool.  We pretty much suck as a country these days.  I wish we could have a Kennedy lead us to the Moon right about now.  Just looking forward would be nice.  These tiddly little mission to Mars with a robot just aren&#8217;t doing it either.  Don&#8217;t get me wrong on understand the relevance of the Phoenix missions &#8211; but without human life on the line it isn&#8217;t the same.  Those guys working Mercury, Gemini and Apollo (my Dad included) were the bomb.  No computers to solve the problems&#8230;just smart people working it out.  That&#8217;s effin&#8217; amazing.  Anyway&#8230;that was then, this is now.  Tomorrow we&#8217;ll still be worrying about $5/gallon gas.&lt;/p&gt;


	&lt;p&gt;So.  What was I saying?  Techno-depression&#8230;that overwhelming feeling that it is simply impossible to feel like you are doing anything relevant, let alone worthy.  I can&#8217;t seem to latch on to any one thing long enough to feel like I&#8217;ve made my mark.  The &#8216;master of nothing&#8217; syndrome in full effect.  I&#8217;m basically in information overload&#8230;damn you Google Reader!  Add in a mix of &#8216;mobile me&#8217; and it is all over.  I just spent a week at the ocean (in and out of the water).  It was all I could do to not open Google Reader from my iPhone.  Fear of the 600 new feeds I&#8217;d have to wade through was killing me.  I&#8217;m an addict for sure.  Is there an Informatics Anonymous?&lt;/p&gt;


	&lt;p&gt;Actually, I&#8217;m doing pretty good now.  High of 104 degrees today.  Back at work, the routine is definitely soothing.  Performance evaluation this morning.  Kids are doing well, one is visiting Zion the other I have no clue what he&#8217;s up to.  All I know is that every time I get near him he closes his computer, phone, etc. as fast as possible.  Is that a sign?  Went and saw the Indy Jones movie last night.  I&#8217;m definitely getting old&#8230;but somehow guys like Harrison Ford and Clint Eastwood don&#8217;t &#8211; and not in the Barry Bonds sort of way (not older, and not bigger at the same time).  The movie was OK.  Definitely in line with the others.  Weird that Lucas et al. progress from religious relics to alien encounters&#8230;or maybe progress is the wrong verb.&lt;/p&gt;


	&lt;p&gt;Well, lunch is over.  Back to work.  Peace in.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://www.blackholelogic.com/">
    <author>
      <name>kitplummer</name>
    </author>
    <id>tag:www.blackholelogic.com,2008-05-28:154</id>
    <published>2008-05-28T14:48:00Z</published>
    <updated>2008-05-28T15:02:06Z</updated>
    <category term="Technot"/>
    <link href="http://www.blackholelogic.com/2008/5/28/work-stoppage" rel="alternate" type="text/html"/>
    <title>Work Stoppage!!!</title>
<content type="html">
            &lt;p&gt;Having worked in the DoD space now for the better part of my career I&#8217;ve seen this happen more than once.  ;)  And, every time I can&#8217;t help but wonder who&#8217;s getting fired.  Or, which side of the fence is really responsible?  I&#8217;d likely presume that it is a combination of both the acquisition process&#8217; complexity and priorities, spreading that across both the customer and contractor&#8217;s plates.&lt;/p&gt;


	&lt;p&gt;However, let&#8217;s just put this into perspective for a second.  Let&#8217;s say I&#8217;m a small service business that provides a consulting product to a handful of other small businesses.  For &#8220;whatever&#8221; the reason one of my customers is behind in making payment on a follow-up contract that continues the previous contract&#8217;s work.  I have some basic choices as a business operator.  I can either (A) continue the work in good faith because I value the customer and their end product, or (B) stop working until payment is made, attempting to force action on my customer&#8217;s part.  Sure, there are a ton of variables that would impact this decision (e.g. the customer&#8217;s history, the impact of stoppage on their deliverables, the performance hit a stoppage would have on our ability to spin back up, etc.).  All of these dynamics would and should be considered.&lt;/p&gt;


	&lt;p&gt;But, just for a second consider this variable.  What if the customer&#8217;s end-product, once delivered, could save lives?  Should the work stoppage route even be an option?  (And where IS the accountability?)&lt;/p&gt;


	&lt;p&gt;Fortunately, I have plenty of important work to get done&#8230;like CBTs and performance evaluations.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://www.blackholelogic.com/">
    <author>
      <name>kitplummer</name>
    </author>
    <id>tag:www.blackholelogic.com,2008-05-04:151</id>
    <published>2008-05-04T00:43:00Z</published>
    <updated>2008-05-04T00:46:22Z</updated>
    <category term="Technot"/>
    <link href="http://www.blackholelogic.com/2008/5/4/next-gen-iphone-sighting" rel="alternate" type="text/html"/>
    <title>Next-Gen iPhone Sighting!</title>
<content type="html">
            &lt;p&gt;Strangest place&#8230;this kid show on Nickelodeon called iCarly.&lt;/p&gt;


	&lt;p&gt;This &lt;a href='http://www.tv.com/icarly/ipromote-techfoots/episode/1184857/summary.html'&gt;episode&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;I tried searching for it&#8230;but, pretty sure it was it with a green pear on the backside.  But, the thing was in a shiny black case, not metal.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://www.blackholelogic.com/">
    <author>
      <name>kitplummer</name>
    </author>
    <id>tag:www.blackholelogic.com,2008-04-25:143</id>
    <published>2008-04-25T00:47:00Z</published>
    <updated>2008-04-25T00:50:38Z</updated>
    <category term="Techno"/>
    <link href="http://www.blackholelogic.com/2008/4/25/demand-indeed" rel="alternate" type="text/html"/>
    <title>Demand, Indeed...</title>
<content type="html">
            A peer in Phoenix recently dropped a &lt;a href='http://www.jamesbritt.com/2008/4/24/trendy'&gt;blog&lt;/a&gt; comparing the job market for Ruby, versus Groovy.

&lt;a href='http://www.indeed.com'&gt;Indeed.com&lt;/a&gt; is an interesting Job market tool, to say the least.

I decided to plug in some of the keywords associated with recent projects.  This is the result:
&lt;br&gt;&lt;br&gt;
&lt;div&gt;
&lt;a href='http://www.indeed.com/jobtrends?q=rails%2C+ESB%2C+RTSJ%2C+CBE%2C+OSGi%2C+IPv6' title='rails, ESB, RTSJ, CBE, OSGi, IPv6 Job Trends'&gt;
&lt;img src='http://www.indeed.com/trendgraph/jobgraph.png?q=rails%2C+ESB%2C+RTSJ%2C+CBE%2C+OSGi%2C+IPv6' height='300' alt='rails, ESB, RTSJ, CBE, OSGi, IPv6 Job Trends graph' width='540'&gt;
&lt;/a&gt;
&lt;table width='100%'&gt;&lt;tr&gt;
&lt;td&gt;&lt;a href='http://www.indeed.com/jobtrends?q=rails%2C+ESB%2C+RTSJ%2C+CBE%2C+OSGi%2C+IPv6'&gt;rails, ESB, RTSJ, CBE, OSGi, IPv6 Job Trends&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href='http://www.indeed.com/jobs?q=rails'&gt;rails jobs&lt;/a&gt; - &lt;a href='http://www.indeed.com/jobs?q=ESB'&gt;ESB jobs&lt;/a&gt; - &lt;a href='http://www.indeed.com/jobs?q=RTSJ'&gt;RTSJ jobs&lt;/a&gt; - &lt;a href='http://www.indeed.com/jobs?q=CBE'&gt;CBE jobs&lt;/a&gt; - &lt;a href='http://www.indeed.com/jobs?q=OSGi'&gt;OSGi jobs&lt;/a&gt; - &lt;a href='http://www.indeed.com/jobs?q=IPv6'&gt;IPv6 jobs&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;

Kind of cool, no?

So, check this one out:
&lt;br&gt;&lt;br&gt;
&lt;div&gt;
&lt;a href='http://www.indeed.com/jobtrends?q=rails%2C+ESB%2C+RTSJ%2C+CBE%2C+OSGi%2C+IPv6%2C+SOA' title='rails, ESB, RTSJ, CBE, OSGi, IPv6, SOA Job Trends'&gt;
&lt;img src='http://www.indeed.com/trendgraph/jobgraph.png?q=rails%2C+ESB%2C+RTSJ%2C+CBE%2C+OSGi%2C+IPv6%2C+SOA' height='300' alt='rails, ESB, RTSJ, CBE, OSGi, IPv6, SOA Job Trends graph' width='540'&gt;
&lt;/a&gt;
&lt;table width='100%'&gt;&lt;tr&gt;
&lt;td&gt;&lt;a href='http://www.indeed.com/jobtrends?q=rails%2C+ESB%2C+RTSJ%2C+CBE%2C+OSGi%2C+IPv6%2C+SOA'&gt;rails, ESB, RTSJ, CBE, OSGi, IPv6, SOA Job Trends&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href='http://www.indeed.com/jobs?q=rails'&gt;rails jobs&lt;/a&gt; - &lt;a href='http://www.indeed.com/jobs?q=ESB'&gt;ESB jobs&lt;/a&gt; - &lt;a href='http://www.indeed.com/jobs?q=RTSJ'&gt;RTSJ jobs&lt;/a&gt; - &lt;a href='http://www.indeed.com/jobs?q=CBE'&gt;CBE jobs&lt;/a&gt; - &lt;a href='http://www.indeed.com/jobs?q=OSGi'&gt;OSGi jobs&lt;/a&gt; - &lt;a href='http://www.indeed.com/jobs?q=IPv6'&gt;IPv6 jobs&lt;/a&gt; - &lt;a href='http://www.indeed.com/jobs?q=SOA'&gt;SOA jobs&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
          </content>  </entry>
  <entry xml:base="http://www.blackholelogic.com/">
    <author>
      <name>kitplummer</name>
    </author>
    <id>tag:www.blackholelogic.com,2008-04-25:142</id>
    <published>2008-04-25T00:19:00Z</published>
    <updated>2008-04-25T00:41:30Z</updated>
    <category term="Techno"/>
    <link href="http://www.blackholelogic.com/2008/4/25/rvooz-screencast" rel="alternate" type="text/html"/>
    <title>rVooz Screencast...</title>
<content type="html">
            &lt;p&gt;Captured a very simple screencast, attempting to show &lt;em&gt;some&lt;/em&gt; of the functionality we&#8217;re building out.&lt;/p&gt;


	&lt;p&gt;Check it out here: &lt;a href='http://www.rvooz.org/rvooz_overview/index.html'&gt;rVooz Overview&lt;/a&gt;&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://www.blackholelogic.com/">
    <author>
      <name>kitplummer</name>
    </author>
    <id>tag:www.blackholelogic.com,2008-04-23:141</id>
    <published>2008-04-23T03:43:00Z</published>
    <updated>2008-04-23T04:08:02Z</updated>
    <category term="Techno"/>
    <link href="http://www.blackholelogic.com/2008/4/23/register-jabber-user-s-from-rails" rel="alternate" type="text/html"/>
    <title>Register Jabber User's from Rails...</title>
<content type="html">
            &lt;p&gt;On a recent project I needed the ability to register and unregister users from a Rails app, specifically a simple User model.  At first I just added the necessary capabilities to the model itself&#8230;then realized the functionality really should exist as a library/helper.  Well, if I&#8217;m going that far &#8211; might as well just drop it into a &#8220;plugin&#8221;.&lt;/p&gt;


	&lt;p&gt;You can find the plugin here: &lt;a href='http://github.com/kitplummer/xmpp4rails/wikis/home'&gt;xmmp4rails&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;xmmp4rails is a simple method-level layer around a &#8220;few&#8221; of the capabilities provided by the awesome &lt;a href='http://home.gna.org/xmpp4r/'&gt;xmpp4r&lt;/a&gt; library.&lt;/p&gt;


To get the plugin:
&lt;pre&gt;&lt;code&gt;
git clone git://github.com/kitplummer/xmpp4rails.git
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;Here&#8217;s how I&#8217;ve used it &#8211; in my model I&#8217;ve got this:&lt;/p&gt;


&lt;pre&gt;
&lt;code&gt;
...
before_create :xmpp_register?
...
def xmpp_register?
    begin
      register_account(self.login + &quot;@&quot; + CONFIG['hostname'], self.password)
    rescue StandardError
      return false
    else
      simple_send('gateway@' + CONFIG['hostname'], 
                         'CONFIG['jabberpw'], 
                         'admin@' + CONFIG['hostname'], 
                         &quot;new account: #{identity_url}&quot;)
      return true
    end
end
&lt;/code&gt;
&lt;/pre&gt;
So, if the registration fails, so the does the account creation.  Obviously with the library called from the model you can do different things with it.  Notice the simple_send method too.  When an account gets created in the app &#8211; the model sends me a notification via Jabber.  

	&lt;p&gt;I&#8217;ve also provide a simple stub so the models can still test out completely.&lt;/p&gt;


	&lt;p&gt;Hopefully this will be useful for someone else.  I&#8217;d also love a reason to keep extending the functionality wrapped, as well as flesh out the tests with RSpec.  Let me know.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://www.blackholelogic.com/">
    <author>
      <name>kitplummer</name>
    </author>
    <id>tag:www.blackholelogic.com,2008-04-21:139</id>
    <published>2008-04-21T18:49:00Z</published>
    <updated>2008-04-21T18:54:11Z</updated>
    <category term="Techno"/>
    <link href="http://www.blackholelogic.com/2008/4/21/agile-practices-and-software-maintenance" rel="alternate" type="text/html"/>
    <title>Agile Practices and Software Maintenance...</title>
<content type="html">
            &lt;p&gt;I recently wrote a non-traditional paper looking at how it might be possible to integrate Agile practices into a software maintenance activity.  Academically I don&#8217;t expect the paper to go over so well &#8211; but, believe it might be of interest to some who&#8217;ve been asked the same questions as me.&lt;/p&gt;


	&lt;p&gt;The paper uses a very simple &#8220;helloworld&#8221; application written in Ruby and highlights a few really cool Ruby tools.&lt;/p&gt;


	&lt;p&gt;Anyway &lt;a href='http://blackholelogic.com/assets/2008/4/21/Software_Engineering_and_Practical_Agile_Maintenance.pdf'&gt;here&#8217;s the paper in &lt;span class='caps'&gt;PDF&lt;/span&gt; form&lt;/a&gt; &#8211; feedback always appreciated.&lt;/p&gt;


	&lt;p&gt;I&#8217;ve also written a very similar paper on the potential for IV&#38;V integration into an Agile project.  I&#8217;ll probably post this one as well in the near future.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://www.blackholelogic.com/">
    <author>
      <name>kitplummer</name>
    </author>
    <id>tag:www.blackholelogic.com,2008-04-21:136</id>
    <published>2008-04-21T16:34:00Z</published>
    <updated>2008-04-21T16:39:31Z</updated>
    <category term="Techno"/>
    <link href="http://www.blackholelogic.com/2008/4/21/rails-vs-merb-footprint" rel="alternate" type="text/html"/>
    <title>Rails Vs. Merb...Footprint?</title>
<content type="html">
            &lt;p&gt;So, I realize if you are reading this you actually care about Rails and Merb.  Therefore I hope you are not absolutely perturbed at the lack of quality content here.  :)&lt;/p&gt;


	&lt;p&gt;Out of strange curiosity I decided to see which framework was truly lighter in &#8220;default&#8221; form.  I simply ran each&#8217;s command to create a blank projects then looked at the &#8220;size&#8221; of the created directory.&lt;/p&gt;


&lt;pre&gt;
&lt;code&gt;
$ rails test
&lt;/code&gt;
&lt;/pre&gt;

	&lt;p&gt;The resulting project weighed in at 400KB.&lt;/p&gt;


&lt;pre&gt;
&lt;code&gt;
$ merb-gen app test
&lt;/code&gt;
&lt;/pre&gt;

	&lt;p&gt;Merb&#8217;s project weighs in at 104KB.&lt;/p&gt;


	&lt;p&gt;Amazing?  No, not really.  But, now I&#8217;m wondering what the size of a Grails project is&#8230;&lt;/p&gt;
          </content>  </entry>
</feed>
