<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1492374798042002505</id><updated>2011-10-01T05:41:09.311-06:00</updated><title type='text'>Michael's Software Thoughts &amp; Ramblings</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://mmartinsoftware.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1492374798042002505/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://mmartinsoftware.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Michael Martin</name><uri>http://www.blogger.com/profile/06287331995903071075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>33</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1492374798042002505.post-6659068739837306433</id><published>2010-04-16T17:05:00.007-06:00</published><updated>2010-04-16T17:45:36.316-06:00</updated><title type='text'>SWT Table Images And Transparency</title><content type='html'>I recently came across a Windows platform issue using images inside an SWT table.  A little research turned up &lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=50163"&gt;this long-standing open SWT bug&lt;/a&gt;.  &lt;br /&gt;&lt;br /&gt;The problem results when you change the background color of a row in a table.  I like to alternate colors on the rows in my tables, so I create a LabelProvide like this:&lt;br /&gt;&lt;br /&gt;&lt;pre style="border: 1px solid blue; overflow: auto;"&gt;&lt;br /&gt;private class PortfolioViewLabelProvider extends LabelProvider implements ITableLabelProvider, ITableColorProvider {&lt;br /&gt;&lt;br /&gt;    @Override&lt;br /&gt;    public Color getBackground(Object element, int columnIndex) {&lt;br /&gt;      return null;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public Image getColumnImage(Object obj, int index) {&lt;br /&gt;      Image retImage = null;&lt;br /&gt;      return retImage;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public String getColumnText(Object obj, int index) {&lt;br /&gt;      String retVal = "";&lt;br /&gt;      return retVal;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    @Override&lt;br /&gt;    public Color getForeground(Object element, int columnIndex) {&lt;br /&gt;      return null;&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Of course, you would actually want to return some real values in those methods.&lt;br /&gt;&lt;br /&gt;Using a JFace TableViewer allows the table to be decorated with the listener via the setLabelProvider method.&lt;br /&gt;&lt;br /&gt;Under Linux, SWT uses GTK native widgets for table. An example of one of my tables looks like this:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_AaEVZWmrjQg/S8jwrfUvsII/AAAAAAAAABM/kgF4DOXW1m0/s1600/image1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 397px; height: 175px;" src="http://3.bp.blogspot.com/_AaEVZWmrjQg/S8jwrfUvsII/AAAAAAAAABM/kgF4DOXW1m0/s400/image1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5460879178120278146" /&gt;&lt;/a&gt;&lt;br /&gt;Make sure your monitor is set up so you see each row is a different shade--the first row is a deep gray, and the second row is black.  &lt;br /&gt;&lt;br /&gt;The table looks fine and all of the images ( transparent png files ) are correctly displayed.  Now look at the same application on Windows 7.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_AaEVZWmrjQg/S8jy1Nl6-UI/AAAAAAAAABU/QrrYHF7bU3k/s1600/image2.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 367px; height: 159px;" src="http://1.bp.blogspot.com/_AaEVZWmrjQg/S8jy1Nl6-UI/AAAAAAAAABU/QrrYHF7bU3k/s400/image2.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5460881544182430018" /&gt;&lt;/a&gt;&lt;br /&gt;Notice the images have black backgrounds now which is the background of the table.  The transparency mask in the png is ignored--annoying and ugly.  Look closely at the circled area to see the problem.&lt;br /&gt;&lt;br /&gt;Luckily, with a little help from old posts in that bug and some trial and error, I came up with an easy fix that works for Windows and Linux.  Using the same label provider as above, we can get the row color during the SWT.EraseItem event and erase the area with the same color used for the row:&lt;br /&gt;&lt;br /&gt;&lt;pre style="border: 1px solid blue; overflow: auto;"&gt;&lt;br /&gt;  topPortfoliosViewer.getTable().addListener(SWT.EraseItem, new Listener() {&lt;br /&gt;      @Override&lt;br /&gt;      public void handleEvent(Event event) {&lt;br /&gt;        event.gc.setBackground(plp.getBackground(event.item.getData(), event.index));&lt;br /&gt;        event.gc.fillRectangle(event.getBounds());&lt;br /&gt;      }&lt;br /&gt;    });&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;And the result on Windows 7:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_AaEVZWmrjQg/S8j06FUH1yI/AAAAAAAAABc/OrQ_2D8JPHg/s1600/image3.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 367px; height: 162px;" src="http://2.bp.blogspot.com/_AaEVZWmrjQg/S8j06FUH1yI/AAAAAAAAABc/OrQ_2D8JPHg/s400/image3.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5460883826882893602" /&gt;&lt;/a&gt;&lt;br /&gt;The result is how I want it. The images blend in correctly.  I'm not sure what the real problem is here--is it Windows or Eclipse?  Either way, the fix works for me, and I can continue on with development.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1492374798042002505-6659068739837306433?l=mmartinsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmartinsoftware.blogspot.com/feeds/6659068739837306433/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1492374798042002505&amp;postID=6659068739837306433' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1492374798042002505/posts/default/6659068739837306433'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1492374798042002505/posts/default/6659068739837306433'/><link rel='alternate' type='text/html' href='http://mmartinsoftware.blogspot.com/2010/04/swt-table-images-and-transparency.html' title='SWT Table Images And Transparency'/><author><name>Michael Martin</name><uri>http://www.blogger.com/profile/06287331995903071075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_AaEVZWmrjQg/S8jwrfUvsII/AAAAAAAAABM/kgF4DOXW1m0/s72-c/image1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1492374798042002505.post-1521943853571422084</id><published>2010-04-16T16:09:00.005-06:00</published><updated>2010-04-16T17:00:49.520-06:00</updated><title type='text'>The Future Of OpenSolaris...Still Unwritten and Uncertain</title><content type='html'>I've been following the activities of the &lt;a href="http://planet.opensolaris.org/"&gt;OpenSolaris&lt;/a&gt; project for some time with interest.  With the acquisition of Sun by Oracle, it's future is still uncertain.  Since my last entry on the subject, I have only played with it a few times inside a virtual machine.  &lt;br /&gt;&lt;br /&gt;I remember back when I was in college and OS/2 Warp came out.  It was so cool and I was immediately converted.  Despite the coolness factor, the conversion was short lived.  I don't remember my reasoning for abandoning OS/2--maybe it was my introduction to Linux in a computer lab or the lack of OS/2's ability to satisfy my computer needs compared to Windows or Linux.  Whatever the reason, I can't help but recall that experience as I now look at and ponder the fate of OpenSolaris.  &lt;br /&gt;&lt;br /&gt;I don't think OpenSolaris has a large enough community outside of full-time, paid developers to support the operating system's advancement.  Sure, there are a few different distributions out there, but these deal primarily with packaging the kernel--not low-level kernel development.  As with OS/2 warp, a few cool technologies found in no other operating system (i.e. DTrace and ZFS ) will not be enough to grow the community and keep the system alive.  Without a large and fully open community, a code base the size of an operating system needs some major company-backed financing to grow.&lt;br /&gt;&lt;br /&gt;Only time will tell the true fate of OpenSolaris.  I think some years down the road I'll look back on my OpenSolaris experience and remember the brief experience with a smile and wonder what may have been.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1492374798042002505-1521943853571422084?l=mmartinsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmartinsoftware.blogspot.com/feeds/1521943853571422084/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1492374798042002505&amp;postID=1521943853571422084' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1492374798042002505/posts/default/1521943853571422084'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1492374798042002505/posts/default/1521943853571422084'/><link rel='alternate' type='text/html' href='http://mmartinsoftware.blogspot.com/2010/04/future-of-opensolarisstill-unwritten.html' title='The Future Of OpenSolaris...Still Unwritten and Uncertain'/><author><name>Michael Martin</name><uri>http://www.blogger.com/profile/06287331995903071075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1492374798042002505.post-2544962311108794824</id><published>2009-11-28T10:42:00.001-07:00</published><updated>2009-11-28T10:53:24.046-07:00</updated><title type='text'>GNOME Composting in OpenSolaris</title><content type='html'>If your graphics card supports it, OpenSolaris will turn on the 3D effects when you login.  It does this by enabling the &lt;a href="http://www.compiz-fusion.org/"&gt;compiz window manager&lt;/a&gt; which replaces the default GNOME window manager, metacity. &lt;br /&gt;&lt;br /&gt;I only recently discovered that metacity also supports composting.  It doesn't offer the feature list of compiz, but, it does provide nice drop shadows and task switcher.&lt;br /&gt;&lt;br /&gt;To use composting in metacity, set Visual Effect to None in the System/Preferences/Appearance dialog box.  Apply the changes and your desktop will be running metacity.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_AaEVZWmrjQg/SxFfAmLgx0I/AAAAAAAAAA0/uAW4G974kKw/s1600/Screenshot-Appearance+Preferences.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 246px;" src="http://2.bp.blogspot.com/_AaEVZWmrjQg/SxFfAmLgx0I/AAAAAAAAAA0/uAW4G974kKw/s320/Screenshot-Appearance+Preferences.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5409209091302147906" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Next, run this command to enable composting in metacity:&lt;br /&gt;&lt;br /&gt;&lt;pre style="padding:5px;border: 1px solid blue; overflow: auto;"&gt;gconftool-2 -s /apps/metacity/general/compositing_manager  -t bool  true&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;and you can run this command to turn it off:&lt;br /&gt;&lt;br /&gt;&lt;pre style="padding:5px; border: 1px solid blue; overflow: auto;"&gt;gconftool-2 -s /apps/metacity/general/compositing_manager  -t bool  false&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Here's a simple snapshot showing the shadows:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_AaEVZWmrjQg/SxFh3y3QrUI/AAAAAAAAAA8/4SUt_m4kDUc/s1600/metacity-composting-on.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 319px; height: 320px;" src="http://3.bp.blogspot.com/_AaEVZWmrjQg/SxFh3y3QrUI/AAAAAAAAAA8/4SUt_m4kDUc/s320/metacity-composting-on.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5409212238622928194" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If you really like tweaking your desktop, compiz works very well and provides lots of features.  If you're happy with drop shadows and a nice tab switcher, metacity+compositing will do the job nicely.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1492374798042002505-2544962311108794824?l=mmartinsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmartinsoftware.blogspot.com/feeds/2544962311108794824/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1492374798042002505&amp;postID=2544962311108794824' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1492374798042002505/posts/default/2544962311108794824'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1492374798042002505/posts/default/2544962311108794824'/><link rel='alternate' type='text/html' href='http://mmartinsoftware.blogspot.com/2009/11/gnome-composting-in-opensolaris.html' title='GNOME Composting in OpenSolaris'/><author><name>Michael Martin</name><uri>http://www.blogger.com/profile/06287331995903071075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_AaEVZWmrjQg/SxFfAmLgx0I/AAAAAAAAAA0/uAW4G974kKw/s72-c/Screenshot-Appearance+Preferences.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1492374798042002505.post-6820891882608705671</id><published>2009-10-11T20:43:00.002-06:00</published><updated>2009-10-11T21:34:43.572-06:00</updated><title type='text'>OpenSolaris Performance Issues Resolved</title><content type='html'>I've been playing with some soon-to-be-released operating systems--notably Open Suse 11.2 and OpenSolaris 2010.02.  I always really enjoy OpenSolaris when I run it in a virtual machine under Linux and I enjoy working on Solaris workstations at my employment.  I've tried OpenSolaris on and off over the past several months on my home computers.  When I've installed it directly onto a partition and run it directly on bare metal, I've noticed performance issues and I've gone back to Linux as the primary OS.&lt;br /&gt;&lt;br /&gt;In my latest endeavors of running OpenSolaris, I noticed that the disk io seemed to be the performance killing culprit.  Doing simple disk io tests under both Linux and OpenSolaris, Linux was just destroying the io numbers I was getting under OpenSolaris.  My test was a simple "dd if=/dev/zero of=test bs=4048 count=100000 conv=fsync"--nothing fancy, but enough to demonstrate an issue. Linux numbers were around 60 MB/s while OpenSolaris numbers were in the 15-20 MB/s.  No settings helped out the OpenSolaris numbers--dd block sizes, file system block sizes, zfs settings, etc.  Interestingly enough, on an older computer, the disk io was just fine under OpenSolaris, so why was it so slow on newer/faster computer?&lt;br /&gt;&lt;br /&gt;I was almost ready to give up and wipe the OpenSolaris partition once more, but I had one last area I had not tried.  I remembered the SATA settings that are within the bios settings of my Intel motherboard.  I changed the SATA mode from Legacy to AHCI.  Sure enough, my OpenSolaris hard drive speeds were now on par with Linux.  Inspection of the loaded modules showed that OpenSolaris had loaded the ahci driver.  Additional online research shows that one should set the mode to AHCI for OpenSolaris.&lt;br /&gt;&lt;br /&gt;I'm definitely happy with the results on all 4 home machines.  3 diverse desktop models and 1 laptop are running very smoothly.  I'll plan on detailing some lessons learned and tutorials in the near future.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1492374798042002505-6820891882608705671?l=mmartinsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmartinsoftware.blogspot.com/feeds/6820891882608705671/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1492374798042002505&amp;postID=6820891882608705671' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1492374798042002505/posts/default/6820891882608705671'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1492374798042002505/posts/default/6820891882608705671'/><link rel='alternate' type='text/html' href='http://mmartinsoftware.blogspot.com/2009/10/opensolaris-performance-issues-resolved.html' title='OpenSolaris Performance Issues Resolved'/><author><name>Michael Martin</name><uri>http://www.blogger.com/profile/06287331995903071075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1492374798042002505.post-4198475290341934109</id><published>2009-07-01T17:26:00.003-06:00</published><updated>2009-07-01T18:17:41.444-06:00</updated><title type='text'>OpenSolaris 2009.06 Progressing Quickly</title><content type='html'>Previously, I spoke of my &lt;a href="http://opensolaris.org/os/"&gt;OpenSolaris&lt;/a&gt; experiences.  Over the past week, I've been on vacation, and I decided to try the latest release out to see how it's moving along.  I installed version 2009.06 over my laptops Fedora installation.  Installation was once again very simple--just a few questions, and it was off installing.  I typically choose to use the entire drive as a single ZFS pool.  OpenSolaris does not support disk encryption out of the box like Fedora or other Linux distributions, but &lt;a href="http://www.opensolaris.org/os/project/zfs-crypto/"&gt;work is underway&lt;/a&gt; in this area.  &lt;br /&gt;&lt;br /&gt;After the initial install, I immediately upgraded to the development repositories to bring in the more more bleeding-edge stuff( Fedora is pretty bleeding edge too ).  An update and a reboot into the new boot environment, and I was up and running.  &lt;br /&gt;&lt;br /&gt;I discovered there are a few really nice new features and surprises in the latest builds.&lt;br /&gt;&lt;br /&gt;First off is the integration of the &lt;a href="http://www.opensolaris.org/os/project/opensound/"&gt;new sound system--Boomer&lt;/a&gt; for OpenSolaris.  This is now all integrated with the latest development builds.  Sound playback worked wonderfully on my Laptop.  In flash videos and playback in general under the previous sound system, sliding the volume control up and down caused serious pauses and stutter.  The new sound system works much more smoothly and I noticed no more pauses or stutters while changing the volume.  I have noticed that I get no headphone sound right now on my laptop, but overall, the new sound system is a nice improvement.&lt;br /&gt;&lt;br /&gt;The next thing I noticed was the brightness control finally works on my laptop.  The hotkeys don't work, but the Gnome brightness applet allows me to control the brightness.  This was a major drawback of previous builds, since the only solution seemed to be a Linux live cd boot to fix the brightness.&lt;br /&gt;&lt;br /&gt;Just a few days ago, I notice that &lt;a href="http://mmartinsoftware.blogspot.com/2009/02/opensolaris-wireless-disappoints.html"&gt;my other major gripe&lt;/a&gt; has been fixed too--drivers for my two home computers wireless cards are &lt;a href="http://www.opensolaris.org/os/community/laptop/wireless/rwd/"&gt;now available&lt;/a&gt;!  I'll be testing this out soon, since this means I have the option to put OpenSolaris on two home computers without hardware upgrades.&lt;br /&gt;&lt;br /&gt;As I've moved around to different Wifi points, the Network Manager has had no problems connecting up to the different access points automatically using WPA2 and WEP encryption.  I've had fewer issues with the automated OpenSolaris Network manager than the Fedora network manager.&lt;br /&gt;&lt;br /&gt;As far as usability, my laptop experience has been far more pleasant than previous versions of OpenSolaris.  With &lt;a href="http://eclipse.org/"&gt;Eclipse Galileo&lt;/a&gt; builds supporting OpenSolaris ( 32 bit ) as a first class citizen, my development IDE needs are met.&lt;br /&gt;&lt;br /&gt;Off the top of my head, there are three areas still lacking when comparing OpenSolaris to modern Linux distributions.  &lt;br /&gt;&lt;br /&gt;The first area is one I mentioned earlier--ZFS/filesystem encryption.  I prefer, and many companies now require laptops to have encrypted hard drives.  At the rate things are moving in the OpenSolaris development, I suspect this will no longer be an issue in the months to come.&lt;br /&gt;&lt;br /&gt;The second area lacking is multimedia support.  The issue here is a licensing issue where OpenSolaris can not ship with codecs to provide mp3 playback or encrypted dvd playback support.   Attempting to play such media pops up an information box allowing one to get the mp3 from &lt;a href="http://www.fluendo.com/"&gt;Fluendo&lt;/a&gt; for free or to pay for the suite of codecs ( I'm not even sure if this package will allow dvd playback).  An alternative solution is to download the latest &lt;a href="http://www.mplayerhq.hu"&gt;MPlayer&lt;/a&gt; source code and compile the code.  There were a few issues getting MPlayer to compile, but drop me a line if you need help.  Once MPlayer was compiled with Xv support, I was able to play back some dvd's though I did see an annoying video stutter happen every few seconds.  I suspect one should also be able to compile the gstreamer plugins that provide the proper mp3 and video codecs too, though I've not gotten to try that yet.&lt;br /&gt;&lt;br /&gt;The final area is performance.  Linux has made great strides in the last year in performance.  Boot time races between Ubuntu and Fedora have made a very noticeable difference for Linux users who run laptops or desktops and pay attention to the boot up time.  OpenSolaris is not quite there on startup time.  It still takes a bit longer to get to a login screen compared to Fedora 11 or Ubuntu 9.04, however, it's not terrible.  The first OpenSolaris bootup after install is a lot longer than subsequent boot times, so don't give up right away if startup times are important to you.  Shutdowns are fast enough to not be an issue for me.  The desktop is very responsive, though I do see some waits when say trying to open a new terminal while un-tarring a large file.  Linux has been tuned to provide a snappy desktop response in most distributions now, I suspect there are some kernel knobs in the OpenSolaris kernel or ZFS settings to help out here too.  For the most part though, I find OpenSolaris as responsive now as I find Linux, but I think Linux still has a slight out-of-the-box advantage here.&lt;br /&gt;&lt;br /&gt;OpenSolaris 2009.06+ is already much better that the 2008.11 version I tried earlier.  Six months has brought in new drivers and new functionality for the desktop.  As Oracle hopefully continues to support the effort, I think the future is holding a definite spot for OpenSolaris.  Give it a shot and try it out.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1492374798042002505-4198475290341934109?l=mmartinsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmartinsoftware.blogspot.com/feeds/4198475290341934109/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1492374798042002505&amp;postID=4198475290341934109' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1492374798042002505/posts/default/4198475290341934109'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1492374798042002505/posts/default/4198475290341934109'/><link rel='alternate' type='text/html' href='http://mmartinsoftware.blogspot.com/2009/07/opensolaris-200906-progressing-quickly.html' title='OpenSolaris 2009.06 Progressing Quickly'/><author><name>Michael Martin</name><uri>http://www.blogger.com/profile/06287331995903071075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1492374798042002505.post-7418932241083213378</id><published>2009-04-30T15:11:00.005-06:00</published><updated>2009-04-30T15:20:28.086-06:00</updated><title type='text'>Linux Kernel 2.6.30 Fixes Filesystem Latency Issues</title><content type='html'>After reading the post &lt;a href="http://www.h-online.com/open/Kernel-Log-What-s-coming-in-2-6-30-File-systems-New-and-revamped-file-systems--/news/113157"&gt;Kernel-Log-What-s-coming-in-2-6-30-File-systems-New-and-revamped-file-systems--/news/113157&lt;/a&gt;, I saw improvements were made to problems with the Linux kernel regarding slowness under heavy disk I/O.&lt;br /&gt;&lt;br /&gt;After running 2.6.30-rc3, my computer no longer grinds to a halt under large amounts of disk I/O.&lt;br /&gt;&lt;br /&gt;My only legitimate reason to abandon Linux for another OS ( BSD, Solaris ) has been resolved.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1492374798042002505-7418932241083213378?l=mmartinsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmartinsoftware.blogspot.com/feeds/7418932241083213378/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1492374798042002505&amp;postID=7418932241083213378' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1492374798042002505/posts/default/7418932241083213378'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1492374798042002505/posts/default/7418932241083213378'/><link rel='alternate' type='text/html' href='http://mmartinsoftware.blogspot.com/2009/04/linux-kernel-2630-fixes-filesystem.html' title='Linux Kernel 2.6.30 Fixes Filesystem Latency Issues'/><author><name>Michael Martin</name><uri>http://www.blogger.com/profile/06287331995903071075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1492374798042002505.post-2351056709873688811</id><published>2009-02-27T16:21:00.003-07:00</published><updated>2009-02-27T16:29:35.316-07:00</updated><title type='text'>Pixie Hollow Flash Problems With Linux Return</title><content type='html'>It seems the folks at Disney's Pixie Hollow site now force everyone to use the Flash 10 player to hit the site.  Since the combination of Flash 10 and Linux fail on this site ( see my earlier post &lt;a href="http://mmartinsoftware.blogspot.com/2009/01/flash-linux-and-pixiehollow.html"&gt;here&lt;/a&gt;, my kids are out of luck until this is resolved.   &lt;br /&gt;&lt;br /&gt;This is the only site I have ever seen that fails to be cross-platform/Flash compliant.  If I were real ambitious, I'd investigate it further.  But for now, telling my kids to play on another site works just fine.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1492374798042002505-2351056709873688811?l=mmartinsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmartinsoftware.blogspot.com/feeds/2351056709873688811/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1492374798042002505&amp;postID=2351056709873688811' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1492374798042002505/posts/default/2351056709873688811'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1492374798042002505/posts/default/2351056709873688811'/><link rel='alternate' type='text/html' href='http://mmartinsoftware.blogspot.com/2009/02/pixie-hollow-flash-problems-with-linux.html' title='Pixie Hollow Flash Problems With Linux Return'/><author><name>Michael Martin</name><uri>http://www.blogger.com/profile/06287331995903071075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1492374798042002505.post-3991033833158268693</id><published>2009-02-27T15:50:00.004-07:00</published><updated>2009-02-27T16:21:05.998-07:00</updated><title type='text'>OpenSolaris Wireless Disappoints</title><content type='html'>In yet another attempt to play with the latest OpenSolaris builds, I was sorely disappointed when I went to get the wireless card working. &lt;br /&gt;&lt;br /&gt;A desktop had been giving me hard freezes with the latest Debian install, so I threw on OpenSolaris to see if that would help.  Only after a complete install did I come to find out the Linksys WMP54G ( RT2561/RT61Chipset ) is not supported under OpenSolaris.  This is a few common card I've picked up at my local Best Buy.&lt;br /&gt;&lt;br /&gt;In one last attempt to fix the freezing system, I threw on Ubuntu.  Ubuntu is a little nicer about discovering and automatically installing proprietary drivers, so it put on the Nvidia drivers.  I noticed it was using a different version of the drivers.  &lt;br /&gt;&lt;br /&gt;A re-install of Debian Lenny with the legacy 173.14.xx Nvidia drivers and I have yet to have a freeze.&lt;br /&gt;&lt;br /&gt;Linux wins again.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1492374798042002505-3991033833158268693?l=mmartinsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmartinsoftware.blogspot.com/feeds/3991033833158268693/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1492374798042002505&amp;postID=3991033833158268693' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1492374798042002505/posts/default/3991033833158268693'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1492374798042002505/posts/default/3991033833158268693'/><link rel='alternate' type='text/html' href='http://mmartinsoftware.blogspot.com/2009/02/opensolaris-wireless-disappoints.html' title='OpenSolaris Wireless Disappoints'/><author><name>Michael Martin</name><uri>http://www.blogger.com/profile/06287331995903071075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1492374798042002505.post-2742781357984345863</id><published>2009-01-25T18:30:00.005-07:00</published><updated>2009-01-25T18:50:22.304-07:00</updated><title type='text'>The KDE 4 to GNOME Switch</title><content type='html'>I was happy to see the latest news that &lt;a href="http://www.computerworld.com/action/article.do?command=viewArticleBasic&amp;taxonomyName=Software&amp;articleId=9126619&amp;taxonomyId=18&amp;pageNumber=1"&gt;Linus switch to GNOME&lt;/a&gt;--a move I made and blogged about previously.  &lt;br /&gt;&lt;br /&gt;While testing out KDE4 and deciding on GNOME, I kept thinking, "...but if &lt;a href="http://mail.gnome.org/archives/usability/2005-December/msg00021.html"&gt;Linus prefers KDE&lt;/a&gt;, I must be missing something."  &lt;br /&gt;&lt;br /&gt;Anyway, the word on the street is that "KDE 4.2" is the "KDE 4" we've been waiting for.  I'll definitely give it a spin and see.  &lt;br /&gt;&lt;br /&gt;I think KDE 4 visually looks great--even when in non-compiz/non-accelerated mode--the widgets and desktop look good.  &lt;br /&gt;&lt;br /&gt;In order for GNOME and KDE to compete with modern OS's, they need to look and behave like other modern desktops.  The non-compiz GNOME desktop is starting to look dated to me, and I just don't trust a compiz-enabled GNOME desktop to be stable enough--based on my most recent Fedora 10 testing.  Sure you can run compiz and change out panels and add cool applets, but that's a lot of work especially for the non-techie desktop user.  Out-of-the-box, KDE 4 just looks modern, though it's been buggy and lacking in usability.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1492374798042002505-2742781357984345863?l=mmartinsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmartinsoftware.blogspot.com/feeds/2742781357984345863/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1492374798042002505&amp;postID=2742781357984345863' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1492374798042002505/posts/default/2742781357984345863'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1492374798042002505/posts/default/2742781357984345863'/><link rel='alternate' type='text/html' href='http://mmartinsoftware.blogspot.com/2009/01/kde-4-to-gnome-switch.html' title='The KDE 4 to GNOME Switch'/><author><name>Michael Martin</name><uri>http://www.blogger.com/profile/06287331995903071075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1492374798042002505.post-4211141246170950513</id><published>2009-01-25T18:00:00.002-07:00</published><updated>2009-01-25T18:28:58.730-07:00</updated><title type='text'>Flash, Linux, and PixieHollow</title><content type='html'>So I decided to try a little experiment and move some household computers over to Linux.  Going into it, I figured there wouldn't be too many problems.  The games played by my kids are, for the most part, online games developed in Flash.  With Flash 10 now readily available for Linux on 32 and 64 bit machines, Linux would be on par with Windows Flash functionality.&lt;br /&gt;&lt;br /&gt;With the computers now happily booting into Debian,  I had one of my children log in to test it out.  Wouldn't you know it, the latest online Flash-based game &lt;a href="http://pixiehollow.go.com/"&gt;Disney's Pixie Hollow&lt;/a&gt; failed to load.  Everything looks fine until you get a strange error message about it losing the login information.&lt;br /&gt;&lt;br /&gt;After trying several different combinations of Firefox and other browsers I found a solution.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Solution:&lt;/span&gt;Use a Flash 9 version of the Linux plugin--not the latest Flash 10 plugin.  From there, everything has worked fine.&lt;br /&gt;&lt;br /&gt;On a 64 bit Linux install, this means running a 32-bit version of Firefox with the Flash 9 plugin.  Running nspluginwrapper didn't work either, so I stuck with the 32 bit Firefox / Flash 9 combination.&lt;br /&gt;&lt;br /&gt;To date, all the online Flash games play great and are indistinguishable from their Window's counterparts on the outside.  Of course, I sleep better knowing what's driving the code.&lt;br /&gt;&lt;br /&gt;Locating older versions of Flash to download was little tricky, so &lt;a href="http://kb.adobe.com/selfservice/viewContent.do?externalId=tn_14266&amp;sliceId=2"&gt;here is the link&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;So far, no major complaints from the family on the migration.  I still have a Windows machine for iTunes and a few other Windows games floating around.  My goal will be to move that functionality to Wine or VirtualBox in the very near future.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1492374798042002505-4211141246170950513?l=mmartinsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmartinsoftware.blogspot.com/feeds/4211141246170950513/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1492374798042002505&amp;postID=4211141246170950513' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1492374798042002505/posts/default/4211141246170950513'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1492374798042002505/posts/default/4211141246170950513'/><link rel='alternate' type='text/html' href='http://mmartinsoftware.blogspot.com/2009/01/flash-linux-and-pixiehollow.html' title='Flash, Linux, and PixieHollow'/><author><name>Michael Martin</name><uri>http://www.blogger.com/profile/06287331995903071075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1492374798042002505.post-8855871252633116193</id><published>2009-01-07T19:11:00.003-07:00</published><updated>2009-01-14T22:26:00.882-07:00</updated><title type='text'>Linux 64 bit disk IO Performance</title><content type='html'>You may be asking yourself why I've even bothered looking at other operating systems if Linux with an accompanying distro does everything I need.  The answer is that Linux has two main problems that have been driving me crazy lately--no glitch free audio and terrible responsiveness when copying large files.&lt;br /&gt;&lt;br /&gt;The audio problem is well known, and efforts have been underway to address the issue.  I think the Linux audio playback is getting better now with PulseAudio, so this issue doesn't bother me as much any more.&lt;br /&gt;&lt;br /&gt;The disk io responsiveness issue is less known.  The issue appears when copying lots of or large amounts of data on a 64-bit kernel.  The kernel load escalates to the point the system is unresponsive ( the load climbs up to 9+ on a beefy machine with a single copy command running).  This is the primary reason I started looking at other operating systems.&lt;br /&gt;&lt;br /&gt;A few days ago, I came across &lt;a href="http://bugzilla.kernel.org/show_bug.cgi?id=7372"&gt;this linux kernel bug&lt;/a&gt; entered over 2 years ago.   Interestingly enough, the load only escalates when I boot up using a 64 bit kernel--the 32 bit kernel is fine.  I'm planning to jump onto &lt;a href="http://bugzilla.kernel.org/show_bug.cgi?id=12309"&gt;this related kernel bug&lt;/a&gt; and see if I can offer testing or other support here shortly.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Follow up 1/14/2009&lt;/span&gt;: Looks like there's some progress on the performance bug.  A Slashdot article &lt;a href="http://it.slashdot.org/article.pl?sid=09/01/15/049201"&gt;here&lt;/a&gt; explains more.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1492374798042002505-8855871252633116193?l=mmartinsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmartinsoftware.blogspot.com/feeds/8855871252633116193/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1492374798042002505&amp;postID=8855871252633116193' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1492374798042002505/posts/default/8855871252633116193'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1492374798042002505/posts/default/8855871252633116193'/><link rel='alternate' type='text/html' href='http://mmartinsoftware.blogspot.com/2009/01/linux-64-bit-disk-io-performance.html' title='Linux 64 bit disk IO Performance'/><author><name>Michael Martin</name><uri>http://www.blogger.com/profile/06287331995903071075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1492374798042002505.post-1091912635287996992</id><published>2009-01-07T17:30:00.007-07:00</published><updated>2009-01-07T19:11:54.973-07:00</updated><title type='text'>FreeBSD 7.1 Laptop Experience</title><content type='html'>&lt;a href="http://www.freebsd.org/"&gt;FreeBSD 7.1&lt;/a&gt; was release a few days ago.  I gave it a run on my x86 laptop over the past few days, and I really liked everything I experienced.  Here are a few quick bullets on what I focused on and encountered:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;  &lt;li&gt;&lt;span style="font-weight:bold;"&gt;Stability&lt;/span&gt; -- No problems.  The OS ran fine, and I never had to force a reboot.  I did have to force a power off once or twice--GNOME hung on a shutdown menu command.&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;span style="font-weight:bold;"&gt;Audio&lt;/span&gt; --  The audio experience on FreeBSD was glitch free despite any other tasks I was running.&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;span style="font-weight:bold;"&gt;Flash 9 support&lt;/span&gt; -- I got flash 9 running in a native FreeBSD Firefox browser using nspluginwrapper.  Flash audio worked fine too, and I didn't have any crashes or other stability issues.&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;span style="font-weight:bold;"&gt;Java Support&lt;/span&gt; -- I had a native JDK 6 running fine with Netbeans 6.5.  I read that Glassfish would also work, but never installed it.&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;span style="font-weight:bold;"&gt;USB Yank Support&lt;/span&gt; -- This is a nit-pick for server usage, but I consider it a critical bug for desktop usage.  If you yank out a mounted USB drive on FreeBSD and try to force an unmount, the kernel blows up and hangs.  I did come across a post somewhere that this is now being addressed by the &lt;a href="http://www.freebsdfoundation.org/"&gt;FreeBSD Foundation&lt;/a&gt;.  Yay!!!&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;span style="font-weight:bold;"&gt;Misc. Stuff&lt;/span&gt; -- The only thing I really missed from Linux to FreeBSD on the laptop was the extra buttons support.  OpenSUSE installed the necessary stuff to make the laptop's mute/volume/brightness buttons work out of the box.  FreeBSD supplied the necessary module to control my laptop's brightness, but I would need to research on how to tie the buttons into brightness and volume control functionality.  I also don't know if this is really a kernel issue or a user space program issue.  My guess is I could probably make the buttons work by installing some user space programs and configuring GNOME.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;FreeBSD would support all my computing needs, but there is still one major issue holding me back from full adoption--NVidia driver support on x64 architectures. It's unclear who exactly to blame for this.  NVidia is waiting on FreeBSD full kernel support to handle the binary NVidia driver, and the kernel developers are not focused on making the extensive changes required to fully support the driver. While progress is being made, it's a slow process ( over 4 years now ).  Just check out &lt;a href="http://www.nvnews.net/vbulletin/showthread.php?t=41545"&gt;this nvnews thread&lt;/a&gt; for the ugly details.  &lt;br /&gt;&lt;br /&gt;One solution I have would be to run the 32 bit FreeBSD kernel.  The problem I have here is the machine has &gt;4GB of memory.  Now, FreeBSD supports &lt;a href="http://en.wikipedia.org/wiki/Physical_Address_Extension"&gt;PAE&lt;/a&gt; to address all the memory, but FreeBSD does not support loadable kernel modules with PAE.  I'm unable to convince myself to yank some memory out of the machine to make the graphics card work.  I'd even be willing to sacrifice 3d support if I could get decent 2D dual headed DVI support in a 64 bit kernel.  From reading the forums, this seems iffy too using either the nv or nouveau open source nvidia drivers.  &lt;br /&gt;&lt;br /&gt;It seems myself and many other "would-be" 64 bit NVidia FreeBSD users are out of luck for now.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1492374798042002505-1091912635287996992?l=mmartinsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmartinsoftware.blogspot.com/feeds/1091912635287996992/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1492374798042002505&amp;postID=1091912635287996992' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1492374798042002505/posts/default/1091912635287996992'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1492374798042002505/posts/default/1091912635287996992'/><link rel='alternate' type='text/html' href='http://mmartinsoftware.blogspot.com/2009/01/freebsd-71-laptop-experience.html' title='FreeBSD 7.1 Laptop Experience'/><author><name>Michael Martin</name><uri>http://www.blogger.com/profile/06287331995903071075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1492374798042002505.post-7835404021046555971</id><published>2008-12-27T11:59:00.003-07:00</published><updated>2008-12-27T12:07:07.356-07:00</updated><title type='text'>OpenSolaris No More (again)</title><content type='html'>After getting most everything up and running, I finally got a chance to "work" on the OpenSolaris machine.  Unfortunately, I was less than impressed with the desktop performance--even with the zfs memory changes.  The desktop became sluggish to me.  &lt;br /&gt;&lt;br /&gt;I can sleep well now knowing I gave OpenSolaris a good, fair comparison to Linux for what I needed.  Linux ( OpenSuse 11.1 ) comes out on top as the winner for me in performance, routing/nat capabilities, device driver support and best overall server/workstation experience.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1492374798042002505-7835404021046555971?l=mmartinsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmartinsoftware.blogspot.com/feeds/7835404021046555971/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1492374798042002505&amp;postID=7835404021046555971' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1492374798042002505/posts/default/7835404021046555971'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1492374798042002505/posts/default/7835404021046555971'/><link rel='alternate' type='text/html' href='http://mmartinsoftware.blogspot.com/2008/12/opensolaris-no-more-again.html' title='OpenSolaris No More (again)'/><author><name>Michael Martin</name><uri>http://www.blogger.com/profile/06287331995903071075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1492374798042002505.post-7942966560652573131</id><published>2008-12-26T13:43:00.003-07:00</published><updated>2008-12-26T14:15:27.009-07:00</updated><title type='text'>OpenSolaris Audio And Memory</title><content type='html'>Sound is now working.  I installed the latest &lt;a href="http://www.opensound.com/solaris.html"&gt;OSS&lt;/a&gt; package.  After a reboot, the update did not fix the sound issue--the card was still not recognized.  I then tried source files, but had issues getting it to build.  Un-installed the oss package, rebooted, and the audio worked.  I can't explain what changed, but audio is now working on an Intel Corporation 82801JI (ICH10 Family) HD Audio Controller just fine.&lt;br /&gt;&lt;br /&gt;OpenSolaris is getting a &lt;a href="http://www.opensolaris.org/os/project/opensound/"&gt;new sound engine&lt;/a&gt;--let's hope it works better than the &lt;a href="http://www.matusiak.eu/numerodix/blog/index.php/2008/12/19/linux-audio-confusing-as-ever/"&gt;various Linux offerings&lt;/a&gt; we've struggled with over the years.&lt;br /&gt;&lt;br /&gt;I did have to reboot the OpenSolaris box this morning.  For the second day in a row, all the memory was used up in the morning, and the machine became completely un-responsive.  I came across the post &lt;a href="http://solarisdesktop.blogspot.com/2008/11/where-is-memory-gone.html"&gt;Where is the memory gone?&lt;/a&gt;, and I applied the limits to the ZFS cache.  Hopefully, that will fix the problem.&lt;br /&gt;&lt;br /&gt;The machine has been running great other than the memory issue.  I have NAT and Firewalls working now too.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1492374798042002505-7942966560652573131?l=mmartinsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmartinsoftware.blogspot.com/feeds/7942966560652573131/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1492374798042002505&amp;postID=7942966560652573131' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1492374798042002505/posts/default/7942966560652573131'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1492374798042002505/posts/default/7942966560652573131'/><link rel='alternate' type='text/html' href='http://mmartinsoftware.blogspot.com/2008/12/opensolaris-audio-and-memory.html' title='OpenSolaris Audio And Memory'/><author><name>Michael Martin</name><uri>http://www.blogger.com/profile/06287331995903071075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1492374798042002505.post-5277881117936489856</id><published>2008-12-22T15:32:00.003-07:00</published><updated>2008-12-22T15:48:03.611-07:00</updated><title type='text'>OpenSolaris with Blender 3D, Fetchmail, Sendmail, Procmail , Dovecot, and the Gimp</title><content type='html'>Today I got the OpenSolaris install a few steps closer to the replaced Linux install.  I compiled Blender 3D, the Gimp, Procmail, and Dovecot--a few issues with Blender compiling, but then a Wiki explained how to build on OpenSolaris.  &lt;br /&gt;&lt;br /&gt;OpenSolaris already has fetchmail and sendmail packages in the main repo, so it was a matter of configuring sendmail to use the procmail mailer.  The hardest part was figuring out how to make procmail use Maildir format.  The answer was simple:  &lt;br /&gt;&lt;br /&gt;in /etc/procmailrc add  this line:&lt;br /&gt;&lt;br /&gt;DEFAULT=$HOME/Maildir/&lt;br /&gt;&lt;br /&gt;The trick was the "trailing" slash to tell procmail to use maildir format.  The man page for procmailrc clearly states so.  I'm sometimes to quick to google something before RTFM, and what is really a simple solution becomes overly complex by endless online searches.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1492374798042002505-5277881117936489856?l=mmartinsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmartinsoftware.blogspot.com/feeds/5277881117936489856/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1492374798042002505&amp;postID=5277881117936489856' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1492374798042002505/posts/default/5277881117936489856'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1492374798042002505/posts/default/5277881117936489856'/><link rel='alternate' type='text/html' href='http://mmartinsoftware.blogspot.com/2008/12/opensolaris-with-blender-3d-fetchmail.html' title='OpenSolaris with Blender 3D, Fetchmail, Sendmail, Procmail , Dovecot, and the Gimp'/><author><name>Michael Martin</name><uri>http://www.blogger.com/profile/06287331995903071075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1492374798042002505.post-7404087354825448439</id><published>2008-12-21T16:42:00.005-07:00</published><updated>2008-12-21T18:12:39.232-07:00</updated><title type='text'>OpenSolaris 2008.11 Revisited</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_AaEVZWmrjQg/SU7pOphMXFI/AAAAAAAAAAk/M6rxCXNjT5A/s1600-h/Screenshot.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 125px;" src="http://3.bp.blogspot.com/_AaEVZWmrjQg/SU7pOphMXFI/AAAAAAAAAAk/M6rxCXNjT5A/s400/Screenshot.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5282415850824686674" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Picture of OpenSolaris 2008.11 Desktop.&lt;br /&gt;&lt;br /&gt;I last spoke about my encounters with OpenSuse, FreeBSD, and OpenSolaris.  After writing that entry, for some reason, I kept thinking about my encounter with OpenSolaris.  Maybe it was that I'm back on Solaris machines at work, or maybe it was the small OpenSolaris icon Firefox mistakenly replaced on one of my always visible bookmark links.  Either way, I've decided to give it another go--this time diving in.&lt;br /&gt;&lt;br /&gt;Initially, I ran it for a few days on my laptop.  The primary purpose being to get more familiar with its capabilities as a desktop machine.  Once I was satisfied and more familiar with it's capabilities, I wiped my "just-updated" OpenSuse 11.1 off my main home computer.  My experience is still a work in progress, however, I am very happy with it so far.  It does have a learning curve--even for an experience Linux user, however, I think it will be worth it.&lt;br /&gt;&lt;br /&gt;Here are some high level thoughts in various areas:&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Install Experience:&lt;/u&gt;&lt;br /&gt; Very simple, if not easier than the most recent Linux Fedora/OpenSuse distros.  The most complicated piece for me was partitioning--the install gui does not let do any advanced partitioniong, so you must bring up a command terminal and run the "format" command.  While text-based, the entire format/fdisk capabilities are very easy for anyone with any fdisk or parted experience.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Startup Experience:&lt;/u&gt;&lt;br /&gt; I _really_ like the whole service-based system as opposed to the rc.d/init.d scripts.  Once you learn the svcadm and svcs commands, it's really cool.  Services are managed very well and each has a dedicated log file.  Failed services go into a maintenance mode where an admin can diagnose and restart.  The initial boot time was slow, however, future boots are much faster.  Linux users familiar with grub will be right at home.  OpenSolaris uses grub with the additional Boot Environment capabilities to manage multiple "versions" of the installed software on the zfs file system--very nice for user updates and kernel updates.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Initial Desktop / Network Experience:&lt;/u&gt;&lt;br /&gt; OpenSolaris ships with NVidia drivers, so it was a few mouse clicks to have the initial desktop up and running with Compiz on a dual-head display.  The desktop network icons work fairly well to automagically attach to wireless or cabled networks.  I had a few issues with wireless, so I had to come up to speed with ifconfig and dladm.  The nice thing about both tools is they are very well documented in man pages and online docs. &lt;br /&gt;&lt;br /&gt;&lt;u&gt;32 / 64 bit differences:&lt;/u&gt;&lt;br /&gt; This was hard to figure out--most Linux distros you just download the 32 or 64 bit installer, then you have that version installed.  Of course 64 bit installs run 32 bit code.  OpenSolaris is a little different.  It's a unified OS, so the installed installs 32 and 64 libs.  During the boot, the system figures out which kernel to boot.&lt;br /&gt;&lt;br /&gt; Now, even though my kernel is 64 bit, when I launch firefox, it's the 32 bit version.  Many programs have 32 and 64 bit version, so my guess is you can choose you desired architecture on many programs.  Look for the bin/amd64 and lib/64 folders to get an idea--I'm still figuring this out.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Software and Updates:&lt;/u&gt; &lt;br /&gt; The IPS ( network based package system ) does a decent job of updating packages.  One of the criticisms of OpenSolaris is the available number of software packages.  Even from the Linux crowd, you come across this argument from time to time ( shame on you ).  It is noteworthy to see the available number of packages already available.  I did feel that many of the packages on BlastWave and other repos were just too old.  Any experienced Linux user would realize that the argument of "Distro X has 10k packages and OpenSolaris only has a fraction of that" is not really an argument.  Linux was in the same boat just a few years back, and OpenSolaris ( IPS infrastructure in place now ) will catch up quickly.  In addition, all one has to do ( just like we all did a few years ago on Linux ) is to download the source code to a package with its dependencies-- a few ./configure / make / make install commands later and it's there.&lt;br /&gt;&lt;br /&gt; I did this on OpenSolaris and now have running dansguardian, openldap, mplayer, postgres, squid, kdelibs, kmymoney, and others.  Some of these do have pre-compiled packages--I chose to get more recent versions the old fashioned way.  Needless to say most compiled without incident--and using 64 bit flags or 32 bit flags where I desired. &lt;br /&gt;&lt;br /&gt; Bottom line is don't let the current list of available pre-packaged software hold you back--if you know how to build src pacakges, you're set.  Otherwise ask around or just give it time.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Device Driver Supprot&lt;/u&gt;&lt;br /&gt; I have 2 issues with device driver support.  The first is audio on the ICH10 hd intel chip.  The second is printers.  I believe the audio is being looked into now.  OpenSolaris printing gives you 2 options ( the default lp service or CUPS).  Switching between the two is simple ( print-service command ).  Under lp, I printed fine to my laserjet, but not to the hp inkjet.  Both printers were detected fine.  Under CUPS, neither printer worked--I believe there is a known CUPS issue with USB printers.&lt;br /&gt;&lt;br /&gt; I'm not too concerned here, as even the latest Linux distros suffer from audio issues or other device problems.  Linux does support more devices right now.  Given how far OpenSolaris has come in the past 6 months, I think 2009 will be a huge package/support device year for OpenSolaris.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Advanced Networking&lt;/u&gt;&lt;br /&gt; I use a few advanced Linux networking features--namely virtual networks, bandwidth throttling, firewalls, and NAT routing.  I have not got my OpenSolaris box doing this yet--I have to learn how to do this on OpenSolaris.  I think firewalls and NAT are already there.  Bandwidth control and virtual network cards are part of the OpenSolaris CrossBow project.  Just recently, the capabilities were merged into the OpenSolaris kernel.  I did the Linux equivalent of a kernel update on my laptop to learn how.  My next big step will be to do it on this server.  More to come in this department.&lt;br /&gt;&lt;br /&gt;To summarize:  &lt;br /&gt;&lt;br /&gt;Is OpenSolaris ready for the desktop? &lt;br /&gt;...YES.  As ready as Linux is.  You could set up an OpenSolaris box for any non-techie member of your family, and they could surf the web, get emails, write documents, etc. Linux and OpenSolaris still can not satisfy one's need for IPOD sync, camera photo management without a knowledgeable Unix go-to-guy to call.&lt;br /&gt;&lt;br /&gt;Is there a Linux to OpenSolaris learning curve and initial struggle?&lt;br /&gt;...YES.  However, it's much less that say a Windows to Linux/BSD/Solaris conversion.&lt;br /&gt;&lt;br /&gt;Is the struggle worth it?&lt;br /&gt;...YES.  For me, I'm very impressed and happy.  I certainly don't want to say Linux is better or BSD is better or OpenSolaris is better.  Choice is good and so is competition -- even in an open source world arena.  I'm not sure why I like OpenSolaris.  All I can say is it just feels good.  I don't get too caught up in the licensing differences and arguments.  If I can run it at home and at work and it's open source, I'm satisfied.  It's also refreshing to have an excellent performing, stable OS capable of running my favorite open source programs with a company like Sun behind it.  I sort of feel like the days when I switched from Windows to OS/2 Warp 3.0.  Although Solaris has been around for a long time, to me, it feels like an evolutionary step forward.  I still have lots to learn here too.&lt;br /&gt;&lt;br /&gt;I'll be adding posts related to this migration experience as I learn more and become more familiar with OpenSolaris.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1492374798042002505-7404087354825448439?l=mmartinsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmartinsoftware.blogspot.com/feeds/7404087354825448439/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1492374798042002505&amp;postID=7404087354825448439' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1492374798042002505/posts/default/7404087354825448439'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1492374798042002505/posts/default/7404087354825448439'/><link rel='alternate' type='text/html' href='http://mmartinsoftware.blogspot.com/2008/12/opensolaris-200811-revisited.html' title='OpenSolaris 2008.11 Revisited'/><author><name>Michael Martin</name><uri>http://www.blogger.com/profile/06287331995903071075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_AaEVZWmrjQg/SU7pOphMXFI/AAAAAAAAAAk/M6rxCXNjT5A/s72-c/Screenshot.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1492374798042002505.post-4957955945039928589</id><published>2008-11-29T09:52:00.005-07:00</published><updated>2008-11-29T10:44:38.838-07:00</updated><title type='text'>Fedora, OpenSuse, FreeBSD, OpenSolaris</title><content type='html'>I've been running Fedora for some time at home and on several work computers--most recently the latest Fedora 10 development branches.  I ventured out to try OpenSuse, and brought in Beta 5.  I must admit, I was blown away.  I had last run OpenSuse a year or so ago, and was not as impressed as I was with Ubuntu at the time.  In case you're wondering my preferred Linux distro goes something like this ( this goes back a ways )&lt;br /&gt;&lt;br /&gt;Slackware-&gt;RedHat-&gt;Gentoo-&gt;Ubuntu-&gt;Fedora-&gt;OpenSuse&lt;br /&gt;&lt;br /&gt;Even given all the hype around the recent Fedora 10 release, I am still much more impressed with OpenSuse.  I prefer zypper more than yum, and YaST2 either in console mode or graphics mode is much nicer than anything I've seen in Fedora or any other distro I've tried.&lt;br /&gt;&lt;br /&gt;Earlier I posted about Fedora directory server and openldap.  Well, I'm running OpenLDAP now and very happy with it.  Fedora still has the nice gui admin tool.  I stumbled on OpenSuse's User and Group Management tool which fully and graphically supports a back-end ldap configuration.  So, it's easy to manage your ldap users with OpenSuse!&lt;br /&gt;&lt;br /&gt;OpenSuse is well polished, looks great, easy to install ( again the best installer I've used ), the DVD even has graphical tools that analyze and help you fix a broken system.&lt;br /&gt;&lt;br /&gt;Bottom line, if you haven't tried OpenSuse, I'd recommend trying release 11.1. &lt;br /&gt;&lt;br /&gt;In my spare time the last few days, I also tried out FreeBSD.  I ran it on my laptop for a few days and was impressed--getting to know the system and how it worked in comparison to Linux.  I often try testing things out first in a virtual machine, but I don't think you really know an OS until you run it on bare hardware--especially with things like 3D acceleration support and hardware support.&lt;br /&gt;&lt;br /&gt;I eventually decided I would really test it out, and cleared of my home server/workstation--could FreeBSD support everything I needed???  The first road block I hit was no NVidia 3d support on the AMD64 bit platform.  Even though I checked NVidia's site, I somehow missed the i386 on the driver listed.  Ok, I'll through on the i386 FreeBSD version.  Well, this time I realized that virtualization products ( like VirtualBox I use ) have not been ported to any BSD.  I do like running VirtualBox on my Linux system.  We'll, as much as I wanted to really dig deep and run FreeBSD, I decided against it--I could have lived without VirtualBox, but knowing I had full 64 bit 3D support on Linux and VirtualBox, I decided Linux suited my needs better.&lt;br /&gt;&lt;br /&gt;Next stop...OpenSolaris 2008.11.  I'd run 2008.05, but had to ask myself what it really gave me over Linux outside of ZFS and DTrace which I can personally live without.  I installed 2008.11 on my workstation.  OpenSolaris has a great installer--very simple.  Booting up caused me a little pain, because the installer did not overwrite my previous OpenSuse boot loader.  I had to wipe out the MBR, reinstall, then it was fine.&lt;br /&gt;&lt;br /&gt;OpenSolaris 2008.11 booted up into Gnome and it looks great.  It immediately identified my printers ( both HPs ), but I had no full sound card support.  I ran it for a bit, but was again asking myself, "do you really want to go through the trouble.  Re-compiling from scratch all the packages you just get with a standard Linux distro.  Installing add-on packages just to get features you get out of the box with Linux like firewalls, traffic shaping, network virtualization??"  Not that those couldn't be done with OpenSolaris, but again I asked myself "why go through the pain?" when Linux already does it and does it very well.  The answer was "no", and I am back with OpenSuse.  &lt;br /&gt;&lt;br /&gt;OpenSolaris and FreeBSD are great operating systems, however, Linux has come a long way and has so much to offer me today.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1492374798042002505-4957955945039928589?l=mmartinsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmartinsoftware.blogspot.com/feeds/4957955945039928589/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1492374798042002505&amp;postID=4957955945039928589' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1492374798042002505/posts/default/4957955945039928589'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1492374798042002505/posts/default/4957955945039928589'/><link rel='alternate' type='text/html' href='http://mmartinsoftware.blogspot.com/2008/11/fedora-opensuse-freebsd-opensolaris.html' title='Fedora, OpenSuse, FreeBSD, OpenSolaris'/><author><name>Michael Martin</name><uri>http://www.blogger.com/profile/06287331995903071075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1492374798042002505.post-5612047894060610210</id><published>2008-11-27T10:35:00.003-07:00</published><updated>2008-11-27T11:10:41.396-07:00</updated><title type='text'>Encoding Video Using Mencoder for the Xbox 360 with AC3 5.1 Surround Sound</title><content type='html'>Some time ago, I spent a lot of time learning how to encode video using the &lt;a href="http://www.mplayerhq.hu"&gt;MPlayer&lt;/a&gt; encoder mencoder.  I eventually found settings that worked, but the final video did not support AC3 ( 5.1 ) surround sound.&lt;br /&gt;&lt;br /&gt;The question came up to me the other day about the Xbox's ability to play back 5.1, and I thought I would revisit the issue.  I found an existing video on the net the said it was an AVI for the Xbox with 5.1 sound.  Sure enough, I threw it on a usb drive, plugged it in, and had 5.1 surround sound.&lt;br /&gt;&lt;br /&gt;I looked at the specs of the file, and after a few trial and error attempts, I had a dvd converted and playing back on my Xbox 360 in full glorious 5.1 surround sound.&lt;br /&gt;&lt;br /&gt;The magic command I use is:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;mencoder  dvd://1 -ovc lavc -oac copy -channels 6 -lavcopts vcodec=mpeg4:threads=2:vbitrate=4500:autoaspect:turbo:mbd=2:trell=1:vpass=1 -o test.avi -ffourcc xvid -mc 0 -noskip -vf scale=854:480,softskip,harddup -ofps 24000/1001&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;This command produces an avi file with a variable-rate mpeg4 video and a 5.1 AC3 audio channel.  &lt;br /&gt;&lt;br /&gt;A few interesting points on the command.  I use two-pass encoding.  So, you'd have to run the command 2x changing the vpass to 2 on the second run.  Even though I told it to copy the stream, unless I specifically added the "-channels 6" command, mencoder only encoded 2 channels.  Another issue is that you have to force the FOURCC to xvid.  The final issue I had was the aspect ratio.  Without forcing the scale to 854x480 ( 16/9 DVD ), the Xbox would not scale it to 16/9.  mencoder allows the -aspect flag, however, as the mencoder man page states, it is only recognized by mplayer.  So, scale the video while encoding it, and it plays back fine.&lt;br /&gt;&lt;br /&gt;There are lots of other options to mencoder--it's got to be the most complex command I've ever seen.  The documentation for mplayer is great, so check there if you have questions.&lt;br /&gt;&lt;br /&gt;If anyone knows how to or can figure out if you can encode H264 videos using avi or mpeg format with a 5.1 audio channel, drop me a line.  &lt;br /&gt;&lt;br /&gt;&lt;a href="http://handbrake.fr/"&gt;Handbrake&lt;/a&gt; is another great tool for converting videos.  They have an XBox 360 preset, but it looks like it only supports faac two channel audio with x264 video.  Handbrake is great since it auto-crops the video.  Using mplayer/mencoder, I have to play the video first to figure out if it needs cropping and to get the correct cropping parameters to pass into mencoder.&lt;br /&gt;&lt;br /&gt;Now, if only I had a huge server farm to encode my DVD collection.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1492374798042002505-5612047894060610210?l=mmartinsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmartinsoftware.blogspot.com/feeds/5612047894060610210/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1492374798042002505&amp;postID=5612047894060610210' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1492374798042002505/posts/default/5612047894060610210'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1492374798042002505/posts/default/5612047894060610210'/><link rel='alternate' type='text/html' href='http://mmartinsoftware.blogspot.com/2008/11/encoding-video-using-mencoder-for-xbox.html' title='Encoding Video Using Mencoder for the Xbox 360 with AC3 5.1 Surround Sound'/><author><name>Michael Martin</name><uri>http://www.blogger.com/profile/06287331995903071075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1492374798042002505.post-4952753567540644832</id><published>2008-10-12T22:00:00.003-06:00</published><updated>2008-10-12T22:27:07.939-06:00</updated><title type='text'>EXT3, EXT4, JFS, XFS Weekend Encounters</title><content type='html'>Sometimes I'm a gluten for punishment when it comes to technology.  My self-inflicted punishment this weekend was spending time formatting and copying data using xfs, jfs, and ext4 filesystems under Linux.&lt;br /&gt;&lt;br /&gt;It started out several days ago when I got the itch to move from ext3 to a different filesystem to test the performance.  I've been through this before, but it had been a while.  I was tempted to try ext4 right off the bat, but decided to try xfs.  I ran xfs for several days, and I really liked it.  However, in an effort to fix my sound card not living up to Fedora's 10 promise of glitch-free audio ( this is another story in and of itself ), I had to hard-reboot my computer and ended up with a 0-length file on an opened file.  This is not unusual for an unclean shutdown of xfs, so I wasn't mad, but decided to try jfs.  A few reboots later, and a lot of time sitting around waiting to backup/restore a 90+GB root partition, jfs was up an running on the root partition.  No problems, but I then came across the ext3 options for "xfs-like and jfs-like" behaviour by adding data=writeback,nobh,commit=30 mount options.  So, back to ext3 with those options, and I was impressed.  No official benchmarks to post, but it felt good and I was back on an ext filesystem.&lt;br /&gt;&lt;br /&gt;After running ext3 for a while, I realized Fedora Rawhide had moved from ext4dev ( the pre-release ) to ext4.  Why not, I already had the data backed up, so...reboot, rsync, mkfs.ext4, and a cp and I was back up running ext4 with the "data=writeback,nobh,commit=30" mount options.  &lt;br /&gt;&lt;br /&gt;While these mount options are a little more risky on hard reboots, it appears the worst that should happen is stale data--not a 0 byte file like xfs was so kind to produce.  I can live with old data, but corrupt data is where I draw the line.&lt;br /&gt;&lt;br /&gt;So far, the ext4 is blazing fast.  It's running over a software raid 0 config.  On the first reboot, the raid device forced a fsck.  I was very impressed the 150GB partition fsck finished in less than a minute--compared to the several minute fsck the ext3 partition took on it's initial boot.&lt;br /&gt;&lt;br /&gt;ext4 is the filesystem of choice for me now.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1492374798042002505-4952753567540644832?l=mmartinsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmartinsoftware.blogspot.com/feeds/4952753567540644832/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1492374798042002505&amp;postID=4952753567540644832' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1492374798042002505/posts/default/4952753567540644832'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1492374798042002505/posts/default/4952753567540644832'/><link rel='alternate' type='text/html' href='http://mmartinsoftware.blogspot.com/2008/10/ext3-ext4-jfs-xfs-weekend-encounters.html' title='EXT3, EXT4, JFS, XFS Weekend Encounters'/><author><name>Michael Martin</name><uri>http://www.blogger.com/profile/06287331995903071075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1492374798042002505.post-4814454482118301396</id><published>2008-09-24T18:40:00.002-06:00</published><updated>2008-09-24T18:43:37.184-06:00</updated><title type='text'>GNOME is Back for me</title><content type='html'>I previously posted about KDE 4.1.  While I enjoyed it's cool looks, I've found GNOME is currently just more productive for me.  So, I find myself running GNOME at work and home.  Choice is great, and I'm sure this won't be the last time I try out KDE.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1492374798042002505-4814454482118301396?l=mmartinsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmartinsoftware.blogspot.com/feeds/4814454482118301396/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1492374798042002505&amp;postID=4814454482118301396' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1492374798042002505/posts/default/4814454482118301396'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1492374798042002505/posts/default/4814454482118301396'/><link rel='alternate' type='text/html' href='http://mmartinsoftware.blogspot.com/2008/09/gnome-is-back-for-me.html' title='GNOME is Back for me'/><author><name>Michael Martin</name><uri>http://www.blogger.com/profile/06287331995903071075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1492374798042002505.post-1059037733938455644</id><published>2008-08-03T20:06:00.002-06:00</published><updated>2008-08-03T20:23:06.662-06:00</updated><title type='text'>KDE 4.1 Much Improved</title><content type='html'>I installed KDE 4.1 today on a few of my machines.  I'm quite happy with it now, and I will be making the switch from GNOME back to KDE.  KDE 4.0 was too buggy to work with.  After a few crashes of KDE 4.0 within the first hour of installation, I went right back to GNOME 2.22.  &lt;br /&gt;&lt;br /&gt;GNOME is fine for the most part, though there were often times I wanted to customize something that I just couldn't do ( dual headed background limitations, running a separate screensaver process per head slamming the cpus, and lack of any customization in the newly, revamped gdm architecture come to mine  ).  But I digress.  For me, KDE 4.1 is stable, looks great, and so far is not lacking any customizations I need.  It took a few minutes of figuring out where the team is headed with Desktop folder views.  I think they're way cool, and they help one keep a nice, organized desktop. &lt;br /&gt;&lt;br /&gt;If you gave up on KDE 4.0 like I did, jump back on!  KDE 4.1 shows the dedication of the KDE team to answering issues and pioneering the way for the Linux desktop.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1492374798042002505-1059037733938455644?l=mmartinsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmartinsoftware.blogspot.com/feeds/1059037733938455644/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1492374798042002505&amp;postID=1059037733938455644' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1492374798042002505/posts/default/1059037733938455644'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1492374798042002505/posts/default/1059037733938455644'/><link rel='alternate' type='text/html' href='http://mmartinsoftware.blogspot.com/2008/08/kde-41-much-improved.html' title='KDE 4.1 Much Improved'/><author><name>Michael Martin</name><uri>http://www.blogger.com/profile/06287331995903071075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1492374798042002505.post-146111066726403215</id><published>2008-07-07T11:08:00.002-06:00</published><updated>2008-07-07T11:18:09.768-06:00</updated><title type='text'>Flex BlazeDS XML Parsing</title><content type='html'>I've received some great comments on my recent entry &lt;a href="http://mmartinsoftware.blogspot.com/2008/05/simplified-blazeds-and-jms.html"&gt;Simplified BlazeDS and JMS&lt;/a&gt;.  A few people had some issues, and I wanted to clarify one thing I discovered early on, fixed, forgot, and then was reminded of as others encountered the same problem -- &lt;u&gt;Flex BlazeDS xml parsing does not remove any spaces or linefeeds from the xml between the xml tags and the value&lt;/u&gt;.  If, for instance, your xml formatter places line feeds between your xml tags and the containing text values, you will encounter problems. &lt;br /&gt;&lt;br /&gt;Also I've set up an email at mmartinsoftware@comcast.net for those who wish to email me or want sample code emailed to them.  I'll have to look for some hosting space to make it easier down the road.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1492374798042002505-146111066726403215?l=mmartinsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmartinsoftware.blogspot.com/feeds/146111066726403215/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1492374798042002505&amp;postID=146111066726403215' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1492374798042002505/posts/default/146111066726403215'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1492374798042002505/posts/default/146111066726403215'/><link rel='alternate' type='text/html' href='http://mmartinsoftware.blogspot.com/2008/07/flex-blazeds-xml-parsing.html' title='Flex BlazeDS XML Parsing'/><author><name>Michael Martin</name><uri>http://www.blogger.com/profile/06287331995903071075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1492374798042002505.post-2316258622738325938</id><published>2008-05-16T09:54:00.004-06:00</published><updated>2008-05-16T10:13:57.990-06:00</updated><title type='text'>OpenLDAP 2.4.9 Multi-Master Replication Stability Improved</title><content type='html'>I pulled in OpenLDAP 2.4.9 to re-visit some multi-master testing I had done on the previous version.  2.4.9 was a better experience for me than 2.4.8.  I re-ran some tests of running two replicated servers on the same machine.  I would continuously load in several hundred or thousand user records on one server, then delete them. &lt;br /&gt;&lt;br /&gt;The stability is improved from 2.4.8.  I have yet to have a server core on me--even after abruptly shutting done one or both servers during a batch load or delete.&lt;br /&gt;&lt;br /&gt;My only issue now is that when performing a bulk load, if you interrupt the client during the load ( Control-c ldapadd ) the servers get out of sync.  The server you directly attach to in order to load the records contains more records than the "replicated" server.  Under most circumstances, this would not be a huge issue, but it does show an easy way for a client to get the servers out of sync.&lt;br /&gt;&lt;br /&gt;With the 2.4.9 release of OpenLDAP, I would trust the multi-master synchronization enough now for use on production systems.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1492374798042002505-2316258622738325938?l=mmartinsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmartinsoftware.blogspot.com/feeds/2316258622738325938/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1492374798042002505&amp;postID=2316258622738325938' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1492374798042002505/posts/default/2316258622738325938'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1492374798042002505/posts/default/2316258622738325938'/><link rel='alternate' type='text/html' href='http://mmartinsoftware.blogspot.com/2008/05/openldap-249-multi-master-replication.html' title='OpenLDAP 2.4.9 Multi-Master Replication Stability Improved'/><author><name>Michael Martin</name><uri>http://www.blogger.com/profile/06287331995903071075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1492374798042002505.post-55383405466401992</id><published>2008-05-08T19:29:00.004-06:00</published><updated>2008-05-08T21:47:07.849-06:00</updated><title type='text'>Simplified BlazeDS and JMS</title><content type='html'>I've been using Flex for some time now, and finally got around to trying out &lt;a href="http://opensource.adobe.com/wiki/display/blazeds/BlazeDS"&gt;BlazeDS&lt;/a&gt;.  What really peaked my interest was it's claim to publish and consume JMS messages from both topics and queues.&lt;br /&gt;&lt;br /&gt;The one area in web development that I always struggle with is asynchronous messaging from the server to clients over HTTP.  I'm pleased to announce that I got a simple application up and running.&lt;br /&gt;&lt;br /&gt;The goal of this post is to share the example and lessons learned in order to save others some of the problems I ran into.&lt;br /&gt;&lt;br /&gt;My project had a few main goals:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Get a simple pub/sub example up and running&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Avoid using the "pre-configured" download.  I wanted to get a project up and running "from scratch"&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Use my existing ActiveMQ broker running in it's own JVM&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Use my existing Tomcat install&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Use mxml as much as possible and avoid writing Actionscript&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Keep it simple to get a working example&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;Before I get into the example code, a few things I ran into:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The BlazeDS documentation is good, but far from perfect.  The messaging examples switch from mxml to actionscript, so it makes it a little difficult to piece things together.  Also, it's not clear in the examples what many of the values point to--i.e. is that the JMS Topic name or the destination name????  I also found a few syntax problems in the examples which caused some "cut and paste" problems for me.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;A key piece I discovered after nothing was working at all, was the use of the "-services" flag to the mxmlc compiler.  You have to compile your mxml file with the services file you plan to call.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Don't rely on client side faults.  Prior to finding out about the "-services" flag, I would call the send method in the client, but nothing happened--the faultHandler was never called on the client, and nothing appeared in the server logs.  Once I compiled with the "-services" flag, things began to click.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Make sure the JNDI names are correct.  BlazeDS looks up the JMS ConnectionFactory and Topics via JNDI calls to Tomcat's JNDI.  Make sure you specify the full JNDI name of the resource.  i.e java:comp/env/jms/messageTopic&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_AaEVZWmrjQg/SCO0fxGt5zI/AAAAAAAAAAM/QuMESByv1C8/s1600-h/layout.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://2.bp.blogspot.com/_AaEVZWmrjQg/SCO0fxGt5zI/AAAAAAAAAAM/QuMESByv1C8/s400/layout.png" alt="" id="BLOGGER_PHOTO_ID_5198196852766140210" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;The example contains 5 main files:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;A standard web.xml file with a BlazeDS servlet to handle the remote calls&lt;br /&gt;&lt;/li&gt;&lt;li&gt;A Tomcat context.xml file to add the JNDI values for the required JMS resources&lt;br /&gt;&lt;/li&gt;&lt;li&gt;A BlazeDS services-context.xml file to set up the services and channels&lt;br /&gt;&lt;/li&gt;&lt;li&gt;A BlazeDS messaging-config.xml that stores the messaging service(s).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;A test.mxml file which is compiled into the Flex application.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;The image to the right shows the file locations in the final WAR layout.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;web.xml&lt;/u&gt;&lt;br /&gt;The web.xml file is pretty basic.  The main 2 things to point out are the HttpFlexSession listener and the MessageBrokerServlet.  The servlet loads up you services, so it is passed the location of the services-config.xml file inside the WAR file.&lt;br /&gt;&lt;pre  style="border: 1px solid blue; background: rgb(203, 232, 229) none repeat scroll 0% 0%; overflow: auto; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;font-size:small;"&gt;&lt;br /&gt;&lt;span class="ST0"&gt;&amp;lt;?&lt;/span&gt;&lt;span class="ST0"&gt;xml&lt;/span&gt; version="1.0" encoding="UTF-8"?&amp;gt;&lt;br /&gt;&lt;span class="ST0"&gt;&amp;lt;!DOCTYPE web-app PUBLIC &lt;/span&gt;"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"&lt;span class="ST0"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;web-app&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;display-name&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;BlazeDS&lt;span class="xml-tag"&gt;&amp;lt;/display-name&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;description&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;BlazeDS Application&lt;span class="xml-tag"&gt;&amp;lt;/description&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="xml-comment"&gt;&amp;lt;!-- Http Flex Session attribute and binding listener support --&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;listener&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;listener-class&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;flex.messaging.HttpFlexSession&lt;span class="xml-tag"&gt;&amp;lt;/listener-class&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;/listener&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="xml-comment"&gt;&amp;lt;!-- MessageBroker Servlet --&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;servlet&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;servlet-name&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;MessageBrokerServlet&lt;span class="xml-tag"&gt;&amp;lt;/servlet-name&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;display-name&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;MessageBrokerServlet&lt;span class="xml-tag"&gt;&amp;lt;/display-name&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;servlet-class&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;flex.messaging.MessageBrokerServlet&lt;span class="xml-tag"&gt;&amp;lt;/servlet-class&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;init-param&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;param-name&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;services.configuration.file&lt;span class="xml-tag"&gt;&amp;lt;/param-name&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;param-value&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;/WEB-INF/flex/services-config.xml&lt;span class="xml-tag"&gt;&amp;lt;/param-value&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;/init-param&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;load-on-startup&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;1&lt;span class="xml-tag"&gt;&amp;lt;/load-on-startup&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;/servlet&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;servlet-mapping&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;servlet-name&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;MessageBrokerServlet&lt;span class="xml-tag"&gt;&amp;lt;/servlet-name&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;url-pattern&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;/messagebroker/*&lt;span class="xml-tag"&gt;&amp;lt;/url-pattern&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;/servlet-mapping&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;welcome-file-list&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;welcome-file&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;index.html&lt;span class="xml-tag"&gt;&amp;lt;/welcome-file&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;welcome-file&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;index.htm&lt;span class="xml-tag"&gt;&amp;lt;/welcome-file&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;welcome-file&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;index.jsp&lt;span class="xml-tag"&gt;&amp;lt;/welcome-file&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;/welcome-file-list&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;/web-app&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;context.xml&lt;/u&gt;&lt;br /&gt;The context.xml file is for Tomcat.  You can read more about it in the Tomcat documentation.  The key take away is the "name" attribute is the JNDI name that has to match the jndi name used in the messaging-config.xml file.&lt;br /&gt;&lt;pre  style="border: 1px solid blue; background: rgb(203, 232, 229) none repeat scroll 0% 0%; overflow: auto; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;font-size:small;"&gt;&lt;br /&gt;&lt;span class="ST0"&gt;&amp;lt;?&lt;/span&gt;&lt;span class="ST0"&gt;xml&lt;/span&gt; version="1.0" encoding="UTF-8"?&amp;gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;Context&lt;/span&gt; &lt;span class="xml-attribute"&gt;path&lt;/span&gt;="/BlazeTest"&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;Resource&lt;/span&gt; &lt;span class="xml-attribute"&gt;name&lt;/span&gt;="jms/flex/TopicConnectionFactory"&lt;br /&gt;        &lt;span class="xml-attribute"&gt;type&lt;/span&gt;="org.apache.activemq.ActiveMQConnectionFactory"&lt;br /&gt;        &lt;span class="xml-attribute"&gt;description&lt;/span&gt;="JMS Connection Factory"&lt;br /&gt;        &lt;span class="xml-attribute"&gt;factory&lt;/span&gt;="org.apache.activemq.jndi.JNDIReferenceFactory"&lt;br /&gt;        &lt;span class="xml-attribute"&gt;brokerURL&lt;/span&gt;="tcp://localhost:61616"&lt;br /&gt;        &lt;span class="xml-attribute"&gt;brokerName&lt;/span&gt;="myBroker"&lt;span class="xml-tag"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;Resource&lt;/span&gt; &lt;span class="xml-attribute"&gt;name&lt;/span&gt;="jms/messageTopic"&lt;br /&gt;        &lt;span class="xml-attribute"&gt;type&lt;/span&gt;="org.apache.activemq.command.ActiveMQTopic"&lt;br /&gt;        &lt;span class="xml-attribute"&gt;description&lt;/span&gt;="a simple topic"&lt;br /&gt;        &lt;span class="xml-attribute"&gt;factory&lt;/span&gt;="org.apache.activemq.jndi.JNDIReferenceFactory"&lt;br /&gt;        &lt;span class="xml-attribute"&gt;physicalName&lt;/span&gt;="messageTopic"&lt;span class="xml-tag"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;/Context&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;services-config.xml&lt;/u&gt;&lt;br /&gt;The services-config.xml file is used by BlazeDS.  It is first used when you go to compile the mxml file.  When you deploy the war file to Tomcat, this file is also loaded up by the MessageBrokerServlet.&lt;br /&gt;&lt;br /&gt;During compilation, you pass it in like this using the relative path to it from your mxml file.&lt;br /&gt;&lt;br /&gt;~/java_libraries/flex3/bin/mxmlc -services=WEB-INF/flex/services-config.xml test.mxml&lt;br /&gt;&lt;br /&gt;My current file turns on logging which can help during resolve messaging problems like jndi resources not being found.  This file loads in the messaging-config.xml file which is described below.&lt;br /&gt;&lt;br /&gt;The channels determine how the client will talk to the server.  The endpoint has to match the servlet-mapping url-pattern contained in the web.xml.  Since the servlet is grabbing /messagebroker/* and my application is deployed under BlazeTest, the endpoint becomes:&lt;br /&gt;&lt;br /&gt;http://localhost:8080/BlazeTest/messagebroker/amf&lt;br /&gt;&lt;br /&gt;The "amf" on the end of the URL can be called anything--it's what distinguishes one channel url from another channel url.  Here, I am only using one channel.&lt;br /&gt;&lt;pre  style="border: 1px solid blue; background: rgb(203, 232, 229) none repeat scroll 0% 0%; overflow: auto; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;font-size:small;"&gt;&lt;br /&gt;&lt;span class="ST0"&gt;&amp;lt;?&lt;/span&gt;&lt;span class="ST0"&gt;xml&lt;/span&gt; version="1.0" encoding="UTF-8"?&amp;gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;services-config&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;services&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;service-include&lt;/span&gt; &lt;span class="xml-attribute"&gt;file-path&lt;/span&gt;="messaging-config.xml" &lt;span class="xml-tag"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;/services&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;security&lt;/span&gt;&lt;span class="xml-tag"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;channels&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;channel-definition&lt;/span&gt; &lt;span class="xml-attribute"&gt;id&lt;/span&gt;="my-amf" &lt;span class="xml-attribute"&gt;class&lt;/span&gt;="mx.messaging.channels.AMFChannel"&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;endpoint&lt;/span&gt; &lt;span class="xml-attribute"&gt;url&lt;/span&gt;="http://localhost:8080/BlazeTest/messagebroker/amf" &lt;span class="xml-attribute"&gt;class&lt;/span&gt;="flex.messaging.endpoints.AMFEndpoint"&lt;span class="xml-tag"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;/channel-definition&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;/channels&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;logging&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;target&lt;/span&gt; &lt;span class="xml-attribute"&gt;class&lt;/span&gt;="flex.messaging.log.ConsoleTarget" &lt;span class="xml-attribute"&gt;level&lt;/span&gt;="Debug"&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;properties&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span class="xml-tag"&gt;&amp;lt;prefix&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;[BlazeDS] &lt;span class="xml-tag"&gt;&amp;lt;/prefix&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span class="xml-tag"&gt;&amp;lt;includeDate&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;false&lt;span class="xml-tag"&gt;&amp;lt;/includeDate&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span class="xml-tag"&gt;&amp;lt;includeTime&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;false&lt;span class="xml-tag"&gt;&amp;lt;/includeTime&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span class="xml-tag"&gt;&amp;lt;includeLevel&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;false&lt;span class="xml-tag"&gt;&amp;lt;/includeLevel&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span class="xml-tag"&gt;&amp;lt;includeCategory&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;false&lt;span class="xml-tag"&gt;&amp;lt;/includeCategory&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;/properties&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;filters&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span class="xml-tag"&gt;&amp;lt;pattern&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;Endpoint.*&lt;span class="xml-tag"&gt;&amp;lt;/pattern&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span class="xml-tag"&gt;&amp;lt;pattern&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;Service.*&lt;span class="xml-tag"&gt;&amp;lt;/pattern&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span class="xml-tag"&gt;&amp;lt;pattern&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;Configuration&lt;span class="xml-tag"&gt;&amp;lt;/pattern&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;/filters&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;/target&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;/logging&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;/services-config&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;messaging-config.xml&lt;/u&gt;&lt;br /&gt;This file stores the JMS services and tells BlazeDS where to get the JMS ConnectionFactory and Topics from the JNDI lookup.   The part here that caused be a little problem was making sure the connection-factory and destination-jndi-name values had the correct JNDI name Tomcat expected.  Also, note the destination id value.  When you set up the consumer or producer in the mxml file, you don't tell it what Topic or Queue to connect to, you tell it what destination to connect to.  This makes sense, since the mx:Producer and mx:Consumer attribute is called "destination", but it did throw me for a little loop.&lt;br /&gt;&lt;pre  style="border: 1px solid blue; background: rgb(203, 232, 229) none repeat scroll 0% 0%; overflow: auto; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;font-size:small;"&gt;&lt;br /&gt;&lt;span class="ST0"&gt;&amp;lt;?&lt;span class="ST0"&gt;xml&lt;/span&gt; version="1.0" encoding="UTF-8"?&amp;gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;service&lt;/span&gt; &lt;span class="xml-attribute"&gt;id&lt;/span&gt;="message-service" &lt;span class="xml-attribute"&gt;class&lt;/span&gt;="flex.messaging.services.MessageService"&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;adapters&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;adapter-definition&lt;/span&gt; &lt;span class="xml-attribute"&gt;id&lt;/span&gt;="actionscript" &lt;span class="xml-attribute"&gt;class&lt;/span&gt;="flex.messaging.services.messaging.adapters.ActionScriptAdapter" &lt;span class="xml-attribute"&gt;default&lt;/span&gt;="true" &lt;span class="xml-tag"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;adapter-definition&lt;/span&gt; &lt;span class="xml-attribute"&gt;id&lt;/span&gt;="jms" &lt;span class="xml-attribute"&gt;class&lt;/span&gt;="flex.messaging.services.messaging.adapters.JMSAdapter"&lt;span class="xml-tag"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;/adapters&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;default-channels&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;channel&lt;/span&gt; &lt;span class="xml-attribute"&gt;ref&lt;/span&gt;="my-amf"&lt;span class="xml-tag"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;/default-channels&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;destination&lt;/span&gt; &lt;span class="xml-attribute"&gt;id&lt;/span&gt;="message-destination"&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;properties&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;jms&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class="xml-tag"&gt;&amp;lt;destination-type&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;Topic&lt;span class="xml-tag"&gt;&amp;lt;/destination-type&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class="xml-tag"&gt;&amp;lt;message-type&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;javax.jms.TextMessage&lt;span class="xml-tag"&gt;&amp;lt;/message-type&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class="xml-tag"&gt;&amp;lt;connection-factory&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;java:comp/env/jms/flex/TopicConnectionFactory&lt;span class="xml-tag"&gt;&amp;lt;/connection-factory&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class="xml-tag"&gt;&amp;lt;destination-jndi-name&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;java:comp/env/jms/messageTopic&lt;span class="xml-tag"&gt;&amp;lt;/destination-jndi-name&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class="xml-tag"&gt;&amp;lt;delivery-mode&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;NON_PERSISTENT&lt;span class="xml-tag"&gt;&amp;lt;/delivery-mode&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class="xml-tag"&gt;&amp;lt;message-priority&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;DEFAULT_PRIORITY&lt;span class="xml-tag"&gt;&amp;lt;/message-priority&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class="xml-tag"&gt;&amp;lt;acknowledge-mode&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;AUTO_ACKNOWLEDGE&lt;span class="xml-tag"&gt;&amp;lt;/acknowledge-mode&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class="xml-tag"&gt;&amp;lt;initial-context-environment&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="xml-tag"&gt;&amp;lt;property&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class="xml-tag"&gt;&amp;lt;name&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;Context.INITIAL_CONTEXT_FACTORY&lt;span class="xml-tag"&gt;&amp;lt;/name&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class="xml-tag"&gt;&amp;lt;value&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;org.apache.activemq.jndi.ActiveMQInitialContextFactory&lt;span class="xml-tag"&gt;&amp;lt;/value&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="xml-tag"&gt;&amp;lt;/property&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="xml-tag"&gt;&amp;lt;property&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class="xml-tag"&gt;&amp;lt;name&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;Context.PROVIDER_URL&lt;span class="xml-tag"&gt;&amp;lt;/name&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class="xml-tag"&gt;&amp;lt;value&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;tcp://localhost:61616&lt;span class="xml-tag"&gt;&amp;lt;/value&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="xml-tag"&gt;&amp;lt;/property&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class="xml-tag"&gt;&amp;lt;/initial-context-environment&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;/jms&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;/properties&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;channels&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;channel&lt;/span&gt; &lt;span class="xml-attribute"&gt;ref&lt;/span&gt;="my-amf"&lt;span class="xml-tag"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;/channels&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;adapter&lt;/span&gt; &lt;span class="xml-attribute"&gt;ref&lt;/span&gt;="jms"&lt;span class="xml-tag"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;/destination&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;/service&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;test.mxml&lt;/u&gt;&lt;br /&gt;The test.mxml is the final file.  It's the GUI code.  The file gets compiled into a swf file as I showed up above.  My version uses mx:Producer and mx:Consumer mxml tags, though you can also instantiate these using Actionscript if you'd like.  I prefer to write as little script as possible.  The main key in this file was that I had to subscribe the consumer to it's destination before it would consume messages.  Everything else is pretty simple, and you can see how easy it is to get a client sending and receiving messages to the server-side JMS broker over HTTP.  This is why I like Flex!&lt;br /&gt;&lt;pre  style="border: 1px solid blue; background: rgb(203, 232, 229) none repeat scroll 0% 0%; overflow: auto; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;font-size:small;"&gt;&lt;br /&gt;&lt;span class="ST0"&gt;&amp;lt;?&lt;/span&gt;&lt;span class="ST0"&gt;xml&lt;/span&gt; version="1.0" encoding="utf-8"?&amp;gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;mx:Application&lt;/span&gt; &lt;span class="xml-attribute"&gt;xmlns:mx&lt;/span&gt;='http://www.adobe.com/2006/mxml' &lt;span class="xml-attribute"&gt;xmlns:xsi&lt;/span&gt;='http://www.w3.org/2001/XMLSchema-instance'&lt;br /&gt;&lt;span class="xml-attribute"&gt;backgroundGradientColors&lt;/span&gt;="[0xcfe4ff, 0xffffff]" &lt;span class="xml-attribute"&gt;paddingTop&lt;/span&gt;="5" &lt;span class="xml-attribute"&gt;paddingLeft&lt;/span&gt;="5"&lt;br /&gt;&lt;span class="xml-attribute"&gt;paddingRight&lt;/span&gt;="5" &lt;span class="xml-attribute"&gt;paddingBottom&lt;/span&gt;="0" &lt;span class="xml-attribute"&gt;applicationComplete&lt;/span&gt;="logon()"&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;mx:Script&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-cdata-section"&gt;&amp;lt;![CDATA[&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-cdata-section"&gt;        import mx.rpc.events.FaultEvent;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-cdata-section"&gt;        import mx.messaging.*;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-cdata-section"&gt;        import mx.messaging.messages.*;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-cdata-section"&gt;        import mx.messaging.events.*;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-cdata-section"&gt;         import mx.controls.Alert;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="xml-cdata-section"&gt;        private function messageHandler(event:MessageEvent):void {&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-cdata-section"&gt;          receiveTextArea.text = event.message.body  + "\n" + receiveTextArea.text;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-cdata-section"&gt;        }&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-cdata-section"&gt;        private function acknowledgeHandler(event:MessageAckEvent):void{&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-cdata-section"&gt;        }&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-cdata-section"&gt;        private function faultHandler(event:MessageFaultEvent):void {&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-cdata-section"&gt;          Alert.show('Fault!', 'Alert Box', mx.controls.Alert.OK);&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-cdata-section"&gt;        }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="xml-cdata-section"&gt;        private function logon():void {&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-cdata-section"&gt;            consumer.subscribe();&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-cdata-section"&gt;         }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="xml-cdata-section"&gt;        private function sendMessage():void {&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-cdata-section"&gt;            var message:AsyncMessage = new AsyncMessage();&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-cdata-section"&gt;            message.body = sendTextArea.text;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-cdata-section"&gt;            producer.send(message);&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-cdata-section"&gt;            sendTextArea.text="";&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-cdata-section"&gt;        }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="xml-cdata-section"&gt;    ]]&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;/mx:Script&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;mx:Producer&lt;/span&gt; &lt;span class="xml-attribute"&gt;id&lt;/span&gt;="producer" &lt;span class="xml-attribute"&gt;destination&lt;/span&gt;="message-destination" &lt;span class="xml-attribute"&gt;acknowledge&lt;/span&gt;="acknowledgeHandler(event);" &lt;span class="xml-attribute"&gt;fault&lt;/span&gt;=" faultHandler(event)"&lt;span class="xml-tag"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;mx:Consumer&lt;/span&gt; &lt;span class="xml-attribute"&gt;id&lt;/span&gt;="consumer" &lt;span class="xml-attribute"&gt;destination&lt;/span&gt;="message-destination" &lt;span class="xml-attribute"&gt;message&lt;/span&gt;="messageHandler(event)" &lt;span class="xml-attribute"&gt;acknowledge&lt;/span&gt;="acknowledgeHandler(event);" &lt;span class="xml-attribute"&gt;fault&lt;/span&gt;=" faultHandler(event)"&lt;span class="xml-tag"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;mx:HBox&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;mx:TextInput&lt;/span&gt; &lt;span class="xml-attribute"&gt;id&lt;/span&gt;="sendTextArea"&lt;span class="xml-tag"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;mx:Button&lt;/span&gt; &lt;span class="xml-attribute"&gt;label&lt;/span&gt;="Send" &lt;span class="xml-attribute"&gt;click&lt;/span&gt;="sendMessage();"&lt;span class="xml-tag"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;/mx:HBox&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;mx:TextArea&lt;/span&gt; &lt;span class="xml-attribute"&gt;id&lt;/span&gt;="receiveTextArea" &lt;span class="xml-attribute"&gt;width&lt;/span&gt;="50%" &lt;span class="xml-attribute"&gt;height&lt;/span&gt;="200"&lt;span class="xml-tag"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml-tag"&gt;&amp;lt;/mx:Application&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The client app looks something like this:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_AaEVZWmrjQg/SCPHGBGt50I/AAAAAAAAAAU/kZkS-8sSiHs/s1600-h/flex.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_AaEVZWmrjQg/SCPHGBGt50I/AAAAAAAAAAU/kZkS-8sSiHs/s400/flex.png" alt="" id="BLOGGER_PHOTO_ID_5198217301105436482" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;In Conclusion, BlazeDS is an extremely simple way to use JMS with remote Flex clients over HTTP connections.  The back-end configuation is somewhat complex, but mostly boilerplate and not too bad once you piece it together.&lt;br /&gt;&lt;br /&gt; I haven't "stress" tested the messaging yet, or done very complex messaging to be able to say how robust and scalable it is, but so far, It does live up to it's claims.  Best of all, I can now do asynchronous messaging to remote clients without writing code.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1492374798042002505-55383405466401992?l=mmartinsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmartinsoftware.blogspot.com/feeds/55383405466401992/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1492374798042002505&amp;postID=55383405466401992' title='32 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1492374798042002505/posts/default/55383405466401992'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1492374798042002505/posts/default/55383405466401992'/><link rel='alternate' type='text/html' href='http://mmartinsoftware.blogspot.com/2008/05/simplified-blazeds-and-jms.html' title='Simplified BlazeDS and JMS'/><author><name>Michael Martin</name><uri>http://www.blogger.com/profile/06287331995903071075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_AaEVZWmrjQg/SCO0fxGt5zI/AAAAAAAAAAM/QuMESByv1C8/s72-c/layout.png' height='72' width='72'/><thr:total>32</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1492374798042002505.post-2582664789659945870</id><published>2008-04-23T09:06:00.004-06:00</published><updated>2008-04-23T09:18:18.718-06:00</updated><title type='text'>Java Self-Signed Certificates and Firefox 3 beta 5</title><content type='html'>A few weeks ago, I started having problems with Firefox 3 beta 5 and my self-signed certificates being used by some Tomcat servers.  Though I could add the certificate as an exception, Firefox 3 beta 5 would not let me get in.  I was using Java's keytool with the -genkeypair option to create the certificate.&lt;br /&gt;&lt;br /&gt;I recently discovered a solution.  keytool by default uses the DSA algorithm when generating the self-signed cert.  Earlier versions of Firefox accepted these keys without problem.  With Firefox 3 beta 5, using DSA doesn't work, but using RSA does.  Passing "-keyalg RSA" when generating the self-signed certificate creates a cert the Firefox 3 beta 5 fully accepts.&lt;br /&gt;&lt;br /&gt;I'm not sure if this is by Firefox design or not, but at least it's working for me.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1492374798042002505-2582664789659945870?l=mmartinsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmartinsoftware.blogspot.com/feeds/2582664789659945870/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1492374798042002505&amp;postID=2582664789659945870' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1492374798042002505/posts/default/2582664789659945870'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1492374798042002505/posts/default/2582664789659945870'/><link rel='alternate' type='text/html' href='http://mmartinsoftware.blogspot.com/2008/04/java-self-signed-certificates-and.html' title='Java Self-Signed Certificates and Firefox 3 beta 5'/><author><name>Michael Martin</name><uri>http://www.blogger.com/profile/06287331995903071075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1492374798042002505.post-1250802037464904047</id><published>2008-02-27T17:48:00.005-07:00</published><updated>2008-05-14T00:01:06.308-06:00</updated><title type='text'>More OpenLDAP</title><content type='html'>I tested OpenLDAP multimaster replication some more today.   I went back to the official relase version 2.4.8.  I ran my test on an AMD 64 bit machine with both servers on the same box--different ports and different installation folders.  Things ran fine for the most part.  Synchronization was consistent in loading and removing 5000 entries like this:&lt;br /&gt;&lt;br /&gt;&lt;pre style="border: 1px solid blue;"&gt;&lt;br /&gt;dn: cn=Fred XX_0,dc=mgm,dc=com&lt;br /&gt;objectClass: inetOrgPerson&lt;br /&gt;objectClass: top&lt;br /&gt;givenName: Fred&lt;br /&gt;sn: XX&lt;br /&gt;cn: Fred XX_0&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;I don't know much about the berkeley db, but my issues seemed to happen after abrupt shutdowns and what I think are database corruptions.  slapd cored on each server in the same place at different times during the testing:&lt;br /&gt;&lt;br /&gt;Server 1 Core:&lt;br /&gt;&lt;pre style="border: 1px solid blue; overflow: auto;"&gt;&lt;br /&gt;#0  is_ad_subtype (sub=0x0, super=0x832430) at ad.c:489&lt;br /&gt;#1  0x00000000004213a7 in attrs_find (a=0x936998, desc=0x832430) at attr.c:647&lt;br /&gt;#2  0x00000000004352bf in test_ava_filter (op=0x41801640, e=0x914a18, ava=0x41800fb0, type=163) at filterentry.c:617&lt;br /&gt;#3  0x0000000000435761 in test_filter (op=0x41801640, e=0x914a18, f=0x41800fd0) at filterentry.c:88&lt;br /&gt;#4  0x0000000000480d9b in bdb_search (op=0x41801640, rs=0x41800ec0) at search.c:845&lt;br /&gt;#5  0x0000000000470be2 in overlay_op_walk (op=0x41801640, rs=0x41800ec0, which=op_search, oi=0x87b2b0, on=0x0) at backover.c:653&lt;br /&gt;#6  0x00000000004710d5 in over_op_func (op=0x41801640, rs=0x41800ec0, which=op_search) at backover.c:705&lt;br /&gt;#7  0x000000000046a56e in syncrepl_entry (si=0x8a31b0, op=0x41801640, entry=0x90add8, modlist=0x418015a8, syncstate=1,&lt;br /&gt;   syncUUID=&lt;value optimized="" out=""&gt;, syncCSN=0x0) at syncrepl.c:1989&lt;br /&gt;#8  0x000000000046c395 in do_syncrep2 (op=0x41801640, si=0x8a31b0) at syncrepl.c:844&lt;br /&gt;#9  0x000000000046de8c in do_syncrepl (ctx=0x41801df0, arg=&lt;value optimized="" out=""&gt;) at syncrepl.c:1226&lt;br /&gt;#10 0x000000000041a692 in connection_read_thread (ctx=0x41801df0, argv=&lt;value optimized="" out=""&gt;) at connection.c:1213&lt;br /&gt;#11 0x00000000004fa6f4 in ldap_int_thread_pool_wrapper (xpool=0x83c890) at tpool.c:625&lt;br /&gt;#12 0x00000035f1e06407 in start_thread () from /lib64/libpthread.so.0&lt;br /&gt;#13 0x00000035f12d4b0d in clone () from /lib64/libc.so.6&lt;br /&gt;&lt;/value&gt;&lt;/value&gt;&lt;/value&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;After this happened, a restart of slapd would always hang on either server with this stack trace:&lt;br /&gt;&lt;br /&gt;&lt;pre style="border: 1px solid blue; overflow: auto;"&gt;&lt;br /&gt;#0  0x00000035f1e076dd in pthread_join () from /lib64/libpthread.so.0&lt;br /&gt;#1  0x00000000004e4501 in syncprov_db_open (be=0x8a27c0, cr=&lt;value optimized="" out=""&gt;) at syncprov.c:2632&lt;br /&gt;#2  0x0000000000470868 in over_db_func (be=0x8a27c0, cr=0x7fffad390610, which=&lt;value optimized="" out=""&gt;) at backover.c:62&lt;br /&gt;#3  0x0000000000427350 in backend_startup_one (be=0x8a27c0, cr=0x7fffad390610) at backend.c:224&lt;br /&gt;#4  0x000000000042761a in backend_startup (be=0x8a27c0) at backend.c:316&lt;br /&gt;#5  0x000000000040505a in main (argc=4, argv=0x7fffad3908d8) at main.c:932&lt;br /&gt;&lt;/value&gt;&lt;/value&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;I'm happy to see Gavin's interest in my blog.  It shows his dedication--a tribute to the OpenSource community.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1492374798042002505-1250802037464904047?l=mmartinsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmartinsoftware.blogspot.com/feeds/1250802037464904047/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1492374798042002505&amp;postID=1250802037464904047' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1492374798042002505/posts/default/1250802037464904047'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1492374798042002505/posts/default/1250802037464904047'/><link rel='alternate' type='text/html' href='http://mmartinsoftware.blogspot.com/2008/02/more-openldap.html' title='More OpenLDAP'/><author><name>Michael Martin</name><uri>http://www.blogger.com/profile/06287331995903071075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1492374798042002505.post-7324981337534327015</id><published>2008-02-27T11:14:00.004-07:00</published><updated>2008-02-27T11:56:14.245-07:00</updated><title type='text'>OpenLDAP MultiMaster Replication Redemption</title><content type='html'>After some tweaking of my slapd.conf, I was able to get multimaster replication working a lot more reliably than my earlier attempts.  I pulled in the latest source code - whatever was comitted to cvs after 2.4.8 release, and tested with this version.  Here is my current slapd.conf file syncrepl settings:&lt;br /&gt;&lt;br /&gt;&lt;pre style="border:1px solid blue"&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;#serverID       1  ldap://server1:9009&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;serverID       2&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;overlay syncprov&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;syncRepl rid=1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;        provider=ldap://server1:9009&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;        binddn="cn=Manager,dc=mgm,dc=com"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;        bindmethod=simple&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;        credentials=ldap&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;        searchbase="dc=mgm,dc=com"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;        type=refreshAndPersist&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;        retry="5 + 5 +"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;        interval=00:00:00:05&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;syncRepl rid=2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;        provider=ldap://server2:9009&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;        binddn="cn=Manager,dc=mgm,dc=com"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;        bindmethod=simple&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;        credentials=ldap&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;        searchbase="dc=mgm,dc=com"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;        type=refreshAndPersist&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;        retry="5 + 5 +"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;        interval=00:00:00:05&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;mirrormode      true&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;database monitor&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;   &lt;br /&gt;It seems if you switch replication types from refreshAndPersist to refreshOnly, things get messed up.  I prefer the refreshAndPersist.  I left the interval option in my config, though it's not used in refreshAndPersist mode.  Previously, my retry intervals were very short, so I think this is why I was getting un-predictable results in the number of entities replicated.    The timeouts may have been hit and I wasn't waiting long enough.&lt;br /&gt;&lt;br /&gt;I stress tested OpenLDAP much more than I have FDS.  I would stress test by ctrl-c'ing a running slapd process while thousands of adds or deletes were being done to another server.  Without hard stopping a server, replication seemed to work well.  With hard stopping the server, the only issue I had was sometimes the stopped server would freeze and hang when coming back up and performing an ldapsearch at the same time--some sort of connection deadlock or something.  I had to kill -9 slapd and start it again, then it would sync back up.  Under most situations, servers being killed and started and killed and started again would not be a common occurrence.&lt;br /&gt;&lt;br /&gt;I still saw a few SEGV's sometimes when bringing up a server after stopping it during bulk adds or deletes--like this one I just got.  I deleted 5000 entries on server1, then as server2 was processing the deletes, I ctrl-c'd server2.  Then bringing server2 back up.  I got this:&lt;br /&gt;&lt;br /&gt;&lt;pre style="border:1px solid blue;overflow:scroll"&gt;&lt;br /&gt;#0  0x00ace375 in memmove () from /lib/libc.so.6&lt;br /&gt;#1  0x0810a51c in bdb_dn2id_children (op=0x8d71028, txn=0x0, e=0x8be1cd4) at dn2id.c:351&lt;br /&gt;#2  0x0810606f in bdb_cache_children (op=0x8d71028, txn=0x0, e=0x8be1cd4) at cache.c:1008&lt;br /&gt;#3  0x080e4cac in bdb_hasSubordinates (op=0x8d71028, e=0x8be1cd4, hasSubordinates=0xa15caa0c) at operational.c:54&lt;br /&gt;#4  0x080e4e09 in bdb_operational (op=0x8d71028, rs=0xa168c168) at operational.c:101&lt;br /&gt;#5  0x080d3001 in overlay_op_walk (op=0x8d71028, rs=0xa168c168, which=op_aux_operational, oi=0x8b74868, on=0x8b74e38) at backover.c:653&lt;br /&gt;#6  0x080d351d in over_op_func (op=0x8d71028, rs=0xa168c168, which=op_aux_operational) at backover.c:705&lt;br /&gt;#7  0x0808066b in fe_aux_operational (op=0x8d71028, rs=0xa168c168) at backend.c:1868&lt;br /&gt;#8  0x080802b9 in backend_operational (op=0x8d71028, rs=0xa168c168) at backend.c:1885&lt;br /&gt;#9  0x08084531 in slap_send_search_entry (op=0x8d71028, rs=0xa168c168) at result.c:764&lt;br /&gt;#10 0x080e7953 in bdb_search (op=0x8d71028, rs=0xa168c168) at search.c:869&lt;br /&gt;#11 0x080d3001 in overlay_op_walk (op=0x8d71028, rs=0xa168c168, which=op_search, oi=0x8b74868, on=0x8b74e38) at backover.c:653&lt;br /&gt;#12 0x080d351d in over_op_func (op=0x8d71028, rs=0xa168c168, which=op_search) at backover.c:705&lt;br /&gt;#13 0x08076256 in fe_op_search (op=0x8d71028, rs=0xa168c168) at search.c:368&lt;br /&gt;#14 0x08076a47 in do_search (op=0x8d71028, rs=0xa168c168) at search.c:217&lt;br /&gt;#15 0x0807416c in connection_operation (ctx=0xa168c238, arg_v=0x8d71028) at connection.c:1084&lt;br /&gt;#16 0x080748e0 in connection_read_thread (ctx=0xa168c238, argv=0x10) at connection.c:1211&lt;br /&gt;#17 0x0816c9a4 in ldap_int_thread_pool_wrapper (xpool=0x8b4eea0) at tpool.c:663&lt;br /&gt;#18 0x00d0650b in start_thread () from /lib/libpthread.so.0&lt;br /&gt;#19 0x00b30b2e in clone () from /lib/libc.so.6&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Running slapd again and it came up just fine and synchronized started again.&lt;br /&gt;&lt;br /&gt;OpenLDAP multimaster replication is working a lot better than I first experienced.  The multimaster replication is not bullet proof, but it's probably adequate now for many situations.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1492374798042002505-7324981337534327015?l=mmartinsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmartinsoftware.blogspot.com/feeds/7324981337534327015/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1492374798042002505&amp;postID=7324981337534327015' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1492374798042002505/posts/default/7324981337534327015'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1492374798042002505/posts/default/7324981337534327015'/><link rel='alternate' type='text/html' href='http://mmartinsoftware.blogspot.com/2008/02/openldap-multimaster-replication.html' title='OpenLDAP MultiMaster Replication Redemption'/><author><name>Michael Martin</name><uri>http://www.blogger.com/profile/06287331995903071075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1492374798042002505.post-6850550852736745219</id><published>2008-02-24T09:31:00.002-07:00</published><updated>2008-02-24T09:51:59.205-07:00</updated><title type='text'>OpenDS Looks Promising</title><content type='html'>Sun's OpenDS project -- &lt;a href="https://opends.dev.java.net/"&gt;https://opends.dev.java.net/&lt;/a&gt; -- looks to be a very promising LDAP implementation.  I haven't gotten into it much, but as I installed it this morning, I was pleasantly surprised.&lt;br /&gt;&lt;br /&gt;The install was the easiest of FDS or OpenLDAP.  A nice gui steps you through the initial install.  Replication setup was simple, as the gui prompts you to identify another server already participating in the replication.  OpenDS, by default, supports multi-master replication.  I believe this is, in fact, the only replication it supports.  I think it would be useful to have the ability to force read-only replicated servers, but I didn't see if this was possible.&lt;br /&gt;&lt;br /&gt;I easily set up 3 servers on my machine ( a Dual-core Opteron 185 with 2GB of memory running Fedora 8 64bit ).  Using OpenDS, I generated the example ldif of 10k users, and loaded it up.  Replication started immediately.  OpenDS provides a nice, simple gui for simple monitoring, so it was easy to see the updates going to the other 2 servers.  participating in the replicated cluster.&lt;br /&gt;&lt;br /&gt;The ldif additions were slow--it took several minutes to load the 10k users.  My machine load went up past 7, and with running several servers, my computer was having to swap memory quite a bit.  During the load, I shut down one server, brought it up for a minute or two, then down and up again.  I wanted to see how this server would handle the synchronization when it was not up.&lt;br /&gt;&lt;br /&gt;When the load finished, the replicated server that stayed up the entire time, had the same number of entries as the server I loaded the ldif into--10,003.  The server I shut down, however, was about 50+ entries short with some errors in the replication log:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;[24/Feb/2008:09:22:26 -0700] category=SYNC severity=MILD_ERROR msgID=14876739 msg=Could not replay operation AddOperation(connID=-1, opID=47, dn=uid=user.1333,ou=People,dc=example,dc=com) with ChangeNumber 000001184c39fe467f4300000537 error Canceled &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Apart from that, OpenDS is off to an excellent start--especially for it's age.  It's by far the easiest server to get up and running.  I'll be watching as it matures to see how it performs and stabilizes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1492374798042002505-6850550852736745219?l=mmartinsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmartinsoftware.blogspot.com/feeds/6850550852736745219/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1492374798042002505&amp;postID=6850550852736745219' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1492374798042002505/posts/default/6850550852736745219'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1492374798042002505/posts/default/6850550852736745219'/><link rel='alternate' type='text/html' href='http://mmartinsoftware.blogspot.com/2008/02/opends-looks-promising.html' title='OpenDS Looks Promising'/><author><name>Michael Martin</name><uri>http://www.blogger.com/profile/06287331995903071075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1492374798042002505.post-6156850333435541376</id><published>2008-02-22T17:02:00.002-07:00</published><updated>2008-02-22T17:11:51.177-07:00</updated><title type='text'>OpenLDAP vs Fedora Directory Server (cont)</title><content type='html'>Today I tried to get OpenLDAP going one last time.  I erased the database on each machine and recompiled the code from scratch.  My simple 10-person adds and deletes were working and synchronizing ok, so I was starting to think it was working.  I bumped up the ldif to have 5000 names.  Synchronization started up, but then things went crazy and eventually one of the servers seg-faulted.  That was enough OpenLDAP for me. &lt;br /&gt;&lt;br /&gt;I went ahead and shut down OpenLDAP and fired up FDS.  In no time at all, I had a simple Master-slave replication set up and adding and removing 5000 names ( using ldapadd ) was working perfectly.  I still need to get it going in a multi-master setup--looks easy enough.&lt;br /&gt;&lt;br /&gt;My recommendation:  If you're jumping into LDAP, start up with FDS.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1492374798042002505-6156850333435541376?l=mmartinsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmartinsoftware.blogspot.com/feeds/6156850333435541376/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1492374798042002505&amp;postID=6156850333435541376' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1492374798042002505/posts/default/6156850333435541376'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1492374798042002505/posts/default/6156850333435541376'/><link rel='alternate' type='text/html' href='http://mmartinsoftware.blogspot.com/2008/02/openldap-vs-fedora-directory-server_22.html' title='OpenLDAP vs Fedora Directory Server (cont)'/><author><name>Michael Martin</name><uri>http://www.blogger.com/profile/06287331995903071075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1492374798042002505.post-8886200994209380474</id><published>2008-02-21T19:17:00.002-07:00</published><updated>2008-02-21T20:09:46.474-07:00</updated><title type='text'>OpenLDAP vs Fedora Directory Server</title><content type='html'>I was recently coming up to speed on LDAP.  Eager and ready, I got OpenLDAP version 2.4.7 and came up to speed with LDAP in general and had a server up and running fairly quickly.  &lt;br /&gt;&lt;br /&gt;While working with OpenLDAP, and editing and loading ldifs, I was quickly hoping some tool existed to manage the basic ldap tasks.  I installed phpLdapAdmin which seemed to do the job.  I enabled the ppolicy module and found out that trying to clear a users password inside phpLdapAdmin ( setting the text box to empty and then committing) caused OpenLDAP to exit with an assertion error.  Ouch!!  Determined that this was a pretty obvious bug, I found the latest source code had already fixed the issue.  I installed the patch, and no longer did slapd exit when setting an empty password.  &lt;br /&gt;&lt;br /&gt;Today, I noticed 2.4.8 was released which also had the password fix, so I pulled that in and upgraded.&lt;br /&gt;&lt;br /&gt;The next OpenLDAP task was to get multi-master replication up and going.  After getting two servers set up I was able to add a single user and remove it from either server.  Everything looked good.  I decided to try refreshOnly syncing instead of refreshAndPersist.  However, after changing the sync method on both servers, as soon as I restarted the servers and both servers connected, one would seg fault.  I changed both back to refreshAndPersist, tested the single add and delete, and went to the next step--bulk loads.&lt;br /&gt;&lt;br /&gt;I added 10 users to an ldiff.  When I loaded them up, all ten would load up fine into the local server, but only one or two users from the list would get replicated to the other server. After deleting and adding several times, I could never get all 10 to replicate.  I thought the computers not being ntp synced was an issue, but getting them synced up did not fix the issue.  &lt;br /&gt;&lt;br /&gt;I realize N-Way multi master has only been around since October or so.  It would appear to me, it's not yet ready for production use if you are planning to do multi-master replication.  &lt;br /&gt;&lt;br /&gt;While working with OpenLDAP, I learned about the existence of Fedora Directory Server, and running Fedora myself, I got that up and going too.  The experience has been completely different.  The initial setup was simple ( RPMS -- no compiles ).  The web-based java management tool is tons more functional than phpLdapAdmin, the documention is incredible, and it has yet to crash on me.  FDS now manages my simple home network user accounts, and is now my LDAP server of choice.&lt;br /&gt;&lt;br /&gt;Tomorrow, I will test FDS mult-master replication and report back on my findings.  The multi-master replication is more mature than OpenLDAPs, so I have high expectations.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1492374798042002505-8886200994209380474?l=mmartinsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmartinsoftware.blogspot.com/feeds/8886200994209380474/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1492374798042002505&amp;postID=8886200994209380474' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1492374798042002505/posts/default/8886200994209380474'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1492374798042002505/posts/default/8886200994209380474'/><link rel='alternate' type='text/html' href='http://mmartinsoftware.blogspot.com/2008/02/openldap-vs-fedora-directory-server.html' title='OpenLDAP vs Fedora Directory Server'/><author><name>Michael Martin</name><uri>http://www.blogger.com/profile/06287331995903071075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1492374798042002505.post-5136741551182835089</id><published>2008-01-01T16:38:00.001-07:00</published><updated>2008-01-01T16:38:31.569-07:00</updated><title type='text'>LVM Disk Striping vs Raid0</title><content type='html'>With the recent migration to Fedora 8, on my desktop I decided to put the root device onto a manually created striped lvm during Fedora's install with the default stripe size across the group of 2 partitions--one on each disk. &lt;br /&gt;&lt;br /&gt;Today, I ran hdparm -tT on the striped volume, but was discouraged by the Timing buffered disk reads--they maxed out about 60MB/sec -- pretty much the same as a normal partition without any raid or lvm striping.  I backed up the install, removed the lvms and stuck a Raid0 back on.  After restoring the backup, I'm back to some nice speed reads:&lt;br /&gt;&lt;br /&gt;/dev/md0:&lt;br /&gt; Timing cached reads:   1222 MB in  2.00 seconds = 611.27 MB/sec&lt;br /&gt; Timing buffered disk reads:  344 MB in  3.01 seconds = 114.25 MB/sec&lt;br /&gt;&lt;br /&gt;It would seem that LVM striping is no substitute for software Raid0.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1492374798042002505-5136741551182835089?l=mmartinsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmartinsoftware.blogspot.com/feeds/5136741551182835089/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1492374798042002505&amp;postID=5136741551182835089' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1492374798042002505/posts/default/5136741551182835089'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1492374798042002505/posts/default/5136741551182835089'/><link rel='alternate' type='text/html' href='http://mmartinsoftware.blogspot.com/2008/01/lvm-disk-striping-vs-raid0.html' title='LVM Disk Striping vs Raid0'/><author><name>Michael Martin</name><uri>http://www.blogger.com/profile/06287331995903071075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1492374798042002505.post-5253381217410683527</id><published>2007-12-31T20:33:00.000-07:00</published><updated>2007-12-31T20:55:40.910-07:00</updated><title type='text'>Cyrus mail server and Maildir conversion woes</title><content type='html'>Over the holiday break, I decided to switch from Ubuntu to Fedora Linux distribution.  In part, because I'll be using RedHat at work now, and also it seems Fedora is a little more bleeding edge--more on that in a future post.&lt;br /&gt;&lt;br /&gt;Anyway, Fedora uses Cyrus as the default imap server, so I installed it and read up to see what it offers over other mail servers.  Seems popular enough and feature rich.  The initial install was fine, but I then needed to convert my existing Maildir saved emails to Cyrus.  While the format of the files is the same, the file names themselves are different. &lt;br /&gt;&lt;br /&gt;After several attempts at various imap conversion tools to no avail--and I did not want to spend time making perl modules work and other various hacks--I tried my own little copy/rename script.  This worked, however, when Thunderbird went to pull in the 2000+ emails, it completely jacked up the cpu load and continuously spawned multiple imapd processes every minute or so.  I'm not sure if that was Thunderbird,Cyrus,or a residual effect of me doing raw copies of existing email files over.  Several hours later and almost reverting to a Maildir compatible server ( dovecot is bundled with Fedora 8 too ), I found a simple solution.&lt;br /&gt;&lt;br /&gt;I fired up Evolution and to my surprise, it supports direct Maildir folders in addition to imap/pop/etc.  After registering a Maildir server and my Cyrus imap server, it was just a matter of drag and drop from Maildir to the Cyrus server--no other cludges or complex imap scripts needed.&lt;br /&gt;&lt;br /&gt;I suppose the imap convert scripts ( mailutil, isync, etc ) serve a purpose, but it seems they are not without problems and several other hack scripts seem necessary to get them to work with a standalone Maildir folder.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1492374798042002505-5253381217410683527?l=mmartinsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmartinsoftware.blogspot.com/feeds/5253381217410683527/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1492374798042002505&amp;postID=5253381217410683527' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1492374798042002505/posts/default/5253381217410683527'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1492374798042002505/posts/default/5253381217410683527'/><link rel='alternate' type='text/html' href='http://mmartinsoftware.blogspot.com/2007/12/cyrus-mail-server-and-maildir.html' title='Cyrus mail server and Maildir conversion woes'/><author><name>Michael Martin</name><uri>http://www.blogger.com/profile/06287331995903071075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1492374798042002505.post-3860456262907437615</id><published>2007-11-13T22:56:00.000-07:00</published><updated>2007-11-13T23:01:43.105-07:00</updated><title type='text'>Jumping On</title><content type='html'>Here I go.  Jumping onto the blogger bandwagon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1492374798042002505-3860456262907437615?l=mmartinsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmartinsoftware.blogspot.com/feeds/3860456262907437615/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1492374798042002505&amp;postID=3860456262907437615' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1492374798042002505/posts/default/3860456262907437615'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1492374798042002505/posts/default/3860456262907437615'/><link rel='alternate' type='text/html' href='http://mmartinsoftware.blogspot.com/2007/11/jumping-on.html' title='Jumping On'/><author><name>Michael Martin</name><uri>http://www.blogger.com/profile/06287331995903071075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
