<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>RSS feed for InstantSpot site Blog of Dave</title><link>http://daveshuck.instantspot.com</link><description>Dave Shuck&apos;s ramblings on - ColdFusion, Flex, and Java, and life.</description><language>en-us</language><copyright>This work is Copyright &#xA9; 2010 by Blog of Dave</copyright><generator>RSSVille ColdFusion FeedMaker, version 1.0</generator><pubDate>Sun, 14 Mar 2010 07:44:34 GMT</pubDate><item><title>Naked Domains in Google App Engine with GoDaddy</title><link>http://daveshuck.instantspot.com/blog/2009/12/16/Naked-Domains-in-Google-App-Engine-with-GoDaddy/</link><description>I recently set up a new site (&lt;a href=&quot;http://www.hikethecanyon.org&quot;&gt;hikethecanyon.org&lt;/a&gt;) on the &lt;a href=&quot;http://appengine.google.com/&quot;&gt;Google App Engine&lt;/a&gt; running &lt;a href=&quot;http://www.openbluedragon.org&quot;&gt;OpenBlueDragon&lt;/a&gt;.&amp;nbsp; By default when you set up a new site on GAE (Google App Engine), you choose an ID for your application, which must be unique on their system as it also serves as the hostname of the URL like this: http://[your ID].appspot.com.&amp;nbsp;&amp;nbsp; For those that would like to use a different domain name, Google App Engine has mechanisms for doing so.&amp;nbsp; In the administration panel of your application, you can add a domain and then choose hostnames from that domain that the application should respond to.&amp;nbsp; However, it makes no provisions for serving the &quot;naked domain&quot;.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;What does this mean?&amp;nbsp; For my example of hikethecanyon.org, I originally set the site up with an id of &lt;b&gt;hikethecanyon-org &lt;/b&gt;which was initially served as &lt;b&gt;http://hikethecanyon-org.appspot.com&lt;/b&gt;.&amp;nbsp; After adding the domain hikethecanyon.org, I was able to add the host &quot;www&quot; so that it would respond to &lt;b&gt;http://www.hikethecanyon.org&lt;/b&gt;.&amp;nbsp; However, since GAE doesn&apos;t support naked domains, I was unable to set it up to respond to &lt;b&gt;http://hikethecanyon.org&lt;/b&gt;.&amp;nbsp; I was able find a workaround using GoDaddy&apos;s domain forwarding functionality.&amp;nbsp; While walking fellow CFML developer &lt;a href=&quot;http://blog.kukiel.net/&quot;&gt;Paul Kukiel&lt;/a&gt; through the process today, he mentioned that someone should blog this, so here it is with screenshots along the way &lt;i&gt;(edit - it appears that he decided to blog it himself as well!)&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;For my example, I am going to use a domain I have had sitting around doing nothing for a few years (j4n.org) and walk through the process with some screenshots and explanations along the way.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;First, you need to create your application in the GAE dashboard and deploy your application.&amp;nbsp; Many people have covered this topic in our community including Paul Kukiel and &lt;a href=&quot;http://www.aaronjlynch.com&quot;&gt;Aaron Lynch&lt;/a&gt;, so I will skip to the next step and assume that you have a running application on Google App Engine. As you can see below, I have set up an app with an ID of &lt;b&gt;j4n-org&lt;/b&gt; that is answering on &lt;b&gt;http://j4n-org.appspot.com&lt;/b&gt; which is just running a Mach-II skeleton application.&lt;br /&gt;&lt;div align=&quot;left&quot;&gt;&lt;img style=&quot;max-width: 800px;&quot; src=&quot;http://dl.dropbox.com/u/101948/blog/entries/naked_domains_gae/mach_ii_skeleton.png&quot; height=&quot;514&quot; width=&quot;600&quot; /&gt;&lt;br /&gt;&lt;br /&gt;The next thing that we want to do is add the &lt;b&gt;j4n.org&lt;/b&gt; domain to this application.&amp;nbsp; When you go into the GAE dashboard, you will see that option under the &quot;Application Settings&quot; section labeled &quot;Domain Setup&quot;&lt;br /&gt;&lt;br /&gt;&lt;img style=&quot;max-width: 800px;&quot; src=&quot;http://dl.dropbox.com/u/101948/blog/entries/naked_domains_gae/gae_admin_add_domain_button.png&quot; height=&quot;502&quot; width=&quot;600&quot; /&gt;&lt;br /&gt;&lt;br /&gt;On this page you will see a note that tells you that the domain you add must be set up for Google Apps, a service that allows all sorts of functionality, including email services and more.&amp;nbsp; NOTE:&amp;nbsp; You do not have to use any of those services, you simply need to sign up!&lt;br /&gt;&lt;br /&gt;&lt;img style=&quot;max-width: 800px;&quot; src=&quot;http://dl.dropbox.com/u/101948/blog/entries/naked_domains_gae/gae_google_app_required.png&quot; height=&quot;390&quot; width=&quot;600&quot; /&gt;&lt;br /&gt;&lt;br /&gt;By clicking the link that says &lt;b&gt;Sign up for Google Apps&lt;/b&gt;, you will be taken to a page like this:&lt;br /&gt;&lt;br /&gt;&lt;img style=&quot;max-width: 800px;&quot; src=&quot;http://dl.dropbox.com/u/101948/blog/entries/naked_domains_gae/google_app_enter_domain.png&quot; height=&quot;459&quot; width=&quot;600&quot; /&gt;&lt;br /&gt;&lt;br /&gt;Walk through the process filling out your personal information and you will come to a screen that looks like this:&lt;br /&gt;&lt;br /&gt;&lt;img style=&quot;max-width: 800px;&quot; src=&quot;http://dl.dropbox.com/u/101948/blog/entries/naked_domains_gae/google_app_create_cname_1.png&quot; height=&quot;455&quot; width=&quot;600&quot; /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;For our example, we are going to choose to create a new CNAME record in DNS to prove to Google that we own the domain.&amp;nbsp; By choosing that option&lt;br /&gt;&lt;br /&gt;&lt;img style=&quot;max-width: 800px;&quot; src=&quot;http://dl.dropbox.com/u/101948/blog/entries/naked_domains_gae/google_app_create_cname_2.png&quot; height=&quot;418&quot; width=&quot;600&quot; /&gt;&lt;br /&gt;&lt;br /&gt;At this point we need to go to the GoDaddy DNS manager and create a host name &lt;b&gt;google46353a9a2d07a035&lt;/b&gt; and point it to &lt;b&gt;google.com&lt;/b&gt;.&amp;nbsp; You can see what that looks like below:&lt;br /&gt;&lt;br /&gt;&lt;img style=&quot;max-width: 800px;&quot; src=&quot;http://dl.dropbox.com/u/101948/blog/entries/naked_domains_gae/godaddy_cname.png&quot; height=&quot;387&quot; width=&quot;600&quot; /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Once that record is in place we can go back to the Google Apps page and click the button labeled &lt;b&gt;I&apos;ve completed the steps above&lt;/b&gt;.&amp;nbsp; If all goes well, you will see a page directing you through additional setup.&amp;nbsp; For our purposes in this example, we are done with Google Apps for the time being.&amp;nbsp; Now we want to go back to the GAE dashboard and tell it that we want to use the &lt;b&gt;j4n.org&lt;/b&gt; domain.&lt;br /&gt;&lt;br /&gt;When you enter that domain you should see a message that looks like this:&lt;br /&gt;&lt;br /&gt;&lt;img style=&quot;max-width: 800px;&quot; src=&quot;http://dl.dropbox.com/u/101948/blog/entries/naked_domains_gae/gae_admin_add_domain_confirm.png&quot; height=&quot;480&quot; width=&quot;600&quot; /&gt;&lt;br /&gt;&lt;br /&gt;This will bring us back into the Google Apps control panel for the &lt;b&gt;j4n.org&lt;/b&gt; domain and we can add hostnames to our application like this:&lt;br /&gt;&lt;img style=&quot;max-width: 800px;&quot; src=&quot;http://dl.dropbox.com/u/101948/blog/entries/naked_domains_gae/google_app_add_www.png&quot; height=&quot;344&quot; width=&quot;600&quot; /&gt;&lt;br /&gt;&lt;br /&gt;When you click add you will see an page like the one below instructing you to add another CNAME to GoDaddy for the host &quot;www&quot;.&lt;br /&gt;&lt;br /&gt;&lt;img style=&quot;max-width: 800px;&quot; src=&quot;http://dl.dropbox.com/u/101948/blog/entries/naked_domains_gae/google_app_add_www_2.png&quot; height=&quot;445&quot; width=&quot;600&quot; /&gt;&lt;br /&gt;&lt;br /&gt;In the screen below you will see that we have successfully added the &quot;www&quot; host and while we were in there I went ahead and deleted the temporary CNAME that we had to create earlier to validate the ownership of the domain. &lt;br /&gt;&lt;br /&gt;&lt;img style=&quot;max-width: 800px;&quot; src=&quot;http://dl.dropbox.com/u/101948/blog/entries/naked_domains_gae/godaddy_add_www.png&quot; height=&quot;482&quot; width=&quot;600&quot; /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;At this point we can actually reach our application with the address &lt;b&gt;http://www.j4n.org&lt;/b&gt; as you see below:&lt;br /&gt;&lt;br /&gt;&lt;img style=&quot;max-width: 800px;&quot; src=&quot;http://dl.dropbox.com/u/101948/blog/entries/naked_domains_gae/www.j4n.org.png&quot; height=&quot;300&quot; width=&quot;600&quot; /&gt;&lt;br /&gt;&lt;br /&gt;While this is pretty cool and all, we still can&apos;t access our application with &lt;b&gt;http://j4n.org&lt;/b&gt;.&amp;nbsp; For this, we will count on GoDaddy to do the rest.&amp;nbsp; Go back into the GoDaddy domain manager look for this link:&lt;br /&gt;&lt;br /&gt;&lt;img style=&quot;max-width: 800px;&quot; src=&quot;http://dl.dropbox.com/u/101948/blog/entries/naked_domains_gae/godaddy_forward_manage.png&quot; height=&quot;376&quot; width=&quot;600&quot; /&gt;&lt;br /&gt;&lt;br /&gt;On the next page, you will want to fill out the field like you see before.&amp;nbsp; However, before you do, click the &quot;learn more&quot; link in the bottom left corner.&amp;nbsp; On that page there is a very important note:&amp;nbsp; &lt;u&gt;&lt;b&gt;For your domain to forward, your domain&apos;s A record must be &lt;code&gt;64.202.189.170&lt;/code&gt;.&lt;/b&gt;&amp;nbsp;&lt;/u&gt; If you note my DNS information above, that is not what the default parked domain IP is.&amp;nbsp; I won&apos;t bore you with yet another screen shot, but make sure you alter your domain&apos;s A record.&amp;nbsp; Now when we ping &lt;b&gt;j4n.org&lt;/b&gt; we get a response from 64.202.189.170.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;Once we enter in &lt;b&gt;www.j4n.org&lt;/b&gt; you can see that our plan is going to work by hitting the &quot;Preview&quot; link to the right and seeing a snapshot of our app!&lt;br /&gt;&lt;br /&gt;&lt;img style=&quot;max-width: 800px;&quot; src=&quot;http://dl.dropbox.com/u/101948/blog/entries/naked_domains_gae/godaddy_forward_add.png&quot; height=&quot;417&quot; width=&quot;600&quot; /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;You will notice that we accepted the default settings which actually does a 301 redirect from &lt;b&gt;http://j4n.org&lt;/b&gt; to &lt;b&gt;http://www.j4n.org&lt;/b&gt;.&amp;nbsp; This means that we will never actually see &lt;b&gt;http://j4n.org&lt;/b&gt; in the address bar after the page has loaded.&amp;nbsp; If you click on the advanced settings you can select &quot;masking&quot; which allows the url to remain in the address bar as http://j4n.org.&amp;nbsp; Each option has its own advantages.&amp;nbsp; Select what is right for your application and choose OK.&lt;br /&gt;&lt;br /&gt;That is all you need to do!&amp;nbsp; Now, a word of warning... we have all gotten spoiled by the seemingly instant DNS changes in recent years.&amp;nbsp; You will find that when you make this forwarding change, you may need to wait up to half an hour or so before you can see the finished product (your mileage may vary).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;zemanta-pixie&quot;&gt;&lt;img class=&quot;zemanta-pixie-img&quot; alt=&quot;&quot; src=&quot;http://img.zemanta.com/pixy.gif?x-id=384d57d8-afd1-8848-ba2b-41b2e1f9d6ba&quot; /&gt;&lt;/div&gt;</description><pubDate>Thu, 17 Dec 2009 03:11:47 GMT</pubDate><guid>http://daveshuck.instantspot.com/blog/2009/12/16/Naked-Domains-in-Google-App-Engine-with-GoDaddy/</guid><category>ColdFusion,Servers,Technology,Java</category></item><item><title>Talking through some current issues with ColdFusion Event Gateways</title><link>http://daveshuck.instantspot.com/blog/2009/11/09/Talking-through-some-current-issues-with-ColdFusion-Event-Gateways/</link><description>Normally on my blog I attempt to throw out some tip, trick, or nugget of some sort.&amp;nbsp; This time?&amp;nbsp; Not so!&amp;nbsp;&amp;nbsp; I am currently trying to find a solution to a problem at hand and am brainstorming the best way to handle a few things.&amp;nbsp; I am really just talking this out for my own benefit, but I would love to hear thoughts from others that have perhaps solved similar issues.&lt;br /&gt;&lt;br /&gt;On a project that I am currently engaged in I am leveraging ColdFusion Event Gateways which work as a subscriber to a SonicMQ JMS server.&amp;nbsp; My gateway instance listens for messages on the ESB (Enterprise Service Bus) on a particular destination name (topic/queue).&amp;nbsp; When it receives a message, it parses the XML that it received, and plays traffic cop pushing data into various services that need it.&amp;nbsp; I have this working flawlessly in my small development environment.&amp;nbsp; However, I have a couple of complexities ahead of me that I am having difficulty coming up with a good solution.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Running in the cloud - &lt;/b&gt;Our production environment will have any number of CF instances, not clustered, but rather running as isolated applications with a load balancer directing the requests using sticky sessions.&amp;nbsp; Our system will be bringing new instances on/off line as traffic traffic dictates.&amp;nbsp; I have yet to solve the issue of how to set up my JMS Event Gateway in this environment.&amp;nbsp; I definitely don&apos;t want 20 different listeners out there all doing the same work.&amp;nbsp; I have considered the idea of having some sort of a support database where a listener can insert a row with a specific JMS message ID and when any other server picks up a message with that ID it will see that it is already being acted upon and it can safely ignore it. There are a couple of negatives that I can see right off the bat.&amp;nbsp; First is that every single subscribed instance will have to pull in the same message and test to see whether or not it should be acted upon.&amp;nbsp; It just seems like a little bit of redundancy that shouldn&apos;t be there.&amp;nbsp; Secondly, there is a chance that two servers could pick up the same request within milliseconds of each other and both could end up doing the work.&amp;nbsp; Duplicate processing could not only be wasteful, but could also create some data integrity issues.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Different environments have different settings (dynamic config)&lt;/b&gt; - Right now in our development phase, we have a single config file with setting specific to our development JMS server (credentials, domain, URL, Initial Context Factory, etc).&amp;nbsp; However, soon I will need to have this process support a number of different environments: multiple dev environments, multiple integration environments, multiple QA environments, and eventually production.&amp;nbsp; Ideally it would be wonderful if I could find some way to load a specific config into the event gateway at server init time, but as of today I have _NO_ idea how to solve this one.&amp;nbsp; First, there is no real intrinsic indicator at the server level that lets it know what environment is currently running (yet anyway...) and secondly, ColdFusion event gateway architecture isn&apos;t conducive in any way to dynamically loading a specific config.&amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;So now I am counting on you CFML community.&amp;nbsp; Help me brain storm on this!&amp;nbsp; Do you have any thoughts/ideas that might help me here?&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;zemanta-pixie&quot;&gt;&lt;img class=&quot;zemanta-pixie-img&quot; alt=&quot;&quot; src=&quot;http://img.zemanta.com/pixy.gif?x-id=acb39c0d-d2f4-8647-b4f4-44e30f8e673e&quot; /&gt;&lt;/div&gt;</description><pubDate>Mon, 09 Nov 2009 16:28:07 GMT</pubDate><guid>http://daveshuck.instantspot.com/blog/2009/11/09/Talking-through-some-current-issues-with-ColdFusion-Event-Gateways/</guid><category>ColdFusion,Technology,Java</category></item><item><title>Solving java.lang.SecurityException: Seed must be between 20 and 64 bytes. Only 8 bytes supplied.</title><link>http://daveshuck.instantspot.com/blog/2009/05/08/Solving-javalangSecurityException-Seed-must-be-between-20-and-64-bytes-Only-8-bytes-supplied/</link><description>&lt;p&gt;Recently I have began working with JMS and ColdFusion, in which we are building a system that subscribes to an enterprise JMS server and picks up messages relevant to its needs and acts on them. I had my proof of concept working with the open source Apache ActiveMQ server and was very pleased with the results.&amp;nbsp; However, in our production environment, the powers that be decided to use the very non-free SonicMQ server.&lt;/p&gt; &lt;p&gt;As I tried to convert the event gateway over to the SonicMQ server, it failed on initialization with the following exception:&amp;nbsp; &lt;div class=&quot;code&quot; &gt;&lt;pre&gt;javax.naming.NamingException [Root exception is java.lang.SecurityException: Seed must be between 20 and 64 bytes. Only 8 bytes supplied.]  at com.sonicsw.jndi.mfcontext.MFConnectionManager.connect(Unknown Source)  at com.sonicsw.jndi.mfcontext.MFConnectionManager.&amp;lt;init&amp;gt;(Unknown Source)  at com.sonicsw.jndi.mfcontext.MFConnectionManager.getManager(Unknown Source)  at com.sonicsw.jndi.mfcontext.MFContext.&amp;lt;init&amp;gt;(Unknown Source)  at com.sonicsw.jndi.mfcontext.MFContextFactory.getInitialContext(Unknown Source)  at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:667)  at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)  at javax.naming.InitialContext.init(InitialContext.java:223)  at javax.naming.InitialContext.&amp;lt;init&amp;gt;(InitialContext.java:197)  at examples.JMS.JMSConsumer.start(Unknown Source)  at examples.JMS.JMSGateway.startGateway(Unknown Source)  at coldfusion.eventgateway.GenericGateway.start(GenericGateway.java:118)  at coldfusion.eventgateway.EventServiceImpl$GatewayStarter.run(EventServiceImpl.java:1428)&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt; &lt;p&gt;In my research on this problem, I found several people reporting similar errors, each on CF8, and each talking to 3rd party tools.&amp;nbsp; Eventually I found the solution through an email discussion between one of the developers in my company and an Adobe developer.&amp;nbsp; Apparently in CF8, they added FIPS security, which disables the Sun JCE (encryption libraries).&amp;nbsp; To solve this error, you need to add the following line to your java.args in your jvm.config file in JRun.&lt;div class=&quot;code&quot; &gt;&lt;pre&gt;-Dcoldfusion.disablejsafe=true&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt; &lt;p&gt;Now restart your server and try again!&lt;/p&gt;</description><pubDate>Fri, 08 May 2009 14:24:00 GMT</pubDate><guid>http://daveshuck.instantspot.com/blog/2009/05/08/Solving-javalangSecurityException-Seed-must-be-between-20-and-64-bytes-Only-8-bytes-supplied/</guid><category>ColdFusion,Java</category></item><item><title>`c-&gt;xlib.lock&apos; failed error on Java applications</title><link>http://daveshuck.instantspot.com/blog/2008/01/29/cxliblock-failed-error-on-Java-applications/</link><description>&lt;p&gt;I am currently using the Alpha 3 release of Ubuntu 8.04 Hardy Heron.&amp;nbsp; Considering the fact that it is an alpha release, I tend to not get worked up over little errors that might occur.&amp;nbsp; However, I have found one that I just couldn&apos;t get around.&amp;nbsp; I use Aqua Data Studio for my database client and since loading Hardy Heron, I have been unable to run it.&lt;br /&gt; &lt;br /&gt; When I would start it from a terminal, I would get a dump that looked like this:&lt;div class=&quot;code&quot; &gt;&lt;pre&gt;#0 /usr/lib/libxcb-xlib.so.0 [0x90d00767] #1 /usr/lib/libxcb-xlib.so.0(xcb_xlib_unlock+0x31) [0x90d008b1] #2 /usr/lib/libX11.so.6(_XReply+0xfd) [0x9039429d] #3 /usr/lib/jvm/java-6-sun-1.6.0.04/jre/lib/i386/xawt/libmawt.so [0x9063e8ce] #4 /usr/lib/jvm/java-6-sun-1.6.0.04/jre/lib/i386/xawt/libmawt.so [0x9061b067] #5 /usr/lib/jvm/java-6-sun-1.6.0.04/jre/lib/i386/xawt/libmawt.so [0x9061b318] #6 /usr/lib/jvm/java-6-sun-1.6.0.04/jre/lib/i386/xawt/libmawt.so(Java_sun_awt_X11GraphicsEnvironment_initDisplay+0x2f) [0x9061b61f] #7 [0xb4cff3aa] #8 [0xb4cf7f0d] #9 [0xb4cf7f0d] #10 [0xb4cf5249] #11 /usr/lib/jvm/java-6-sun-1.6.0.04/jre/lib/i386/server/libjvm.so [0x637338d] #12 /usr/lib/jvm/java-6-sun-1.6.0.04/jre/lib/i386/server/libjvm.so [0x64fd168] #13 /usr/lib/jvm/java-6-sun-1.6.0.04/jre/lib/i386/server/libjvm.so [0x6373220] #14 /usr/lib/jvm/java-6-sun-1.6.0.04/jre/lib/i386/server/libjvm.so(JVM_DoPrivileged+0x363) [0x63c90d3] #15 /usr/lib/jvm/java-6-sun-1.6.0.04/jre/lib/i386/libjava.so(Java_java_security_AccessController_doPrivileged__Ljava_security_PrivilegedAction_2+0x3d) [0xb7d1096d] #16 [0xb4cff3aa] #17 [0xb4cf7da7] #18 [0xb4cf5249] #19 /usr/lib/jvm/java-6-sun-1.6.0.04/jre/lib/i386/server/libjvm.so [0x637338d] java: xcb_xlib.c:82: xcb_xlib_unlock: Assertion &apos;c-&amp;gt;xlib.lock&apos; failed. Aborted (core dumped)&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt; &lt;br /&gt; Considering the fact that I used the Ubuntu sun-java6-jdk package from the Ubuntu repository, I decided that I would try the self-extracting bin that is available on &lt;a href=&quot;http://java.sun.com&quot;&gt;http://java.sun.com&lt;/a&gt;.&amp;nbsp; After swapping to that JVM, I still received the same dump and abort.&amp;nbsp; After doing a bit of searching, I came across a patch in one of the bug reporting forums that effectively patches your JVM and prevents this error from occurring.&amp;nbsp; I ran the patch and now everything works as it should. &amp;nbsp; If you are receiving this error, create a shell script with the following content and run it.&amp;nbsp; Assuming that it runs successfully, you should then be able to open the Java application that was failing.&lt;div class=&quot;code&quot; &gt;&lt;pre&gt;#!/bin/sh # S. Correia # 2007 11 21 # A simple script to patch the java library in order # to solve the problem with &amp;quot;Assertion &apos;c-&amp;gt;xlib.lock&apos; failed.&amp;quot; # see bug http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6532373 LIB_TO_PATCH=libmawt.so for f in &apos;find /usr/lib/jvm -name &amp;quot;$LIB_TO_PATCH&amp;quot;&apos; do echo &amp;quot;Patching library $f&amp;quot; sudo sed -i &apos;s/XINERAMA/FAKEEXTN/g&apos; &amp;quot;$f&amp;quot; done&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt; &lt;br /&gt; Big thanks to &amp;quot;S. Correia&amp;quot; for getting me back on my feet!&lt;/p&gt;</description><pubDate>Tue, 29 Jan 2008 21:16:00 GMT</pubDate><guid>http://daveshuck.instantspot.com/blog/2008/01/29/cxliblock-failed-error-on-Java-applications/</guid><category>Ubuntu,Java</category></item><item><title>Installing the JRE plugin in Firefox on Ubuntu</title><link>http://daveshuck.instantspot.com/blog/2008/01/18/Installing-the-JRE-plugin-in-Firefox-on-Ubuntu/</link><description>&lt;p&gt;I have now been using Ubuntu for about 2 years, and oddly enough one thing that has always evaded me is how to properly set up the JRE plugin in Firefox.  It *seems* like that ought to be an easy process, but it is one of those annoying little things that just hasn&apos;t worked for me, although it has never been important enough for me to chase down.&lt;/p&gt; &lt;p&gt;Yesterday I had to do a Webex presentation that required the JRE plugin, so I decided it was time to hack my way through it.   One thing that I was thinking my be a factor is that I use Swiftfox instead of Firefox.  I decided to take that out of the equation just to make sure, so I went ahead and removed it.  When running Firefox and hitting &lt;strong&gt;about:plugins&lt;/strong&gt; in the address bar, I could clearly see that the Java plugin was not in the list.  I looked in ~/.mozilla/plugins, and saw a libjavaplugin.so in there, but it was obviously not doing its job.&lt;/p&gt; &lt;p&gt;So, after a lot of floundering, here are the basic steps I took that got me going...&lt;/p&gt; &lt;ul&gt;     &lt;li&gt;First, I completely uninstalled Firefox:&lt;br /&gt;     &lt;strong&gt;$ sudo apt-get --purge remove firefox&lt;br /&gt;     &lt;/strong&gt;&lt;/li&gt;     &lt;li&gt;I then reinstalled it:&lt;strong&gt;&lt;br /&gt;     $ sudo apt-get install firefox&lt;br /&gt;     &lt;/strong&gt;&lt;/li&gt;     &lt;li&gt;Next, I had previously installed the sun-java2-bin package, so I wanted to wipe all evidence of that and reinstall it.  I did the following:&lt;br /&gt;     &lt;strong&gt;$ sudo apt-get --purge remove sun-java6-bin sun-java6-jre  sun-java6-plugin&lt;br /&gt;     &lt;/strong&gt;&lt;/li&gt;     &lt;li&gt;To reinistall it I did:&lt;br /&gt;     &lt;strong&gt;$ sudo apt-get install sun-java6-bin sun-java6-jre  sun-java6-plugin&lt;br /&gt;     &lt;/strong&gt;&lt;/li&gt;     &lt;li&gt;After doing this I opened Firefox and put &lt;strong&gt;about:plugins&lt;/strong&gt; and still didn&apos;t see the Java stuff.  At this point, I went into my ~/.mozilla/plugins directory.  From earlier attempts I had some libjavaplugin.so and libjavaplugin-[something I don&apos;t remember].so.  I decided to kill those off:&lt;br /&gt;     &lt;strong&gt;$ sudo rm libjavaplugin*&lt;br /&gt;     &lt;/strong&gt;&lt;/li&gt;     &lt;li&gt;At this point looking around I found a file  &lt;strong&gt;/etc/alternatives/firefox-javaplugin.so&lt;/strong&gt; that seemed like a decent candidate, so I did a symlink like this:&lt;br /&gt;     &lt;strong&gt;$ ln -s /etc/alternatives/firefox-javaplugin.so ./libjavaplugin.so&lt;/strong&gt;&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;At this point I restarted the browser, hit &lt;strong&gt;about:plugins&lt;/strong&gt; and was thrilled to see an entirely new section for Java!&lt;/p&gt; &lt;p&gt;Now, take the steps above with a grain of salt.  I certainly don&apos;t want to infer that this is by any means the right way to get it working, but it is the series of steps that finally got it working for me.  Hopefully someone else might get something out of it as well.&lt;/p&gt;</description><pubDate>Fri, 18 Jan 2008 13:59:00 GMT</pubDate><guid>http://daveshuck.instantspot.com/blog/2008/01/18/Installing-the-JRE-plugin-in-Firefox-on-Ubuntu/</guid><category>Ubuntu,Linux,Java</category></item><item><title>Grand Canyon... It&apos;s on!</title><link>http://daveshuck.instantspot.com/blog/2005/07/11/Grand-Canyon-Its-on/</link><description>My father and I decided that this was the year that we would hike the North Rim to the South Rim of the Grand Canyon.   I know this seems crazy, but it is actually a paperwork challenge to be able to hike the Grand Canyon.  There is an application process in which you have to fax your request in the 1st day of the month 6 months before the intended date of your trip with a detailed itinerary, including where you will be sleeping and when.  We sent faxed our paperwork in and held our breath on the 1st of April, 6 months before we hoped to go in September.  After no word for a month we finally contacted them, only to find out that we had been rejected.  Discouraged, but not beaten, we laid out the calendar to see if there was another time that would work.  We decided that November would be acceptable, albeit a little colder.  It should be in the 60s in the bottom of the canyon though where we will spend the majority of our time.  Once again, we laid out our itinerary and faxed in on July 1.  My dad received a letter today dated July 6, 2005 telling him that they were sorry, but they were unable to accept out application.  He spent a good hour walking around the house cussing and feeling terribly disappointed.  A bit later my mom noticed there was another letter from the Grand Canyon dated July 7, 2005.  &lt;br /&gt;  &lt;br /&gt;  &lt;div class=&quot;note&quot;&gt;  Dear Mr. Shuck, we have accepted your request to hike the Grand Canyon on the dates of November 1, 2 and 3, 2005.  Enlcosed are your passes, which you will need to affix to your backpack and carry with you in the canyon.  There is no need to stop by the back country headquarters before departing on the trail.  &lt;/div&gt;  So in 3.5 months, I will be taking this in....&lt;br /&gt;  &lt;div style=&quot;text-align: center&quot;&gt;  &lt;img src=&quot;/images/GrandCanyon.jpg&quot; border=&quot;0&quot; alt=&quot;&quot; /&gt;  &lt;/div&gt;      </description><pubDate>Mon, 11 Jul 2005 05:00:00 GMT</pubDate><guid>http://daveshuck.instantspot.com/blog/2005/07/11/Grand-Canyon-Its-on/</guid><category>Outdoors</category></item></channel></rss>