<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;D0AERH04cSp7ImA9WhVbF0o.&quot;"><id>tag:blogger.com,1999:blog-4222197394079314848</id><updated>2012-06-03T21:08:25.339-05:00</updated><category term="Cygwin" /><category term="Microsoft .NET" /><category term="will need again" /><category term="Palm" /><category term="Apple" /><category term="Oracle" /><category term="MarkUtils" /><category term="audio" /><category term="Dell" /><category term="email" /><category term="performance" /><category term="reported bugs" /><category term="free tools" /><category term="hardware" /><category term="laptop" /><category term="IPv6" /><category term="xml" /><category term="SysAdmin" /><category term="Alltel" /><category term="technical" /><category term="OpenWrt" /><category term="security" /><category term="Appleton-WI" /><category term="Sun Microsystems" /><category term="Microsoft Word" /><category term="Java" /><category term="Blogger" /><category term="Google" /><category term="networking" /><category term="Hewlett-Packard" /><category term="LDAP" /><category term="frustrations" /><category term="life" /><category term="Firefox" /><category term="Microsoft Windows" /><category term="VMware" /><category term="JMX" /><category term="Ext JS" /><category term="web browsing" /><category term="Linux" /><category term="Rothschild-WI" /><category term="Eclipse" /><category term="coding" /><category term="WScript" /><category term="OpenOffice.org" /><category term="JavaScript" /><category term="Yahoo UI Library" /><category term="Java Swing" /><category term="Microsoft Outook" /><title>Mark A. Ziesemer</title><subtitle type="html" /><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://blogger.ziesemer.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://blogger.ziesemer.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/4222197394079314848/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Mark A. Ziesemer</name><uri>http://www.blogger.com/profile/12752422620777325409</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="21" height="32" src="http://2.bp.blogspot.com/_aV4l4vyh5uQ/S31T85WfmMI/AAAAAAAAA9U/nRo4aI0okiQ/S220/Facebook+Me.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>114</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/ziesemer" /><feedburner:info uri="ziesemer" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;DEIEQXk5fyp7ImA9WhVQEkk.&quot;"><id>tag:blogger.com,1999:blog-4222197394079314848.post-9137888200449464039</id><published>2012-03-31T21:14:00.001-05:00</published><updated>2012-03-31T21:15:00.727-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-03-31T21:15:00.727-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SysAdmin" /><category scheme="http://www.blogger.com/atom/ns#" term="reported bugs" /><category scheme="http://www.blogger.com/atom/ns#" term="Linux" /><category scheme="http://www.blogger.com/atom/ns#" term="technical" /><category scheme="http://www.blogger.com/atom/ns#" term="will need again" /><category scheme="http://www.blogger.com/atom/ns#" term="networking" /><category scheme="http://www.blogger.com/atom/ns#" term="Appleton-WI" /><title>"Connection Reset" errors, MTU, DHCP, and Time Warner Cable</title><link rel="replies" type="application/atom+xml" href="http://blogger.ziesemer.com/feeds/9137888200449464039/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4222197394079314848&amp;postID=9137888200449464039" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4222197394079314848/posts/default/9137888200449464039?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4222197394079314848/posts/default/9137888200449464039?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ziesemer/~3/MpWtuHs97rE/connection-reset-errors-mtu-dhcp-twc.html" title="&quot;Connection Reset&quot; errors, MTU, DHCP, and Time Warner Cable" /><author><name>Mark A. Ziesemer</name><uri>http://www.blogger.com/profile/12752422620777325409</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="21" height="32" src="http://2.bp.blogspot.com/_aV4l4vyh5uQ/S31T85WfmMI/AAAAAAAAA9U/nRo4aI0okiQ/S220/Facebook+Me.jpg" /></author><thr:total>0</thr:total><content type="html">So long, AT&amp;amp;T DSL


Not too long ago, I made the move from AT&amp;amp;T DSL to Time Warner Cable for my family's home Internet connection.
AT&amp;amp;T's pricing was no longer competitive, and their terms of service were nothing to be proud of.



Hopefully most readers have heard about the recent AT&amp;amp;T policies regarding 150 GB data caps for DSL connections.
While most people have recently been complaining about
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/0cpHRl7-wdjuiJoKaQQrHY9KWn4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/0cpHRl7-wdjuiJoKaQQrHY9KWn4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/0cpHRl7-wdjuiJoKaQQrHY9KWn4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/0cpHRl7-wdjuiJoKaQQrHY9KWn4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ziesemer/~4/MpWtuHs97rE" height="1" width="1"/&gt;</content><feedburner:origLink>http://blogger.ziesemer.com/2012/03/connection-reset-errors-mtu-dhcp-twc.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUMBRXs5eCp7ImA9WhRbEkk.&quot;"><id>tag:blogger.com,1999:blog-4222197394079314848.post-1315494426008961778</id><published>2012-02-02T21:33:00.004-06:00</published><updated>2012-02-02T22:30:54.520-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-02T22:30:54.520-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Cygwin" /><category scheme="http://www.blogger.com/atom/ns#" term="SysAdmin" /><category scheme="http://www.blogger.com/atom/ns#" term="reported bugs" /><category scheme="http://www.blogger.com/atom/ns#" term="technical" /><category scheme="http://www.blogger.com/atom/ns#" term="security" /><title>Prepping Cygwin for a multi-user installation</title><link rel="replies" type="application/atom+xml" href="http://blogger.ziesemer.com/feeds/1315494426008961778/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4222197394079314848&amp;postID=1315494426008961778" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4222197394079314848/posts/default/1315494426008961778?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4222197394079314848/posts/default/1315494426008961778?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ziesemer/~3/3pN-xxlBsGE/cygwin-multi-user-installation.html" title="Prepping Cygwin for a multi-user installation" /><author><name>Mark A. Ziesemer</name><uri>http://www.blogger.com/profile/12752422620777325409</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="21" height="32" src="http://2.bp.blogspot.com/_aV4l4vyh5uQ/S31T85WfmMI/AAAAAAAAA9U/nRo4aI0okiQ/S220/Facebook+Me.jpg" /></author><thr:total>0</thr:total><content type="html">
I was working on installing Cygwin on a base Windows 7 image that will be used by a significant number of developers.
As much as I like Cygwin, following the same experience I previously documented in Fixing Cygwin's user groups, sometimes things just don't work as smoothly as one would hope.



First, even though this will be a "install once" situation that will be copied as part of the image, 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/exmrWQuO64ikI9WrAa5OtV72UcU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/exmrWQuO64ikI9WrAa5OtV72UcU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/exmrWQuO64ikI9WrAa5OtV72UcU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/exmrWQuO64ikI9WrAa5OtV72UcU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ziesemer/~4/3pN-xxlBsGE" height="1" width="1"/&gt;</content><feedburner:origLink>http://blogger.ziesemer.com/2012/02/cygwin-multi-user-installation.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEAGSX05eCp7ImA9WhRTEE8.&quot;"><id>tag:blogger.com,1999:blog-4222197394079314848.post-1320977866022108476</id><published>2011-10-30T21:03:00.001-05:00</published><updated>2011-10-30T21:05:28.320-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-30T21:05:28.320-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SysAdmin" /><category scheme="http://www.blogger.com/atom/ns#" term="Linux" /><category scheme="http://www.blogger.com/atom/ns#" term="technical" /><category scheme="http://www.blogger.com/atom/ns#" term="will need again" /><title>Ubuntu Linux 11.10 Install Notes</title><link rel="replies" type="application/atom+xml" href="http://blogger.ziesemer.com/feeds/1320977866022108476/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4222197394079314848&amp;postID=1320977866022108476" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4222197394079314848/posts/default/1320977866022108476?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4222197394079314848/posts/default/1320977866022108476?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ziesemer/~3/c_v6VCkI6nE/ubuntu-linux-1110-install-notes.html" title="Ubuntu Linux 11.10 Install Notes" /><author><name>Mark A. Ziesemer</name><uri>http://www.blogger.com/profile/12752422620777325409</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="21" height="32" src="http://2.bp.blogspot.com/_aV4l4vyh5uQ/S31T85WfmMI/AAAAAAAAA9U/nRo4aI0okiQ/S220/Facebook+Me.jpg" /></author><thr:total>0</thr:total><content type="html">
This past week, I finally got around to installing the latest version of Ubuntu Linux on my home server - 11.10, "Oneiric Ocelot" (released 2011-10-13).
There shouldn't be anything too significant here - these are mainly notes for myself, but posted here in case something is useful to others.
I always do a full, clean re-installation - so several of the notes listed here won't be of concern for 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/htcWYbe8nAkuJdp21N6ZFgzfaec/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/htcWYbe8nAkuJdp21N6ZFgzfaec/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/htcWYbe8nAkuJdp21N6ZFgzfaec/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/htcWYbe8nAkuJdp21N6ZFgzfaec/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ziesemer/~4/c_v6VCkI6nE" height="1" width="1"/&gt;</content><feedburner:origLink>http://blogger.ziesemer.com/2011/10/ubuntu-linux-1110-install-notes.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0QDRnc5cCp7ImA9WhdUFUw.&quot;"><id>tag:blogger.com,1999:blog-4222197394079314848.post-8052950183672815185</id><published>2011-10-01T16:19:00.002-05:00</published><updated>2011-10-01T18:22:57.928-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-01T18:22:57.928-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Microsoft Windows" /><category scheme="http://www.blogger.com/atom/ns#" term="SysAdmin" /><category scheme="http://www.blogger.com/atom/ns#" term="technical" /><title>Fixing UPnP/DLNA sharing on 2nd drive under Windows 7</title><link rel="replies" type="application/atom+xml" href="http://blogger.ziesemer.com/feeds/8052950183672815185/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4222197394079314848&amp;postID=8052950183672815185" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4222197394079314848/posts/default/8052950183672815185?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4222197394079314848/posts/default/8052950183672815185?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ziesemer/~3/qp_dG4aLmgM/fixing-upnp-dlna-sharing-drive-windows.html" title="Fixing UPnP/DLNA sharing on 2nd drive under Windows 7" /><author><name>Mark A. Ziesemer</name><uri>http://www.blogger.com/profile/12752422620777325409</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="21" height="32" src="http://2.bp.blogspot.com/_aV4l4vyh5uQ/S31T85WfmMI/AAAAAAAAA9U/nRo4aI0okiQ/S220/Facebook+Me.jpg" /></author><thr:total>0</thr:total><content type="html">Background


Though I may be a few years late to the party, I finally have a capable Home Theater PC (HTPC) and HDTV setup in my living room.
For simplicity for the entire family, it's running Windows 7's Media Center.



My favorite feature of a HTPC-solution is the digital video recorder (DVR) functionality - including the options to pause and replay live TV.
My family previously had a 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/jG-rG4bJrKl0P3vLrAG6AZJcSbw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jG-rG4bJrKl0P3vLrAG6AZJcSbw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/jG-rG4bJrKl0P3vLrAG6AZJcSbw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jG-rG4bJrKl0P3vLrAG6AZJcSbw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ziesemer/~4/qp_dG4aLmgM" height="1" width="1"/&gt;</content><feedburner:origLink>http://blogger.ziesemer.com/2011/10/fixing-upnp-dlna-sharing-drive-windows.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkYARnkyfip7ImA9WhdUFEQ.&quot;"><id>tag:blogger.com,1999:blog-4222197394079314848.post-1418845331632146825</id><published>2011-10-01T12:29:00.000-05:00</published><updated>2011-10-01T12:29:07.796-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-01T12:29:07.796-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Hewlett-Packard" /><category scheme="http://www.blogger.com/atom/ns#" term="SysAdmin" /><category scheme="http://www.blogger.com/atom/ns#" term="technical" /><category scheme="http://www.blogger.com/atom/ns#" term="will need again" /><category scheme="http://www.blogger.com/atom/ns#" term="hardware" /><title>HP LaserJet PCL Errors and Driver Availability</title><link rel="replies" type="application/atom+xml" href="http://blogger.ziesemer.com/feeds/1418845331632146825/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4222197394079314848&amp;postID=1418845331632146825" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4222197394079314848/posts/default/1418845331632146825?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4222197394079314848/posts/default/1418845331632146825?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ziesemer/~3/MUKrlkCltvc/hp-laserjet-pcl-errors-and-driver.html" title="HP LaserJet PCL Errors and Driver Availability" /><author><name>Mark A. Ziesemer</name><uri>http://www.blogger.com/profile/12752422620777325409</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="21" height="32" src="http://2.bp.blogspot.com/_aV4l4vyh5uQ/S31T85WfmMI/AAAAAAAAA9U/nRo4aI0okiQ/S220/Facebook+Me.jpg" /></author><thr:total>3</thr:total><content type="html">
My primary printer for the past 10 years has been a trusted Hewlett-Packard (HP) LaserJet 2200D, with an added network adapter making it the equivalent of a 2200DN.
12,600 pages later, it is still working like new (though recognizing in a shared office environment, this same print volume would probably be used within a fraction of a year.)



After recently completing a Windows 7 x64 reinstall, 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/tRH49CxRAmcVGVy4Y62ZEEqQwWI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/tRH49CxRAmcVGVy4Y62ZEEqQwWI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/tRH49CxRAmcVGVy4Y62ZEEqQwWI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/tRH49CxRAmcVGVy4Y62ZEEqQwWI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ziesemer/~4/MUKrlkCltvc" height="1" width="1"/&gt;</content><feedburner:origLink>http://blogger.ziesemer.com/2011/10/hp-laserjet-pcl-errors-and-driver.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEQMR3o4fyp7ImA9WhZQEU4.&quot;"><id>tag:blogger.com,1999:blog-4222197394079314848.post-2574065476132535021</id><published>2011-04-16T19:19:00.002-05:00</published><updated>2011-04-18T09:19:46.437-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-18T09:19:46.437-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="JavaScript" /><category scheme="http://www.blogger.com/atom/ns#" term="Java" /><category scheme="http://www.blogger.com/atom/ns#" term="Eclipse" /><category scheme="http://www.blogger.com/atom/ns#" term="technical" /><category scheme="http://www.blogger.com/atom/ns#" term="coding" /><title>Improving code and quality with Checkstyle</title><link rel="replies" type="application/atom+xml" href="http://blogger.ziesemer.com/feeds/2574065476132535021/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4222197394079314848&amp;postID=2574065476132535021" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4222197394079314848/posts/default/2574065476132535021?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4222197394079314848/posts/default/2574065476132535021?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ziesemer/~3/cEtCUeGEKzg/checkstyle.html" title="Improving code and quality with Checkstyle" /><author><name>Mark A. Ziesemer</name><uri>http://www.blogger.com/profile/12752422620777325409</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="21" height="32" src="http://2.bp.blogspot.com/_aV4l4vyh5uQ/S31T85WfmMI/AAAAAAAAA9U/nRo4aI0okiQ/S220/Facebook+Me.jpg" /></author><thr:total>0</thr:total><content type="html">
I've always been picky about the quality my code and the code that I work with.
For good reason.
It makes the code easier to read and work with.
Consistency makes the program flow easier to understand, bugs and other potential issues easier to spot, and difference comparisons between files and versions more effective.
Sun Microsystems (original designer of the Java platform, now part of Oracle) 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/7lB4pI6RHLtDExDB2GB80OVq8gE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7lB4pI6RHLtDExDB2GB80OVq8gE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/7lB4pI6RHLtDExDB2GB80OVq8gE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7lB4pI6RHLtDExDB2GB80OVq8gE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ziesemer/~4/cEtCUeGEKzg" height="1" width="1"/&gt;</content><feedburner:origLink>http://blogger.ziesemer.com/2011/04/checkstyle.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUYGQX84fSp7ImA9Wx9XEE8.&quot;"><id>tag:blogger.com,1999:blog-4222197394079314848.post-5839482259000631236</id><published>2011-01-02T21:54:00.002-06:00</published><updated>2011-01-02T21:58:40.135-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-01-02T21:58:40.135-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SysAdmin" /><category scheme="http://www.blogger.com/atom/ns#" term="reported bugs" /><category scheme="http://www.blogger.com/atom/ns#" term="LDAP" /><category scheme="http://www.blogger.com/atom/ns#" term="Linux" /><category scheme="http://www.blogger.com/atom/ns#" term="technical" /><category scheme="http://www.blogger.com/atom/ns#" term="security" /><title>LDAP authentication for Samba</title><link rel="replies" type="application/atom+xml" href="http://blogger.ziesemer.com/feeds/5839482259000631236/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4222197394079314848&amp;postID=5839482259000631236" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4222197394079314848/posts/default/5839482259000631236?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4222197394079314848/posts/default/5839482259000631236?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ziesemer/~3/O-NuyelquwU/ldap-authentication-for-samba.html" title="LDAP authentication for Samba" /><author><name>Mark A. Ziesemer</name><uri>http://www.blogger.com/profile/12752422620777325409</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="21" height="32" src="http://2.bp.blogspot.com/_aV4l4vyh5uQ/S31T85WfmMI/AAAAAAAAA9U/nRo4aI0okiQ/S220/Facebook+Me.jpg" /></author><thr:total>0</thr:total><content type="html">
As part of my OpenLDAP under Ubuntu Linux project, this post documents configuring Samba to use LDAP - as a storage back-end, as well as for authentication and authorization.
(Samba is a free software re-implemenation of the SMB networking protocol, and is useful for providing network file shares that are recognized by Microsoft Windows.)
As with my previous posts, this post was written against 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Mv-80t6xRw98F3nc0OJvplXyoE8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Mv-80t6xRw98F3nc0OJvplXyoE8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Mv-80t6xRw98F3nc0OJvplXyoE8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Mv-80t6xRw98F3nc0OJvplXyoE8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ziesemer/~4/O-NuyelquwU" height="1" width="1"/&gt;</content><feedburner:origLink>http://blogger.ziesemer.com/2011/01/ldap-authentication-for-samba.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUECQHY4eSp7ImA9Wx9QFko.&quot;"><id>tag:blogger.com,1999:blog-4222197394079314848.post-6119239967637777619</id><published>2010-12-29T20:23:00.004-06:00</published><updated>2010-12-29T20:54:21.831-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-12-29T20:54:21.831-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SysAdmin" /><category scheme="http://www.blogger.com/atom/ns#" term="reported bugs" /><category scheme="http://www.blogger.com/atom/ns#" term="LDAP" /><category scheme="http://www.blogger.com/atom/ns#" term="Linux" /><category scheme="http://www.blogger.com/atom/ns#" term="technical" /><category scheme="http://www.blogger.com/atom/ns#" term="security" /><title>Linux client authentication with LDAP, PAM, and NSS</title><link rel="replies" type="application/atom+xml" href="http://blogger.ziesemer.com/feeds/6119239967637777619/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4222197394079314848&amp;postID=6119239967637777619" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4222197394079314848/posts/default/6119239967637777619?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4222197394079314848/posts/default/6119239967637777619?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ziesemer/~3/57i5_sqEl10/linux-client-authentication-ldap-pam.html" title="Linux client authentication with LDAP, PAM, and NSS" /><author><name>Mark A. Ziesemer</name><uri>http://www.blogger.com/profile/12752422620777325409</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="21" height="32" src="http://2.bp.blogspot.com/_aV4l4vyh5uQ/S31T85WfmMI/AAAAAAAAA9U/nRo4aI0okiQ/S220/Facebook+Me.jpg" /></author><thr:total>0</thr:total><content type="html">
As part of my OpenLDAP under Ubuntu Linux project, this post documents configuring Linux client authentication and authorization through LDAP,
 using Pluggable Authentication Modules (PAM) and Name Service Switch (NSS).
As with my previous posts, this post was written against Ubuntu Linux's latest release, 10.10 ("Maverick Meerkat").



As Linux uses numeric IDs for users and groups (in separate
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/o2wO7MMv8HpnZRa1wJk4Ih_fqj4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/o2wO7MMv8HpnZRa1wJk4Ih_fqj4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/o2wO7MMv8HpnZRa1wJk4Ih_fqj4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/o2wO7MMv8HpnZRa1wJk4Ih_fqj4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ziesemer/~4/57i5_sqEl10" height="1" width="1"/&gt;</content><feedburner:origLink>http://blogger.ziesemer.com/2010/12/linux-client-authentication-ldap-pam.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkECQX45fip7ImA9Wx9QFkk.&quot;"><id>tag:blogger.com,1999:blog-4222197394079314848.post-2725805146613370728</id><published>2010-12-28T16:40:00.005-06:00</published><updated>2010-12-29T10:37:40.026-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-12-29T10:37:40.026-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SysAdmin" /><category scheme="http://www.blogger.com/atom/ns#" term="LDAP" /><category scheme="http://www.blogger.com/atom/ns#" term="Linux" /><category scheme="http://www.blogger.com/atom/ns#" term="technical" /><category scheme="http://www.blogger.com/atom/ns#" term="security" /><title>LDAP authentication for Apache HTTP Server</title><link rel="replies" type="application/atom+xml" href="http://blogger.ziesemer.com/feeds/2725805146613370728/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4222197394079314848&amp;postID=2725805146613370728" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4222197394079314848/posts/default/2725805146613370728?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4222197394079314848/posts/default/2725805146613370728?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ziesemer/~3/Km7XfNR_da8/ldap-authentication-apache-http-server.html" title="LDAP authentication for Apache HTTP Server" /><author><name>Mark A. Ziesemer</name><uri>http://www.blogger.com/profile/12752422620777325409</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="21" height="32" src="http://2.bp.blogspot.com/_aV4l4vyh5uQ/S31T85WfmMI/AAAAAAAAA9U/nRo4aI0okiQ/S220/Facebook+Me.jpg" /></author><thr:total>0</thr:total><content type="html">
As part of my OpenLDAP under Ubuntu Linux project, this post documents configuring the Apache HTTPD Server to use LDAP for authentication and authorization.
The Apache HTTPD Server will simply be referred to as "Apache" for the remainder of this post.
As with my previous post on phpLDAPadmin, this post was written against Apache 2.2.16, and Ubuntu Linux's latest release, 10.10 ("Maverick Meerkat
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/9pvjhYLTLyFOUxGRTlozsRrkXSg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/9pvjhYLTLyFOUxGRTlozsRrkXSg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/9pvjhYLTLyFOUxGRTlozsRrkXSg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/9pvjhYLTLyFOUxGRTlozsRrkXSg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ziesemer/~4/Km7XfNR_da8" height="1" width="1"/&gt;</content><feedburner:origLink>http://blogger.ziesemer.com/2010/12/ldap-authentication-apache-http-server.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUQEQX08fSp7ImA9Wx9QFUo.&quot;"><id>tag:blogger.com,1999:blog-4222197394079314848.post-272174535923106832</id><published>2010-12-27T20:23:00.005-06:00</published><updated>2010-12-28T17:01:40.375-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-12-28T17:01:40.375-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SysAdmin" /><category scheme="http://www.blogger.com/atom/ns#" term="reported bugs" /><category scheme="http://www.blogger.com/atom/ns#" term="LDAP" /><category scheme="http://www.blogger.com/atom/ns#" term="Linux" /><category scheme="http://www.blogger.com/atom/ns#" term="technical" /><category scheme="http://www.blogger.com/atom/ns#" term="security" /><title>LDAP web administration with phpLDAPadmin</title><link rel="replies" type="application/atom+xml" href="http://blogger.ziesemer.com/feeds/272174535923106832/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4222197394079314848&amp;postID=272174535923106832" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4222197394079314848/posts/default/272174535923106832?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4222197394079314848/posts/default/272174535923106832?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ziesemer/~3/D-sB_Wgu2jk/ldap-web-admin-phpldapadmin.html" title="LDAP web administration with phpLDAPadmin" /><author><name>Mark A. Ziesemer</name><uri>http://www.blogger.com/profile/12752422620777325409</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="21" height="32" src="http://2.bp.blogspot.com/_aV4l4vyh5uQ/S31T85WfmMI/AAAAAAAAA9U/nRo4aI0okiQ/S220/Facebook+Me.jpg" /></author><thr:total>2</thr:total><content type="html">
As part of my OpenLDAP under Ubuntu Linux project, I wanted to find a good web administration tool for the directory.
The best option I found was phpLDAPadmin (Wikipedia), a.k.a. PLA.



I meant to complete several other LDAP-related posts since I started this project in April, but other priorities took precedence.
However, a side benefit is that my previous configurations have now been 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/iw-db8VUXAAF__vD0Om6cw5DrLY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/iw-db8VUXAAF__vD0Om6cw5DrLY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/iw-db8VUXAAF__vD0Om6cw5DrLY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/iw-db8VUXAAF__vD0Om6cw5DrLY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ziesemer/~4/D-sB_Wgu2jk" height="1" width="1"/&gt;</content><feedburner:origLink>http://blogger.ziesemer.com/2010/12/ldap-web-admin-phpldapadmin.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0IERXo_fyp7ImA9WhRQEEU.&quot;"><id>tag:blogger.com,1999:blog-4222197394079314848.post-3612754994340329468</id><published>2010-09-06T17:55:00.004-05:00</published><updated>2011-12-05T06:51:44.447-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-05T06:51:44.447-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SysAdmin" /><category scheme="http://www.blogger.com/atom/ns#" term="frustrations" /><category scheme="http://www.blogger.com/atom/ns#" term="technical" /><category scheme="http://www.blogger.com/atom/ns#" term="Oracle" /><title>Oracle Database Server Install Frustrations</title><link rel="replies" type="application/atom+xml" href="http://blogger.ziesemer.com/feeds/3612754994340329468/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4222197394079314848&amp;postID=3612754994340329468" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4222197394079314848/posts/default/3612754994340329468?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4222197394079314848/posts/default/3612754994340329468?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ziesemer/~3/Vf7Qfm8_13Q/oracle-db-server-frustrations.html" title="Oracle Database Server Install Frustrations" /><author><name>Mark A. Ziesemer</name><uri>http://www.blogger.com/profile/12752422620777325409</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="21" height="32" src="http://2.bp.blogspot.com/_aV4l4vyh5uQ/S31T85WfmMI/AAAAAAAAA9U/nRo4aI0okiQ/S220/Facebook+Me.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.ggpht.com/_aV4l4vyh5uQ/TIUxJO5lXEI/AAAAAAAABFk/Ql_yaMgyZus/s72-c/DatabaseEdition.png" height="72" width="72" /><thr:total>0</thr:total><content type="html">
After once again installing a local Oracle Database server instance for some local development, this post is mostly focused on some repeated frustrations that I felt are worth sharing.


Database Server


The first issue is the download.
2.06 GB for "Oracle Database 11g Release 2 (11.2.0.1.0) for Microsoft Windows (x64)".
This should be easily and significantly reducible, if a "core" package 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/IdpfRi17p5kpHHkm1fnODrP3dcQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/IdpfRi17p5kpHHkm1fnODrP3dcQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/IdpfRi17p5kpHHkm1fnODrP3dcQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/IdpfRi17p5kpHHkm1fnODrP3dcQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ziesemer/~4/Vf7Qfm8_13Q" height="1" width="1"/&gt;</content><feedburner:origLink>http://blogger.ziesemer.com/2010/09/oracle-db-server-frustrations.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU8DR3g5eip7ImA9Wx5QEU4.&quot;"><id>tag:blogger.com,1999:blog-4222197394079314848.post-3790347310704362847</id><published>2010-08-29T20:20:00.003-05:00</published><updated>2010-08-29T21:04:36.622-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-29T21:04:36.622-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="JavaScript" /><category scheme="http://www.blogger.com/atom/ns#" term="Yahoo UI Library" /><category scheme="http://www.blogger.com/atom/ns#" term="technical" /><category scheme="http://www.blogger.com/atom/ns#" term="coding" /><title>YUI "website top nav" Menu from JavaScript only</title><link rel="replies" type="application/atom+xml" href="http://blogger.ziesemer.com/feeds/3790347310704362847/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4222197394079314848&amp;postID=3790347310704362847" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4222197394079314848/posts/default/3790347310704362847?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4222197394079314848/posts/default/3790347310704362847?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ziesemer/~3/EsVkZvml0q8/yui-menu-javascript-only.html" title="YUI &quot;website top nav&quot; Menu from JavaScript only" /><author><name>Mark A. Ziesemer</name><uri>http://www.blogger.com/profile/12752422620777325409</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="21" height="32" src="http://2.bp.blogspot.com/_aV4l4vyh5uQ/S31T85WfmMI/AAAAAAAAA9U/nRo4aI0okiQ/S220/Facebook+Me.jpg" /></author><thr:total>0</thr:total><content type="html">
I recently had the opportunity to observe someone running into some difficulties trying to implement a YUI 2 Menu.
The menu items were to be retrieved from a database, and needed to be dynamically updatable through an AJAX call - so using JSON rather than HTML to build the menu made sense in this case.
According to YUI's menu page, "Menus can be created from simple, semantic markup on the page 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/e8STWJz1CSF_7lAMVHZ9QgDnR2I/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/e8STWJz1CSF_7lAMVHZ9QgDnR2I/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/e8STWJz1CSF_7lAMVHZ9QgDnR2I/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/e8STWJz1CSF_7lAMVHZ9QgDnR2I/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ziesemer/~4/EsVkZvml0q8" height="1" width="1"/&gt;</content><feedburner:origLink>http://blogger.ziesemer.com/2010/08/yui-menu-javascript-only.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0UMSHk7fSp7ImA9WxFbGUU.&quot;"><id>tag:blogger.com,1999:blog-4222197394079314848.post-6423277281019474136</id><published>2010-07-11T21:49:00.004-05:00</published><updated>2010-07-12T19:34:49.705-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-12T19:34:49.705-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="JavaScript" /><category scheme="http://www.blogger.com/atom/ns#" term="Yahoo UI Library" /><category scheme="http://www.blogger.com/atom/ns#" term="Blogger" /><category scheme="http://www.blogger.com/atom/ns#" term="technical" /><category scheme="http://www.blogger.com/atom/ns#" term="web browsing" /><category scheme="http://www.blogger.com/atom/ns#" term="coding" /><title>Updated Blogger Tools</title><link rel="replies" type="application/atom+xml" href="http://blogger.ziesemer.com/feeds/6423277281019474136/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4222197394079314848&amp;postID=6423277281019474136" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4222197394079314848/posts/default/6423277281019474136?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4222197394079314848/posts/default/6423277281019474136?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ziesemer/~3/U9Y7LwO46nU/updated-blogger-tools.html" title="Updated Blogger Tools" /><author><name>Mark A. Ziesemer</name><uri>http://www.blogger.com/profile/12752422620777325409</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="21" height="32" src="http://2.bp.blogspot.com/_aV4l4vyh5uQ/S31T85WfmMI/AAAAAAAAA9U/nRo4aI0okiQ/S220/Facebook+Me.jpg" /></author><thr:total>2</thr:total><content type="html">
I've updated the "Blog Archive" and "Labels" gadgets on this site - as visible in the right-hand margin of this page.
Please leave a comment with any issues or suggestions.



Over a year ago, I had already replaced Blogger's default Labels gadget with the Yahoo! UI Library (YUI)'s TreeView component, which provided:



A view that is collapsed by default, saving screen space for other features 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Uot-k-R2XLE_JfNz4OaHCHovLzc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Uot-k-R2XLE_JfNz4OaHCHovLzc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Uot-k-R2XLE_JfNz4OaHCHovLzc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Uot-k-R2XLE_JfNz4OaHCHovLzc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ziesemer/~4/U9Y7LwO46nU" height="1" width="1"/&gt;</content><feedburner:origLink>http://blogger.ziesemer.com/2010/07/updated-blogger-tools.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0QFQXkzcCp7ImA9WxFbF08.&quot;"><id>tag:blogger.com,1999:blog-4222197394079314848.post-1998859573686100023</id><published>2010-07-05T21:56:00.012-05:00</published><updated>2010-07-09T20:28:30.788-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-09T20:28:30.788-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="JavaScript" /><category scheme="http://www.blogger.com/atom/ns#" term="technical" /><category scheme="http://www.blogger.com/atom/ns#" term="coding" /><title>JavaScript conditional oversights and solutions</title><link rel="replies" type="application/atom+xml" href="http://blogger.ziesemer.com/feeds/1998859573686100023/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4222197394079314848&amp;postID=1998859573686100023" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4222197394079314848/posts/default/1998859573686100023?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4222197394079314848/posts/default/1998859573686100023?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ziesemer/~3/3t7hUeixoAg/javascript-conditional-oversights.html" title="JavaScript conditional oversights and solutions" /><author><name>Mark A. Ziesemer</name><uri>http://www.blogger.com/profile/12752422620777325409</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="21" height="32" src="http://2.bp.blogspot.com/_aV4l4vyh5uQ/S31T85WfmMI/AAAAAAAAA9U/nRo4aI0okiQ/S220/Facebook+Me.jpg" /></author><thr:total>1</thr:total><content type="html">
While this is nothing new or particularly noteworthy, I felt this post would be good to share after fixing a number of conditionals in various JavaScript code - as well as having received some interesting and surprising feedback after suggesting the same fixes to others.



The code in question looked something like this:



var x;
// …
if(x == ""){
  // …
}



While the exact validity of this 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/zXtuvi234fLx2l2vJkR3TnEWfnY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zXtuvi234fLx2l2vJkR3TnEWfnY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/zXtuvi234fLx2l2vJkR3TnEWfnY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zXtuvi234fLx2l2vJkR3TnEWfnY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ziesemer/~4/3t7hUeixoAg" height="1" width="1"/&gt;</content><feedburner:origLink>http://blogger.ziesemer.com/2010/07/javascript-conditional-oversights.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkAMQXo5eCp7ImA9WxFWGUk.&quot;"><id>tag:blogger.com,1999:blog-4222197394079314848.post-4275790263209849028</id><published>2010-06-07T17:13:00.003-05:00</published><updated>2010-06-07T17:13:00.420-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-06-07T17:13:00.420-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="reported bugs" /><category scheme="http://www.blogger.com/atom/ns#" term="Eclipse" /><title>Eclipse Web Tools Spell Check Broken</title><link rel="replies" type="application/atom+xml" href="http://blogger.ziesemer.com/feeds/4275790263209849028/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4222197394079314848&amp;postID=4275790263209849028" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4222197394079314848/posts/default/4275790263209849028?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4222197394079314848/posts/default/4275790263209849028?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ziesemer/~3/08JF65DOFfA/eclipse-web-tools-spell-check-broken.html" title="Eclipse Web Tools Spell Check Broken" /><author><name>Mark A. Ziesemer</name><uri>http://www.blogger.com/profile/12752422620777325409</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="21" height="32" src="http://2.bp.blogspot.com/_aV4l4vyh5uQ/S31T85WfmMI/AAAAAAAAA9U/nRo4aI0okiQ/S220/Facebook+Me.jpg" /></author><thr:total>0</thr:total><content type="html">
Just a quick warning to anyone looking to upgrade to the upcoming release of Eclipse 3.6 / "Helios" and uses the HTML Editor or Web Page Editor.
As of all the release candidates, including RC4 of Classic with the WTP editors installed and RC3 of the JEE / "Eclipse IDE for Java EE Developers" package, spell check is broken.
Quite simply, HTML content is no longer being checked for misspellings.

&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/o7r6nn0iwkPHOCD3mAzMsYIfKxg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/o7r6nn0iwkPHOCD3mAzMsYIfKxg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/o7r6nn0iwkPHOCD3mAzMsYIfKxg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/o7r6nn0iwkPHOCD3mAzMsYIfKxg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ziesemer/~4/08JF65DOFfA" height="1" width="1"/&gt;</content><feedburner:origLink>http://blogger.ziesemer.com/2010/06/eclipse-web-tools-spell-check-broken.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEAAQX07cCp7ImA9WxFVEEs.&quot;"><id>tag:blogger.com,1999:blog-4222197394079314848.post-2657372506039179636</id><published>2010-06-06T23:50:00.005-05:00</published><updated>2010-06-09T00:52:20.308-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-06-09T00:52:20.308-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SysAdmin" /><category scheme="http://www.blogger.com/atom/ns#" term="LDAP" /><category scheme="http://www.blogger.com/atom/ns#" term="Linux" /><category scheme="http://www.blogger.com/atom/ns#" term="technical" /><category scheme="http://www.blogger.com/atom/ns#" term="security" /><title>OpenLDAP Password Permissions Configuration Example</title><link rel="replies" type="application/atom+xml" href="http://blogger.ziesemer.com/feeds/2657372506039179636/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4222197394079314848&amp;postID=2657372506039179636" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4222197394079314848/posts/default/2657372506039179636?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4222197394079314848/posts/default/2657372506039179636?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ziesemer/~3/kQJLXH2gyJE/openldap-password-permissions-config.html" title="OpenLDAP Password Permissions Configuration Example" /><author><name>Mark A. Ziesemer</name><uri>http://www.blogger.com/profile/12752422620777325409</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="21" height="32" src="http://2.bp.blogspot.com/_aV4l4vyh5uQ/S31T85WfmMI/AAAAAAAAA9U/nRo4aI0okiQ/S220/Facebook+Me.jpg" /></author><thr:total>2</thr:total><content type="html">
Following my post on OpenLDAP under Ubuntu Linux Lucid Lynx 10.04, I'd like to address a question submitted as a comment submitted by "raerek":




I plan to set up things like this:
-Group A: members can change the password of anyone, except the password of other Group A members.
-Group B: members can change their own passwords, and the passwords of Group C members.
-Group C: members can only 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/dl23Zayqijtzu_rwGsxKxmDKRT0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/dl23Zayqijtzu_rwGsxKxmDKRT0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/dl23Zayqijtzu_rwGsxKxmDKRT0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/dl23Zayqijtzu_rwGsxKxmDKRT0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ziesemer/~4/kQJLXH2gyJE" height="1" width="1"/&gt;</content><feedburner:origLink>http://blogger.ziesemer.com/2010/06/openldap-password-permissions-config.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE4ER3k6fSp7ImA9Wx9XEE8.&quot;"><id>tag:blogger.com,1999:blog-4222197394079314848.post-3716451791133854026</id><published>2010-05-09T22:55:00.017-05:00</published><updated>2011-01-02T21:55:06.715-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-01-02T21:55:06.715-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SysAdmin" /><category scheme="http://www.blogger.com/atom/ns#" term="reported bugs" /><category scheme="http://www.blogger.com/atom/ns#" term="LDAP" /><category scheme="http://www.blogger.com/atom/ns#" term="Linux" /><category scheme="http://www.blogger.com/atom/ns#" term="technical" /><category scheme="http://www.blogger.com/atom/ns#" term="security" /><title>OpenLDAP under Ubuntu Linux Lucid Lynx 10.04</title><link rel="replies" type="application/atom+xml" href="http://blogger.ziesemer.com/feeds/3716451791133854026/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4222197394079314848&amp;postID=3716451791133854026" title="6 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4222197394079314848/posts/default/3716451791133854026?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4222197394079314848/posts/default/3716451791133854026?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ziesemer/~3/a1YPGR15Q6Q/openldap-ubuntu-linux.html" title="OpenLDAP under Ubuntu Linux Lucid Lynx 10.04" /><author><name>Mark A. Ziesemer</name><uri>http://www.blogger.com/profile/12752422620777325409</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="21" height="32" src="http://2.bp.blogspot.com/_aV4l4vyh5uQ/S31T85WfmMI/AAAAAAAAA9U/nRo4aI0okiQ/S220/Facebook+Me.jpg" /></author><thr:total>6</thr:total><content type="html">Introduction


Somewhat as a follow-up to my Ubuntu Linux router upgrade project over a year and a half ago, I've worked on extending my home setup to include a complete LDAP solution.



My router upgrade project was completed under the latest version of Ubuntu Linux at the time, 8.04 ("Hardy Heron"), which also happened to be a Long Term Support (LTS) release.
That guide has held up very well 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/bUBLH9d33etJ5D5_bX0phX7ky44/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/bUBLH9d33etJ5D5_bX0phX7ky44/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/bUBLH9d33etJ5D5_bX0phX7ky44/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/bUBLH9d33etJ5D5_bX0phX7ky44/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ziesemer/~4/a1YPGR15Q6Q" height="1" width="1"/&gt;</content><feedburner:origLink>http://blogger.ziesemer.com/2010/05/openldap-ubuntu-linux.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0AMSH4_cCp7ImA9WxFTF00.&quot;"><id>tag:blogger.com,1999:blog-4222197394079314848.post-8540654951814407754</id><published>2010-04-07T23:42:00.001-05:00</published><updated>2010-04-08T00:49:49.048-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-08T00:49:49.048-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="performance" /><category scheme="http://www.blogger.com/atom/ns#" term="reported bugs" /><category scheme="http://www.blogger.com/atom/ns#" term="Java" /><category scheme="http://www.blogger.com/atom/ns#" term="technical" /><category scheme="http://www.blogger.com/atom/ns#" term="security" /><category scheme="http://www.blogger.com/atom/ns#" term="JMX" /><category scheme="http://www.blogger.com/atom/ns#" term="coding" /><title>MarkUtils-JMX</title><link rel="replies" type="application/atom+xml" href="http://blogger.ziesemer.com/feeds/8540654951814407754/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4222197394079314848&amp;postID=8540654951814407754" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4222197394079314848/posts/default/8540654951814407754?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4222197394079314848/posts/default/8540654951814407754?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ziesemer/~3/o9AUMClGBBE/markutils-jmx.html" title="MarkUtils-JMX" /><author><name>Mark A. Ziesemer</name><uri>http://www.blogger.com/profile/12752422620777325409</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="21" height="32" src="http://2.bp.blogspot.com/_aV4l4vyh5uQ/S31T85WfmMI/AAAAAAAAA9U/nRo4aI0okiQ/S220/Facebook+Me.jpg" /></author><thr:total>0</thr:total><content type="html">
Following my recent post on JMX Secure Connections / Avoiding Java System Properties, I am making another addition to MarkUtils: MarkUtils-JMX.


JMX Management Bean Metadata


My primary inspiration for this library was that JMX provides a generous amount of metadata along with each management bean, attribute, operation, and parameter - including names, descriptions, and impacts
 (INFO, 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/D2Wh3sfqry-d_29BQqkzSz3btao/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/D2Wh3sfqry-d_29BQqkzSz3btao/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/D2Wh3sfqry-d_29BQqkzSz3btao/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/D2Wh3sfqry-d_29BQqkzSz3btao/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ziesemer/~4/o9AUMClGBBE" height="1" width="1"/&gt;</content><feedburner:origLink>http://blogger.ziesemer.com/2010/04/markutils-jmx.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkUFQH08fSp7ImA9WxBaEEg.&quot;"><id>tag:blogger.com,1999:blog-4222197394079314848.post-1893467274656908940</id><published>2010-03-08T21:29:00.014-06:00</published><updated>2010-03-19T20:56:51.375-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-03-19T20:56:51.375-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="performance" /><category scheme="http://www.blogger.com/atom/ns#" term="technical" /><category scheme="http://www.blogger.com/atom/ns#" term="web browsing" /><category scheme="http://www.blogger.com/atom/ns#" term="IPv6" /><category scheme="http://www.blogger.com/atom/ns#" term="Google" /><category scheme="http://www.blogger.com/atom/ns#" term="networking" /><category scheme="http://www.blogger.com/atom/ns#" term="Appleton-WI" /><title>Thoughts on Google Fiber for Appleton / ISPs</title><link rel="replies" type="application/atom+xml" href="http://blogger.ziesemer.com/feeds/1893467274656908940/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4222197394079314848&amp;postID=1893467274656908940" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4222197394079314848/posts/default/1893467274656908940?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4222197394079314848/posts/default/1893467274656908940?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ziesemer/~3/wT_BLMQhbsQ/thoughts-on-google-fiber-for-appleton.html" title="Thoughts on Google Fiber for Appleton / ISPs" /><author><name>Mark A. Ziesemer</name><uri>http://www.blogger.com/profile/12752422620777325409</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="21" height="32" src="http://2.bp.blogspot.com/_aV4l4vyh5uQ/S31T85WfmMI/AAAAAAAAA9U/nRo4aI0okiQ/S220/Facebook+Me.jpg" /></author><thr:total>1</thr:total><content type="html">
Tonight I attended a public hearing at Appleton City Hall (PDF) regarding the city's consideration to submit a response to Google's request for information on the Google Fiber for Communities experiment.  (Don't miss Google's project overview and other linked pages.)  Also, please join the Google Fiber for Appleton Facebook group.



I was pleasantly surprised to see this public hearing bring 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/DVQzImRL6IqZG_6PH5087jiHwjw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/DVQzImRL6IqZG_6PH5087jiHwjw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/DVQzImRL6IqZG_6PH5087jiHwjw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/DVQzImRL6IqZG_6PH5087jiHwjw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ziesemer/~4/wT_BLMQhbsQ" height="1" width="1"/&gt;</content><feedburner:origLink>http://blogger.ziesemer.com/2010/03/thoughts-on-google-fiber-for-appleton.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0YBQH09cSp7ImA9WxFaFEU.&quot;"><id>tag:blogger.com,1999:blog-4222197394079314848.post-3574425207560438508</id><published>2010-03-08T18:58:00.009-06:00</published><updated>2010-07-18T14:25:51.369-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-18T14:25:51.369-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SysAdmin" /><category scheme="http://www.blogger.com/atom/ns#" term="free tools" /><category scheme="http://www.blogger.com/atom/ns#" term="technical" /><category scheme="http://www.blogger.com/atom/ns#" term="web browsing" /><category scheme="http://www.blogger.com/atom/ns#" term="IPv6" /><category scheme="http://www.blogger.com/atom/ns#" term="networking" /><title>The Need for IPv6</title><link rel="replies" type="application/atom+xml" href="http://blogger.ziesemer.com/feeds/3574425207560438508/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4222197394079314848&amp;postID=3574425207560438508" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4222197394079314848/posts/default/3574425207560438508?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4222197394079314848/posts/default/3574425207560438508?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ziesemer/~3/D945KYx2taY/need-for-ipv6.html" title="The Need for IPv6" /><author><name>Mark A. Ziesemer</name><uri>http://www.blogger.com/profile/12752422620777325409</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="21" height="32" src="http://2.bp.blogspot.com/_aV4l4vyh5uQ/S31T85WfmMI/AAAAAAAAA9U/nRo4aI0okiQ/S220/Facebook+Me.jpg" /></author><thr:total>2</thr:total><content type="html">
Almost a year ago, I brought IPv6 connectivity to my home network / LAN.


Background






Similar to the past Y2K issue, the Internet is facing a similar issue that just hasn't been publicized too much in the mainstream media yet: Exhaustion of the IPv4 addresses currently being used.
I found a very interesting and detailed IPv4 Address Report by Geoff Huston that is auto-generated daily.

&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/JdjAYM-UN8xP2YKdVmEX9VB6OcU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/JdjAYM-UN8xP2YKdVmEX9VB6OcU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/JdjAYM-UN8xP2YKdVmEX9VB6OcU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/JdjAYM-UN8xP2YKdVmEX9VB6OcU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ziesemer/~4/D945KYx2taY" height="1" width="1"/&gt;</content><feedburner:origLink>http://blogger.ziesemer.com/2010/03/need-for-ipv6.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0QMRXY7fyp7ImA9WxFbF08.&quot;"><id>tag:blogger.com,1999:blog-4222197394079314848.post-662905527762881708</id><published>2010-02-20T23:30:00.012-06:00</published><updated>2010-07-09T20:29:44.807-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-09T20:29:44.807-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Java" /><category scheme="http://www.blogger.com/atom/ns#" term="technical" /><category scheme="http://www.blogger.com/atom/ns#" term="security" /><category scheme="http://www.blogger.com/atom/ns#" term="JMX" /><category scheme="http://www.blogger.com/atom/ns#" term="networking" /><category scheme="http://www.blogger.com/atom/ns#" term="coding" /><title>JMX Secure Connections /  Avoiding Java System Properties, RMI</title><link rel="replies" type="application/atom+xml" href="http://blogger.ziesemer.com/feeds/662905527762881708/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4222197394079314848&amp;postID=662905527762881708" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4222197394079314848/posts/default/662905527762881708?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4222197394079314848/posts/default/662905527762881708?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ziesemer/~3/H2gs2KyMbDA/jmx-avoid-java-system-properties-rmi.html" title="JMX Secure Connections /  Avoiding Java System Properties, RMI" /><author><name>Mark A. Ziesemer</name><uri>http://www.blogger.com/profile/12752422620777325409</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="21" height="32" src="http://2.bp.blogspot.com/_aV4l4vyh5uQ/S31T85WfmMI/AAAAAAAAA9U/nRo4aI0okiQ/S220/Facebook+Me.jpg" /></author><thr:total>1</thr:total><content type="html">
I spent much of my weekend working on adding support for Java Management Extensions (JMX) into a large enterprise application.
Security was appropriately a primary concern, and I needed to ensure that all connections were properly encrypted.
The most significant observation I've made during this work is that Java system properties are often overly depended upon / misused.
Dependencies within RMI
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/EWlMGfD9dsbA_uULjGUIkbHOZ3M/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/EWlMGfD9dsbA_uULjGUIkbHOZ3M/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/EWlMGfD9dsbA_uULjGUIkbHOZ3M/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/EWlMGfD9dsbA_uULjGUIkbHOZ3M/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ziesemer/~4/H2gs2KyMbDA" height="1" width="1"/&gt;</content><feedburner:origLink>http://blogger.ziesemer.com/2010/02/jmx-avoid-java-system-properties-rmi.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEQGQHc5eSp7ImA9WhdSEEk.&quot;"><id>tag:blogger.com,1999:blog-4222197394079314848.post-2789947776172379118</id><published>2010-02-17T23:10:00.005-06:00</published><updated>2011-07-18T21:25:21.921-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-18T21:25:21.921-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="performance" /><category scheme="http://www.blogger.com/atom/ns#" term="Java" /><category scheme="http://www.blogger.com/atom/ns#" term="technical" /><category scheme="http://www.blogger.com/atom/ns#" term="MarkUtils" /><category scheme="http://www.blogger.com/atom/ns#" term="coding" /><title>MarkUtils-IO: Performant Java Streams, Readers, and Writers</title><link rel="replies" type="application/atom+xml" href="http://blogger.ziesemer.com/feeds/2789947776172379118/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4222197394079314848&amp;postID=2789947776172379118" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4222197394079314848/posts/default/2789947776172379118?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4222197394079314848/posts/default/2789947776172379118?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ziesemer/~3/WwAsqgqTd94/markutils-io-performant-java-streams.html" title="MarkUtils-IO: Performant Java Streams, Readers, and Writers" /><author><name>Mark A. Ziesemer</name><uri>http://www.blogger.com/profile/12752422620777325409</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="21" height="32" src="http://2.bp.blogspot.com/_aV4l4vyh5uQ/S31T85WfmMI/AAAAAAAAA9U/nRo4aI0okiQ/S220/Facebook+Me.jpg" /></author><thr:total>0</thr:total><content type="html">
MarkUtils-IO is another high-performance addition to MarkUtils,
and is a collection of utility classes that I've found myself frequently reusing over the past number of years.




AppendableWriter:
A faster alternative to StringWriter.
Uses a non-synchronized StringBuilder by default instead of the synchronized StringBuffer, but also accepts any Appendable as the underlying destination.




&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/3cmDAS20oeWsimLKkmL9w6_TPzs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/3cmDAS20oeWsimLKkmL9w6_TPzs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/3cmDAS20oeWsimLKkmL9w6_TPzs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/3cmDAS20oeWsimLKkmL9w6_TPzs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ziesemer/~4/WwAsqgqTd94" height="1" width="1"/&gt;</content><feedburner:origLink>http://blogger.ziesemer.com/2010/02/markutils-io-performant-java-streams.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkUNQXY9fSp7ImA9WhRQEUQ.&quot;"><id>tag:blogger.com,1999:blog-4222197394079314848.post-199728732581355994</id><published>2010-01-30T22:32:00.007-06:00</published><updated>2011-12-06T13:04:50.865-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-06T13:04:50.865-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SysAdmin" /><category scheme="http://www.blogger.com/atom/ns#" term="Linux" /><category scheme="http://www.blogger.com/atom/ns#" term="technical" /><category scheme="http://www.blogger.com/atom/ns#" term="networking" /><category scheme="http://www.blogger.com/atom/ns#" term="coding" /><title>DynDNS Update Client Shell Script</title><link rel="replies" type="application/atom+xml" href="http://blogger.ziesemer.com/feeds/199728732581355994/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4222197394079314848&amp;postID=199728732581355994" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4222197394079314848/posts/default/199728732581355994?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4222197394079314848/posts/default/199728732581355994?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ziesemer/~3/GKRSj8MQFVs/dyndns-update-client-shell-script.html" title="DynDNS Update Client Shell Script" /><author><name>Mark A. Ziesemer</name><uri>http://www.blogger.com/profile/12752422620777325409</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="21" height="32" src="http://2.bp.blogspot.com/_aV4l4vyh5uQ/S31T85WfmMI/AAAAAAAAA9U/nRo4aI0okiQ/S220/Facebook+Me.jpg" /></author><thr:total>2</thr:total><content type="html">
I'm sharing the shell script I wrote and have been using for the past number of months to update my Dynamic DNS account on DynDNS.com with my dynamic IP address on my DSL connection, and previously with Alltel / Verizon Wireless.



There are many other update clients available.
However, I had specific issues with every other one I tried, and this one meets my needs perfectly.
Additionally, I 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/uZFEXcEdsm8tu0BOktHeU-5feAs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/uZFEXcEdsm8tu0BOktHeU-5feAs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/uZFEXcEdsm8tu0BOktHeU-5feAs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/uZFEXcEdsm8tu0BOktHeU-5feAs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ziesemer/~4/GKRSj8MQFVs" height="1" width="1"/&gt;</content><feedburner:origLink>http://blogger.ziesemer.com/2010/01/dyndns-update-client-shell-script.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkIBRXg5fSp7ImA9WxFTEEs.&quot;"><id>tag:blogger.com,1999:blog-4222197394079314848.post-1224847558043704823</id><published>2010-01-28T23:34:00.013-06:00</published><updated>2010-03-31T14:42:34.625-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-03-31T14:42:34.625-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="performance" /><category scheme="http://www.blogger.com/atom/ns#" term="reported bugs" /><category scheme="http://www.blogger.com/atom/ns#" term="Java" /><category scheme="http://www.blogger.com/atom/ns#" term="technical" /><category scheme="http://www.blogger.com/atom/ns#" term="coding" /><title>Redundant argument validation code in Java IO classes</title><link rel="replies" type="application/atom+xml" href="http://blogger.ziesemer.com/feeds/1224847558043704823/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4222197394079314848&amp;postID=1224847558043704823" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4222197394079314848/posts/default/1224847558043704823?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4222197394079314848/posts/default/1224847558043704823?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ziesemer/~3/srV87OGe0KU/redundant-code-in-java-io-classes.html" title="Redundant argument validation code in Java IO classes" /><author><name>Mark A. Ziesemer</name><uri>http://www.blogger.com/profile/12752422620777325409</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="21" height="32" src="http://2.bp.blogspot.com/_aV4l4vyh5uQ/S31T85WfmMI/AAAAAAAAA9U/nRo4aI0okiQ/S220/Facebook+Me.jpg" /></author><thr:total>1</thr:total><content type="html">
Today I noticed some almost comical redundant checks in a number of the
java.io
InputStream,
OutputStream,
Reader,
and Writer classes.
I'm looking at the read and write methods with a signature of ([] x, int off, int len),
where "[] x" is either a byte or char array, and "x" is named "b" for a byte array, or "c" or "cbuf" for a char array.
One example is InputStream.read(byte[], int, int).




&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/clqgV5LvGnvZ1yjlPYT3oTLUE98/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/clqgV5LvGnvZ1yjlPYT3oTLUE98/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/clqgV5LvGnvZ1yjlPYT3oTLUE98/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/clqgV5LvGnvZ1yjlPYT3oTLUE98/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ziesemer/~4/srV87OGe0KU" height="1" width="1"/&gt;</content><feedburner:origLink>http://blogger.ziesemer.com/2010/01/redundant-code-in-java-io-classes.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEQAQXs8eSp7ImA9WhdSEEk.&quot;"><id>tag:blogger.com,1999:blog-4222197394079314848.post-3022432713216224044</id><published>2009-11-15T01:39:00.008-06:00</published><updated>2011-07-18T21:25:40.571-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-18T21:25:40.571-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Java" /><category scheme="http://www.blogger.com/atom/ns#" term="technical" /><category scheme="http://www.blogger.com/atom/ns#" term="MarkUtils" /><category scheme="http://www.blogger.com/atom/ns#" term="networking" /><category scheme="http://www.blogger.com/atom/ns#" term="coding" /><title>Capturing complete HTTP requests - Echo Server</title><link rel="replies" type="application/atom+xml" href="http://blogger.ziesemer.com/feeds/3022432713216224044/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4222197394079314848&amp;postID=3022432713216224044" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4222197394079314848/posts/default/3022432713216224044?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4222197394079314848/posts/default/3022432713216224044?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ziesemer/~3/W-jE4t5MYzo/capturing-complete-http-requests-echo.html" title="Capturing complete HTTP requests - Echo Server" /><author><name>Mark A. Ziesemer</name><uri>http://www.blogger.com/profile/12752422620777325409</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="21" height="32" src="http://2.bp.blogspot.com/_aV4l4vyh5uQ/S31T85WfmMI/AAAAAAAAA9U/nRo4aI0okiQ/S220/Facebook+Me.jpg" /></author><thr:total>3</thr:total><content type="html">Background


I recently had a need to capture and inspect a complete HTTP request in preparation for developing a new web service.
The main reason for this is that there were no real requirements for the requested service.
It wasn't clear which parameters would be sent in the request, or exactly how the parameters would be named.
It also wasn't clear how the parameters would be split between GET 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/5RCElTuH-2MLXlLsg-dO7aR_Ds4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/5RCElTuH-2MLXlLsg-dO7aR_Ds4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/5RCElTuH-2MLXlLsg-dO7aR_Ds4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/5RCElTuH-2MLXlLsg-dO7aR_Ds4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ziesemer/~4/W-jE4t5MYzo" height="1" width="1"/&gt;</content><feedburner:origLink>http://blogger.ziesemer.com/2009/11/capturing-complete-http-requests-echo.html</feedburner:origLink></entry></feed>

