<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	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/"
	>

<channel>
	<title>Robert Hurst &#187; Technology</title>
	<atom:link href="http://robert.hurst-ri.us/category/tech/feed/" rel="self" type="application/rss+xml" />
	<link>http://robert.hurst-ri.us</link>
	<description>The life &#38; times of an information systems engineer</description>
	<lastBuildDate>Mon, 16 Jan 2012 19:34:27 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Intel Atom D525</title>
		<link>http://robert.hurst-ri.us/2011/12/29/intel-atom-d525/</link>
		<comments>http://robert.hurst-ri.us/2011/12/29/intel-atom-d525/#comments</comments>
		<pubDate>Thu, 29 Dec 2011 20:04:57 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[opinion]]></category>

		<guid isPermaLink="false">http://robert.hurst-ri.us/?p=1214</guid>
		<description><![CDATA[I purchased this boxed motherboard with processor from Newegg and it arrived yesterday for me to tinker with for the coming winter nights. I want a dedicated machine with no fan noise to make use for my retroarcade/computer/console gaming endeavors. It will motivate me to create a new emulator frontend using the latest in 3D [...]]]></description>
			<content:encoded><![CDATA[<p>I purchased this <a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16813121442" target="_blank">boxed motherboard with processor</a> from Newegg and it arrived yesterday for me to tinker with for the coming winter nights.  I want a dedicated machine with no fan noise to make use for my retroarcade/computer/console gaming endeavors.  It will motivate me to create a new emulator frontend using the latest in 3D / HD software features.  The small form factor allows me to lug it easily from room-to-room and place-to-place.</p>
<p>After installing Fedora 16 on it, I was a little disappointed in how its video worked with my <a href="http://robert.hurst-ri.us/2011/06/10/hp-lp2475w/" target="_blank">HP 25&#8243;</a> display.  It was kind of slow and I noticed the mouse could move off the left edge near the top.  Huh?  There is only one video output from this motherboard, but it was acting like there were dual displays.  A quick review of xrandr revealed an output <strong>LVDS1</strong> which is for a laptop panel and does not exist of course.</p>
<p>So that led me to review the i915 kernel module parameters using modinfo.  It suggested to me I could instruct the module to ignore the laptop panel display and also enforce modesetting on the VGA port only.  I attempted this by editing /etc/grub2.cfg and appending these two kernel options:</p>
<p><code>i915.modeset=-1 i915.panel_ignore_lid=-1</code></p>
<p>After a re-boot, I was instantly gratified by the super-fast boot (5-seconds for Linux and another 10-seconds for automatic login to GnomeShell to complete).  For $69, the speed and versatility of this motherboard/CPU is outstanding.  I will have to contemplate ordering more, heh.</p>
]]></content:encoded>
			<wfw:commentRss>http://robert.hurst-ri.us/2011/12/29/intel-atom-d525/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Linux Hack &amp; Slash client</title>
		<link>http://robert.hurst-ri.us/2011/10/29/linux-hack-slash-client/</link>
		<comments>http://robert.hurst-ri.us/2011/10/29/linux-hack-slash-client/#comments</comments>
		<pubDate>Sat, 29 Oct 2011 17:45:25 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Pastime]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://robert.hurst-ri.us/?p=1173</guid>
		<description><![CDATA[In the last millennium, I developed a custom Hack &#38; Slash gaming client for Windows &#8217;98, because I wanted to embed both music and sound effects to enhance online play.  The result was a big hit among its players.  But as a Linux user, I could not get that cool feature&#8230; that is, until today. [...]]]></description>
			<content:encoded><![CDATA[<p>In the last millennium, I developed a custom <a title="Role-playing game daemon" href="http://robert.hurst-ri.us/games/rpgd" target="_blank">Hack &amp; Slash</a> gaming client for Windows &#8217;98, because I wanted to embed both music and sound effects to enhance online play.  The result was a big hit among its players.  But as a Linux user, I could not get that cool feature&#8230; that is, until today.</p>
<p>The result is this Tcl/Expect script (listed below).  First, you will need to make certain you have these dependent packages installed:</p>
<pre>yum install expect fluid-soundfont-lite-patches timidity++</pre>
<p>Next, you will need to fetch the multimedia files into your home directory:</p>
<pre>svn co https://robert.hurst-ri.us/svn/rpgd/trunk/snd Music/hack</pre>
<p>Then, setup your telnet session attributes in <strong>.telnetrc</strong> to automatically load when you connect:</p>
<pre>robert.hurst-ri.us
    mode character
    set crlf off
    unset escape</pre>
<p>And last, simply copy/paste the script below into an executable text file of your choice and run it.</p>
<pre>#!/usr/bin/expect -f

# play a MIDI file
proc midi s {
  set mid [string range $s 3 end-3]
  set bool [string range $s end-1 end-1]
  set cmd "killall playmus 2&gt; /dev/null; playmus -v 25 Music/hack/$mid.mid &amp;&gt; /dev/null &amp;"
  system $cmd
}

# play a WAVE file
proc wave s {
  set wav [string range $s 3 end-3]
  set bool [string range $s end-1 end-1]
  set cmd "play Music/hack/$wav.wav &amp;&gt; /dev/null"
  if {$bool == 0} { set cmd "$cmd &amp;" }
  system $cmd
}

# connect to the game server ...
log_user 0
spawn telnet robert.hurst-ri.us 7000
wave "...dungeon;0."

expect_background {
  -re "\033\\\[\\\{.*\\\}" { midi $expect_out(0,string); return }
  -re "\033\\\[\\\[.*\\\]" { wave $expect_out(0,string); return }
  -re "(.*)" { send_user -- $expect_out(0,string); }
}

interact</pre>
]]></content:encoded>
			<wfw:commentRss>http://robert.hurst-ri.us/2011/10/29/linux-hack-slash-client/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Radeon HD 5670</title>
		<link>http://robert.hurst-ri.us/2011/09/15/radeon-hd-5670/</link>
		<comments>http://robert.hurst-ri.us/2011/09/15/radeon-hd-5670/#comments</comments>
		<pubDate>Thu, 15 Sep 2011 19:31:46 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[hardware]]></category>

		<guid isPermaLink="false">http://robert.hurst-ri.us/?p=1157</guid>
		<description><![CDATA[Specifically, a 1GB video card manufactured by XFX, purchased through Newegg.com.  This replaces the Radeon HD 3870 X2 I installed as part of my new workstation.  That card was simply outrageous in terms of speed, flexibility, and price (as in expensive). Over the years, its onboard fan got a bit louder and louder, which I [...]]]></description>
			<content:encoded><![CDATA[<p>Specifically, a 1GB video card manufactured by <a title="XFX Radeon HD 5670" href="http://www.newegg.com/Product/Product.aspx?Item=N82E16814150467" target="_blank">XFX</a>, purchased through Newegg.com.  This replaces the Radeon HD 3870 X2 I installed as part of my <a title="February 2008" href="http://robert.hurst-ri.us/2008/02/07/new-workstation/" target="_blank">new workstation</a>.  That card was simply outrageous in terms of speed, flexibility, and price (as in expensive).</p>
<p>Over the years, its onboard fan got a bit louder and louder, which I believe was a result of maturing Linux graphic drivers that were pushing its dual GPUs harder and harder.  So much so, I could hear my workstation whining away from another room.  That&#8217;s not good.  No matter what TLC I put into the workstation to improve firmware, air flow, etc., I could not get rid of the annoying decibels it was throwing about.</p>
<p>This card performs admirably, supporting both my HP 24&#8243; displays at 1920&#215;1200 each, but it runs super quiet.  I cannot hear any part of the workstation&#8217;s fans when exiting the room &#8212; and it has 7 of them: three upfront, one rear, one on each CPU, and the one on this new video card.  I can sit comfortably now at my workstation and hear myself think again &#8212; it&#8217;s like meeting myself new all over again, and that&#8217;s not necessarily a bad thing either.</p>
<p>I can only imagine our dog, Rebecca, must be feeling without all that air swooshing in that background.  <img src='http://robert.hurst-ri.us/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://robert.hurst-ri.us/2011/09/15/radeon-hd-5670/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HP LP2475w</title>
		<link>http://robert.hurst-ri.us/2011/06/10/hp-lp2475w/</link>
		<comments>http://robert.hurst-ri.us/2011/06/10/hp-lp2475w/#comments</comments>
		<pubDate>Fri, 10 Jun 2011 13:15:02 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[hardware]]></category>

		<guid isPermaLink="false">http://robert.hurst-ri.us/?p=1022</guid>
		<description><![CDATA[I got another 24&#8243; monitor (left) and its make is also HP.  It sits comfortably paired with an HP w2408h (right) and its stand also supports tilt and swivel, something HP got right that other makes still don&#8217;t get.  It is packaged with a complement of cables: a pair of HDMI, a pair of DVI, [...]]]></description>
			<content:encoded><![CDATA[<div class="wp-caption alignright" style="width: 394px"><a href="http://robert.hurst-ri.us/images/HP-LP2475w.jpg" rel="lightbox[1022]"><img class=" " title="HP LP2475w" src="http://robert.hurst-ri.us/images/HP-LP2475w-small.jpg" alt="HP LP2475w" width="384" height="217" /></a><p class="wp-caption-text">Old (VIC20), new (Linux), and virtual computing (Win7) to dual monitors </p></div>
<p>I got another 24&#8243; monitor (left) and its make is also HP.  It sits comfortably paired with an HP w2408h (right) and its stand also supports tilt and swivel, something HP got right that other makes still don&#8217;t get.  It is packaged with a complement of cables: a pair of HDMI, a pair of DVI, and a USB to bridge its ports to the computer.  And of course, it is also 16:10 aspect ratio despite the overflow of cheaper 16:9 monitors on the market.  Do consumers really care about the small black areas above/below a 1080p HD movie playing on their computer display?  I&#8217;ll take the 1200 pixel rows over 1080 every time, thank you.</p>
<p>But what attracted me most about this particular model is its multiple video inputs: composite video, s-video, component video, 2x DVI, DisplayPort, and HDMI.  The monitor does a bang up job with the analog inputs, allowing for original and scaling sizes to maintain aspect or fill the screen.  The screenshot shows a VIC 20&#8242;s composite video displaying in a Picture-in-Picture display overlaying a portion of the Fedora 15 Linux Gnome Shell background.  This monitor also supports Picture-out-of-Picture (below) which means the widescreen display is split into two halves for side-by-side viewing, a very nice and quite usable option.</p>
<p>Desktop computing is fun again with this much screen real estate (3840&#215;1200﻿﻿) to roam about and easy attachment of a variety of video sources to appease my retrogaming pleasures.  It is truly versatile by every measure.</p>
<p style="text-align: center;">&nbsp;</p>
<div class="wp-caption aligncenter" style="width: 582px"><a href="http://robert.hurst-ri.us/images/HP-LP2475w-PoP-VIC20.jpg" rel="lightbox[1022]"><img title="HP LP2475w POP example" src="/images/HP-LP2475w-PoP-VIC20.jpg" alt="POP" width="572" height="321" /></a><p class="wp-caption-text">HP LP2475w POP example</p></div>
]]></content:encoded>
			<wfw:commentRss>http://robert.hurst-ri.us/2011/06/10/hp-lp2475w/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fedora 15</title>
		<link>http://robert.hurst-ri.us/2011/05/29/fedora-15/</link>
		<comments>http://robert.hurst-ri.us/2011/05/29/fedora-15/#comments</comments>
		<pubDate>Sun, 29 May 2011 15:31:04 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[opinion]]></category>

		<guid isPermaLink="false">http://robert.hurst-ri.us/?p=979</guid>
		<description><![CDATA[Kudos to the Red Hat Fedora team for this new release.  A slew of new things to learn and control.  I already used its preupgrade utility to easily apply it to this KVM guest running my Internet services in web site, email, et al, with only a little bit of work associated with some service [...]]]></description>
			<content:encoded><![CDATA[<p>Kudos to the <strong>Red Hat Fedora</strong> team for this new release.  A slew of new things to learn and control.  I already used its <strong>preupgrade</strong> utility to easily apply it to this KVM guest running my Internet services in web site, email, et al, with only a little bit of work associated with some service configuration files (easily identified as *.rpmnew) that required some manual updating to work to my tastes.  I have completed a clean install over Fedora 14 on my workstation that hosts this KVM guest, and all is doing well so far as stability and performance.</p>
<p>The most obvious change, of course, is the introduction to <strong>Gnome 3.0 with Gnome-Shell</strong>.  Wow, has it come a long way in usability from my <a title="GnomeShell preview" href="http://robert.hurst-ri.us/2010/06/11/gnomeshell-preview/" target="_blank">preview</a> of it about a year ago.  After an hour of self-discovery of this shiny new user interface to the Gnome window manager, I am pleased to say I have adapted to it quite readily &#8212; and that&#8217;s a good indicator.</p>
<p>The UI is intuitive enough to me.  I like the ease of managing its favorites menu and I especially like the window management with the dynamic workspaces to the right.  I do miss some of Compiz features, such as wheel zoom and mouse selecting any area to snapshot to a graphic image, but I am confident such niceties will arrive eventually.  It is a must to install <strong>gnome-tweak-tool</strong>, simply to increase the font rendering scale and use preferred fonts &#8212; as nice as the default liberation fonts look, I have grown accustomed to my preferred combo of Arial, Lucida Console, and Trebuchet.</p>
<p><strong>Firefox 4</strong> is also a welcome change.  It starts up faster and it renders faster &#8212; I was starting to warm up to Google Chrome as a replacement, because of Firefox&#8217;s prior performance.  I had to first install an extension NoSquint that manages page zooming to leverage my high definition monitor and accommodate my aging eyes.  Next came the usual suspects from Adobe, except they now offer a 64-bit flash player, which means nspluginwrapper is no longer needed; OpenJDK and IcedTea have proven to be capable enough for my Java-enabled web needs; and mozplugger with mplayer and timidity++ (removing totem-mozplugin of course) allows HTML embedded media to play without fuss.  Finally, CUPS with system-config-printer continue to not disappoint with its auto-detection of our networked HP Color LaserJet 2605dn printer.</p>
<p>As a long-time end user of OpenOffice (I still got my boxed copy of Sun&#8217;s StarOffice), I am happy to see a parallel fork of it as <strong>Liberation Office</strong>.  Remember what happened when XFree86 messed with its licensing and became Xorg?  It is a reminder that open source projects like these in danger of getting strangled by commercial interests can quickly become a non-issue when its development community takes charge over those few that would seek to exploit the masses with their shortsightedness goals.</p>
<p>Ok, enough applications and usability talk &#8212; time to fire up MAME and other classic emulators and do some retrogaming &#8212; woot!</p>
]]></content:encoded>
			<wfw:commentRss>http://robert.hurst-ri.us/2011/05/29/fedora-15/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux IPVS</title>
		<link>http://robert.hurst-ri.us/2011/04/30/linux-ipvs/</link>
		<comments>http://robert.hurst-ri.us/2011/04/30/linux-ipvs/#comments</comments>
		<pubDate>Sat, 30 Apr 2011 20:02:56 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://robert.hurst-ri.us/?p=962</guid>
		<description><![CDATA[There are a number of ways to implement Linux IP Virtual Server, one of which from Red Hat Enterprise Linux is to make use of their Cluster Suite packages: ipvsadm and piranha.  We are using most of piranha&#8217;s components to front-end clients into our Oracle Peoplesoft systems running on IBM BladeCenter: its service pulse for [...]]]></description>
			<content:encoded><![CDATA[<p>There are a number of ways to implement <a title="project web site" href="http://www.linuxvirtualserver.org/software/ipvs.html" target="_blank">Linux IP Virtual Server</a>, one of which from Red Hat Enterprise Linux is to make use of their Cluster Suite packages: <strong>ipvsadm</strong> and <strong>piranha</strong>.   We are using most of piranha&#8217;s components to front-end clients into our  Oracle Peoplesoft systems running on IBM BladeCenter: its service <strong>pulse</strong> for heartbeat fail-over and <strong>lvsd</strong> as the IPVS director which spawns <strong>nanny</strong> processes for service health monitoring; we ignore using piranha&#8217;s  web administration tools, as we manage most of that via text editing of  its <strong>/etc/sysconfig/ha/lvs.cf</strong> and made our own custom utility scripts to wrap the various  ipvsadm calls.</p>
<p>Peoplesoft is setup to do an IPVS <strong>direct routing</strong> method.  That is, client connections connect into the IPVS director  hosting the virtual IP address.  The packet gets redirected by IPVS to a  physical host running one of the Weblogic services.  After the client  requests are processed by Weblogic, the reply packets get sent back  directly to the client machine &#8212; without traversing back through the  IPVS layer.  This is the most lightweight of methods offered by IPVS.</p>
<p>To configure IPVS for direct routing,  all the hosts must be running  on the same VLAN.  And since IPVS in this mode does not do any network  address translation (nat), all of its virtual service port numbers must  match the real service port numbers, i.e.,  https://hrms.somedomain.com:8443 might redirect as  https://blade4.chassis2:8443.</p>
<p>It is important to setup any IPVS  timeout that works with your application needs, i.e., our Peoplesoft  portal pages have an enforced application timeout of 20-minutes, so IPVS  should not drop any idle client connections in advance of that.  Just  modify <strong>/etc/sysconfig/ipvsadm</strong> and add a line like:</p>
<pre>--set <strong>1200</strong> 0 0</pre>
<p>Start the <strong>ipvsadm</strong> service, which merely echos this file to <strong>ipvsadm -R</strong>.   You can always change this value on-the-fly, too, so no worries here.   Then configure <strong>/etc/sysconfig/ha/lvs.cf</strong> to load-balance for two web  services on different hosts:</p>
<pre>serial_no = 12
primary = 10.25.63.62
service = lvs
backup_active = 1
backup = 10.25.63.63
heartbeat = 1
heartbeat_port = 539
keepalive = 3
deadtime = 6
syncdaemon = 1
network = <strong>direct</strong>
debug_level = NONE
monitor_links = 0
virtual hrms8443 {
  active = 1
  address = 10.25.63.64 eth3:0
  vip_nmask = 255.255.255.0
  port = <strong>8443</strong>
  persistent = <strong>1200</strong>
  expect = "200 OK"
  use_regex = 0
  send_program = "/usr/local/sbin/check_hrms_ssl.sh %h 8443"
  load_monitor = none
  scheduler = <strong>wlc</strong>
  protocol = tcp
  timeout = 6
  reentry = 15
  quiesce_server = 0
  server hrwebp01 {
    address = 10.25.63.60
    active = 1
    weight = 1
  }
  server hrwebp02 {
    address = 10.25.63.61
    active = 1
    weight = 1
  }
}
</pre>
<p>Start the <strong>pulse</strong> service and dump the IPVS table:</p>
<pre>$ <strong>sudo ipvsadm -L -n</strong>
IP Virtual Server version 1.2.0 (size=4096)
Prot LocalAddress:Port Scheduler Flags
 -- RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  10.25.63.64:8443 <strong>wlc persistent 1200</strong>
 -- 10.25.63.60:8443             <strong>Route</strong>   1      0          0
 -- 10.25.63.61:8443             <strong>Route</strong>   1      0          0
</pre>
<p>The last step is to setup each of the real servers running a web  service each to process the redirected TCP packets for the virtual IP  address, i.e., 10.25.63.64.  So, modify their <strong>/etc/sysconfig/iptables</strong> and add the following ruleset:</p>
<pre><strong>*nat</strong>
: PREROUTING ACCEPT [136:11568]
: POSTROUTING ACCEPT [12:1557]
: OUTPUT ACCEPT [12:1557]
<strong>-A PREROUTING -d 10.25.63.64 -p tcp -m tcp --dport 8443 -j REDIRECT</strong>
COMMIT</pre>
<p>Startup  the <strong>iptables</strong> service to enable these rules.  Again, there is no NAT&#8217;ing  going on here, but these rules ALLOW the redirected packets from the  IPVS host to be processed on this host&#8217;s networking stack, just as if it  held the virtual IP itself.</p>
<p>For a number of years we have  enjoyed the high availability successes of IPVS handling this Peoplesoft  architecture.  Thus, we have also implemented  IPVS for our core  clinical information system running <a title="high performance object database" href="http://www.intersystems.com/cache/" target="_blank">InterSystems Caché</a>.  This implementation, however, does  not make any use of piranha and does not use the direct routing method.   The main reason why we chose not to use piranha&#8217;s pulse / lvsd services  is because there is a large mix of stateless (web) and stateful  (telnet, ssh) connections into the applications.  And while the pulse /  lvsd services could be configured to accommodate these requirements,  there are some associated complexities in its configuration, startup,  and fail-over scenarios that were undesirable to its system engineers.</p>
<p>Also, we were planning to run multiple Caché application services per  physical blade, but alas, those services listen on ALL the host&#8217;s  adapters (0.0.0.0) and cannot be configured to listen to assigned  virtual IP addresses, only port numbering.  The thought of running one  instance per <a title="kernel based virtual machine" href="http://www.linux-kvm.org/" target="_blank">KVM virtual guest</a> to circumvent the port conflict was explored, but that introduced an  unsupported RHEL 5 cluster configuration (it may be supported using RHEL  6, so that might be a future consideration) since there are integral,  shared GFS2 clustered filesystems needed for the application, too.</p>
<p>These limiting factors did not hinder us from moving forward with  IPVS.  Instead, we developed our own framework to operate this useful  load-balancer without introducing &#8220;too much&#8221; complexity.  That is, the  service configurations are maintained consistently on all physical hosts  (dev-test-production), making for simpler startup and shutdown  sequences, yet allowing for real-time dynamic changes to any environment  without contending with fixed, running daemon services.</p>
<p>The IPVS host must have NAT enabled, so enable that in <strong>/etc/sysctl.conf</strong> as:</p>
<pre># Controls IP packet forwarding
net.ipv4.ip_forward = <strong>1</strong>
</pre>
<p>The IPVS ruleset can be maintained in <strong>/etc/sysconfig/ipvsadm</strong>, although we have a cluster service (start, stop, status) script that invokes the appropriate ipvsadm commands, like thus:</p>
<pre>start)
  # if either LAN is NOT configured, do nothing but exit normally,
  # because we may be running in some monolithic mode
  if ! alive $VIP ; then
    println "$INSTANCE ($VIP) is not alive"
    exit
  fi
  if ! alive $DIP ; then
    println "$INSTANCE ($DIP) is not alive"
    exit
  fi 

  # ok, setup as an IPVS director
  echo "1" &gt; /proc/sys/net/ipv4/ip_forward
  grep -v '^#' /etc/sysconfig/ipvsadm | $ipvsadm -R
  $ipvsadm -A -t $VIP:22
  $ipvsadm -A -t $VIP:2972 -p
  $ipvsadm -A -t $VIP:9671
  ;;
stop)
  # downtime, teardown an IPVS director
  $ipvsadm -D -t $VIP:22
  $ipvsadm -D -t $VIP:2972
  $ipvsadm -D -t $VIP:9671
  ;;
status)
  # not a running IPVS director, just exit
  [ ! -f /proc/net/ip_vs ] &amp;&amp; exit
...
  ;;
</pre>
<p>The result of this IPVS host looks something like this:</p>
<pre>$ <strong>sudo ipvsadm -L -n</strong>
IP Virtual Server version 1.2.0 (size=4096)
Prot LocalAddress:Port Scheduler Flags
 -- RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  10.25.63.79:22 <strong>wlc</strong>
 -- 192.168.2.131:22             <strong>Masq </strong>   1      1          0
 -- 192.168.2.132:22             <strong>Masq </strong>   1      0          0
 -- 192.168.2.133:22             <strong>Masq </strong>   1      1          0
 -- 192.168.2.134:22             <strong>Masq </strong>   1      0          0

TCP  10.25.63.79:9671 <strong>wlc</strong>
 -- 192.168.2.131:9671           <strong>Masq </strong>   1      105        0
 -- 192.168.2.132:9671           <strong>Masq </strong>   1      103        0
 -- 192.168.2.133:9671           <strong>Masq </strong>   1      103        0
 -- 192.168.2.134:9671           <strong>Masq </strong>   1      101        0

TCP  10.25.63.79:<strong><span style="color: #0000ff;">2972</span> wlc persistent 360</strong>
 -- 192.168.2.131:<strong><span style="color: #800000;">1981</span>           Masq </strong>   1      10         0
 -- 192.168.2.132:<strong><span style="color: #800000;">1982</span>           Masq </strong>   1      9          0
 -- 192.168.2.133:<strong><span style="color: #800000;">1983</span>           Masq </strong>   1      10         0
 -- 192.168.2.134:<strong><span style="color: #800000;">1984</span>           Masq </strong>   1      0          0
</pre>
<p>Note that there are only three clustered IIS web servers connecting into the four application server pool, so each web server (and each of its threads) connected to a discrete application server; the web client paradigm typically requires client persistence enabled, so there are no concurrency issues that comes with multi-threaded requests.</p>
<p>Optionally, you will need to setup some <a title="Linux Foundation" href="http://www.linuxfoundation.org/collaborate/workgroups/networking/iproute2" target="_blank" class="broken_link">iproute2</a> rules on each of the application services, but only if you want the hosts running those target virtual services to be also reachable by other means, such as ssh&#8217;inf directly to the physical hostname.  Here&#8217;s how to configure that on a RHEL 5 server.  Modify <strong>/etc/iproute2/rt_tables</strong> and append:</p>
<pre>118    development
128    test
138    production</pre>
<p>&#8230; and create two new files in <strong>/etc/sysconfig/networking-scripts</strong> as <strong>rule-{adapter}</strong> and <strong>route-{adapter}</strong>, substituting {adapter} with the name of the physical network adapter, i.e., <strong>eth0</strong> or <strong>br1</strong>.  First, the rule file:</p>
<pre>from 192.168.2.111 lookup development
from 192.168.2.112 lookup development

from 192.168.2.121 lookup test
from 192.168.2.122 lookup test

from 192.168.2.131 lookup production
from 192.168.2.132 lookup production
from 192.168.2.133 lookup production
from 192.168.2.134 lookup production</pre>
<p>Then the route file:</p>
<pre>default via 192.168.2.118 table development
default via 192.168.2.128 table test
default via 192.168.2.138 table production</pre>
]]></content:encoded>
			<wfw:commentRss>http://robert.hurst-ri.us/2011/04/30/linux-ipvs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TI-99/4A</title>
		<link>http://robert.hurst-ri.us/2011/03/05/ti-994a/</link>
		<comments>http://robert.hurst-ri.us/2011/03/05/ti-994a/#comments</comments>
		<pubDate>Sat, 05 Mar 2011 14:10:32 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[hardware]]></category>

		<guid isPermaLink="false">http://robert.hurst-ri.us/?p=954</guid>
		<description><![CDATA[Just got a few Ebay bundles (all TI oriented) this past week for about $99 shipped to satisfy my tinkering and nostalgic pleasures. An original TI/99 4A computer, boxed, 22 carts (mostly games, extended BASIC, and a couple of learning aids I can use when they put me in a retirement home), BASIC and extended [...]]]></description>
			<content:encoded><![CDATA[<p>Just got a few Ebay bundles (all TI oriented)  this past week for about $99 shipped to satisfy my tinkering and  nostalgic pleasures. <img src='http://robert.hurst-ri.us/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>An original <a href="http://en.wikipedia.org/wiki/Texas_Instruments_TI-99/4A" target="_blank">TI/99 4A computer</a>,  boxed, 22 carts (mostly games, extended BASIC, and a couple of learning  aids I can use when they put me in a retirement home), BASIC and  extended BASIC quick reference guides, a video cable to plug into my RCA  A/V ports on a Sony HDTV (nice picture!), and a joystick adapter to  allow 1 or 2 Atari-style joysticks to be used (thankfully).  The boxed  computer arrived in excellent condition and was &#8220;won&#8221; for only 99-cents;  the A/V cable for its convenient hook-up and superior picture was $9. <img src='http://robert.hurst-ri.us/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p>I already played a few game carts, very cool and capable&#8230; but  their look and feel play like a good homebrew on silicon.  Not bad, but  not addicting either&#8230; likely influenced by the price I paid for it  today, though.  If I paid retail pricing for this stuff back then, well,  I probably would not have felt so justified.  TI should have gotten  some licensing rights from any of the arcade manufacturers; heck, I can  see with its faster and superior processor and with its separated video,  TI could have done some direct ports of many arcade games and done them  real justice in the home computing space.</p>
<p>I recall being somewhat lustful of this computer back in the day  when I was shopping, like the many millions of electronic consumers.  I  just bought Atari VCS as a family gift for Christmas 1981 with an  Asteroids cart and I was hooked on the <a title="play online" href="http://robert.hurst-ri.us/games/darktower/" target="_blank">Dark Tower</a> game we got from our parents.  But I was enticed by BASIC programming  from our high school computer math class, and those games only increased  my thirst to learn computer programming.</p>
<p>At a local Apex outlet, they had a home computer stand with each of  the competing models sitting side-by-side: Atari, Coleco, Commodore, and  TI.  Only the TI had a demo cartridge running in it always, showcasing  its capabilities, and it was seducing to watch.  But Atari and Coleco  were backed by so many alluring gaming titles in their wonderful  packaging.  And while Commodore VIC 20 absolutely looked like the poor  cousin of the group, the printed specs with William Shatner on it sold  me that its stock features and future looked the brightest&#8230; and its  $300 entry point made it obtainable.</p>
<p>So what detracted me most from the TI-99/4A was its &#8220;entry&#8221; price of  $500.  Its casing and game cartridge slot were really cool, and while  it has a quality keyboard, it was still small and unfriendly for the  (potential) programmer in me.  Then came its built-in BASIC, ugh.  I was  turned off by its high entry price, limited and expensive expansions,  etc.</p>
<p>The Atari 400 was slightly less expensive and had a lot more titles,  but even a worse keyboard; plus you had to buy BASIC at the time for  around $50, and it had limited and expensive expansion options.  And  while Coleco would be a &#8220;step up&#8221; from Atari VCS, it very much looked  like a gaming console trying to pass off as a computer.</p>
<p>I&#8217;ll really enjoy a $100 worth of TI-99/4A home computing today&#8230;  but it&#8217;s no &#8220;wonder&#8221; that the VIC 20 ate their lunches back then,  followed the next year by a crushing blow the C64 delivered for the  rest of the decade.  And it&#8217;s also no wonder why the Atari and TI crowds  are still jaded by C= today. <img src='http://robert.hurst-ri.us/blog/wp-includes/images/smilies/icon_cool.gif' alt='8)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://robert.hurst-ri.us/2011/03/05/ti-994a/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cygwin Xterm</title>
		<link>http://robert.hurst-ri.us/2011/02/21/cygwin-xterm/</link>
		<comments>http://robert.hurst-ri.us/2011/02/21/cygwin-xterm/#comments</comments>
		<pubDate>Mon, 21 Feb 2011 13:06:18 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://robert.hurst-ri.us/?p=948</guid>
		<description><![CDATA[One of the best features of Cygwin is its X display server.  But the default attributes for its Xterm application leaves something to be desired for modern PCs and their HD displays.  Below is my attempt to address that grievance; here&#8217;s a copy from my home directory .Xdefaults: XTerm*background:       Light Cyan XTerm*colorBD:          DarkBlue XTerm*colorBDMode:      True [...]]]></description>
			<content:encoded><![CDATA[<p>One of the best features of <a title="project web site" href="http://www.cygwin.com" target="_blank">Cygwin</a> is its X display server.  But the default attributes for its Xterm application leaves something to be desired for modern PCs and their HD displays.  Below is my attempt to address that grievance; here&#8217;s a copy from my home directory <strong>.Xdefaults</strong>:</p>
<pre>XTerm*background:       Light Cyan
XTerm*colorBD:          DarkBlue
XTerm*colorBDMode:      True
XTerm*cursorColor:      DarkSeaGreen
XTerm*font:             -*-lucidatypewriter-medium-r-normal-*-14-140-*-*-*-*-*-*
XTerm*font:             -*-lucidatypewriter-bold-r-normal-*-14-140-*-*-*-*-*-*
XTerm*foreground:       Black
XTerm*geometry:         100x40
XTerm*rightScrollBar:   True
XTerm*saveLines:        5000
XTerm*scrollBar:        True
XTerm*scrollTtyOutput:  False
XTerm*toolBar:          True
XTerm*trueType:         True</pre>
]]></content:encoded>
			<wfw:commentRss>http://robert.hurst-ri.us/2011/02/21/cygwin-xterm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CPU Reverse Engineering: 6502</title>
		<link>http://robert.hurst-ri.us/2011/01/15/cpu-reverse-engineering-6502/</link>
		<comments>http://robert.hurst-ri.us/2011/01/15/cpu-reverse-engineering-6502/#comments</comments>
		<pubDate>Sat, 15 Jan 2011 10:03:24 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[C64]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[VIC20]]></category>

		<guid isPermaLink="false">http://robert.hurst-ri.us/?p=934</guid>
		<description><![CDATA[A video of a wonderful presentation and ongoing project, currently reverse engineering the 6502 CPU, but the process and tools are a springboard for other chips (video, sound, i/o) and pcbs:]]></description>
			<content:encoded><![CDATA[<p>A video of a wonderful presentation and ongoing project, currently reverse engineering the 6502 CPU, but the process and tools are a springboard for other chips (video, sound, i/o) and pcbs:</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="350" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.youtube.com/v/fWqBmmPQP40" /><embed type="application/x-shockwave-flash" width="425" height="350" src="http://www.youtube.com/v/fWqBmmPQP40"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://robert.hurst-ri.us/2011/01/15/cpu-reverse-engineering-6502/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fedora 14 Animated GIF fix</title>
		<link>http://robert.hurst-ri.us/2010/11/30/fedora-14-animated-gif-fix/</link>
		<comments>http://robert.hurst-ri.us/2010/11/30/fedora-14-animated-gif-fix/#comments</comments>
		<pubDate>Wed, 01 Dec 2010 01:54:10 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://robert.hurst-ri.us/?p=921</guid>
		<description><![CDATA[Oh dear, it seems that F14&#8242;s cairo package is not properly implemented by GNOME and Firefox web browser &#8212; if your Gnome is giving you fits with its pull-down menus not entirely rendering and if animated GIFs are only showing their 1st frame and the rest transparent equating to an annoying &#8220;blink&#8221; effect, then this [...]]]></description>
			<content:encoded><![CDATA[<p>Oh dear, it seems that F14&#8242;s cairo package is not properly implemented by GNOME and Firefox web browser &#8212; if your Gnome is giving you fits with its pull-down menus not entirely rendering and if animated GIFs are only showing their 1st frame and the rest transparent equating to an annoying &#8220;blink&#8221; effect, then this fix is for you:</p>
<p>$ <strong>vi /etc/yum.repos.d/fedora-13.repo</strong></p>
<p>[fedora13]<br />
name=Fedora 13 &#8211; $basearch<br />
failovermethod=priority<br />
baseurl=http://download.fedoraproject.org/pub/fedora/linux/releases/13/Everything/$basearch/os/<br />
enabled=1<br />
metadata_expire=7d<br />
gpgcheck=1<br />
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch</p>
<p>$ <strong>yum &#8211;nogpgcheck &#8211;noplugins &#8211;disablerepo=* &#8211;enablerepo=fedora13 downgrade cairo cairomm cairo-devel cairomm-devel</strong></p>
<p>Essentially, you are going from cairo-1.10 back to cairo-1.8.  Re-start Firefox and voila, no more annoying GIF issues!</p>
]]></content:encoded>
			<wfw:commentRss>http://robert.hurst-ri.us/2010/11/30/fedora-14-animated-gif-fix/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

