<?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-4416934381643413085</id><updated>2012-02-28T10:10:57.243Z</updated><category term='System Administration'/><category term='Mapping'/><category term='MySQL'/><category term='MOM'/><category term='MS Access'/><category term='Mobile Computing'/><category term='Web Services'/><category term='Security'/><category term='Java'/><category term='Web Administration'/><category term='Programming'/><category term='Amazon Cloud'/><category term='PHP'/><category term='Microsoft Azure'/><category term='Websphere'/><category term='Cloud Tools'/><category term='X-Cart'/><category term='Google API'/><category term='RFID'/><category term='Components'/><category term='Databases'/><category term='J2EE'/><category term='Design Patterns'/><category term='.NET'/><category term='Network Monitoring'/><category term='Four Js Genero'/><title type='text'>Untangle the Integration Knot</title><subtitle type='html'>This blog contains information about system integration, infrastructure, data exchange, middleware and cloud computing. Getting to grips with Web Services, SOA, ESB, MOM, EIA and more.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default?start-index=101&amp;max-results=100'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>118</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-8625223897907380776</id><published>2012-02-28T10:10:00.001Z</published><updated>2012-02-28T10:10:57.251Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='System Administration'/><title type='text'>Tune Up Paging with vmtouch</title><content type='html'>&lt;div class="MsoNormal"&gt;&lt;span lang="EN-IE"&gt;A nice tool I came across recently ‘vmtouch’ which is used to help you manage what data is in memory.&amp;nbsp; Its great when failing over from one machine to another where there is no active memory profile already.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-IE"&gt;To get started download vmtouch from here&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-IE"&gt;&lt;a href="http://hoytech.com/vmtouch/vmtouch.c"&gt;http://hoytech.com/vmtouch/vmtouch.c&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-IE"&gt;Then compile with the following &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-IE"&gt;gcc -Wall -O3 -o vmtouch vmtouch.c&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-IE"&gt;To find out how much of your /bin directory is in the file system cache run &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-IE"&gt;./vmtouch /bin&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-IE"&gt;You will see something similar to this&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-IE"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Files: 91&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-IE"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Directories: 1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-IE"&gt;&amp;nbsp; Resident Pages: 512/2115&amp;nbsp; 2M/8M&amp;nbsp; 24.2%&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-IE"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Elapsed: 0.002669 seconds&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-IE"&gt;If I want to check how much of mysqld is in the cache &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-IE"&gt;./vmtouch&amp;nbsp; /usr/libexec/mysqld&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-IE"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Files: 1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-IE"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Directories: 0&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-IE"&gt;&amp;nbsp; Resident Pages: 671/1886&amp;nbsp; 2M/7M&amp;nbsp; 35.6%&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-IE"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Elapsed: 0.00029 seconds&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-IE"&gt;Say you want to check how much of your mysql indexes are in cache this is two examples&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-IE"&gt;./vmtouch&amp;nbsp; /var/lib/mysql/xcart/xcart_products.MYI&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-IE"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Files: 1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-IE"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Directories: 0&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-IE"&gt;&amp;nbsp; Resident Pages: 5309/5309&amp;nbsp; 20M/20M&amp;nbsp; 100%&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-IE"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Elapsed: 0.001485 seconds&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-IE"&gt;./vmtouch&amp;nbsp; /var/lib/mysql/xcart/xcart_zone_element.MYI&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-IE"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Files: 1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-IE"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Directories: 0&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-IE"&gt;&amp;nbsp; Resident Pages: 0/1&amp;nbsp; 0/4K&amp;nbsp; 0%&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-IE"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Elapsed: 8.5e-05 seconds&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-IE"&gt;Now something nice you can do is you can daemonize and lock pages from a file in cache, an example of this might be an index for a database which you feel may benefit from been loaded in the page cache full-time.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-IE"&gt;To do this you use the –dl option (daemonize and lock)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-IE"&gt;So &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-IE"&gt;./vmtouch &amp;nbsp;-dl /var/lib/mysql/xcart/xcart_products.MYI&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-8625223897907380776?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/8625223897907380776/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2012/02/tune-up-paging-with-vmtouch.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/8625223897907380776'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/8625223897907380776'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2012/02/tune-up-paging-with-vmtouch.html' title='Tune Up Paging with vmtouch'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-4077494677938657114</id><published>2012-02-21T16:45:00.001Z</published><updated>2012-02-21T16:45:11.252Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Websphere'/><title type='text'>Removing Connections Between Nodes in Message Broker via Java API</title><content type='html'>import java.io.File;&lt;br /&gt;import java.io.IOException;&lt;br /&gt;import com.ibm.broker.config.appdev.MessageFlow;&lt;br /&gt;import com.ibm.broker.config.appdev.FlowRendererMSGFLOW;&lt;br /&gt;&lt;br /&gt;public class LoadMessageFlow&lt;br /&gt;{&lt;br /&gt;&amp;nbsp; &amp;nbsp; public static void main(String[] args)&lt;br /&gt;&amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; File oMsgFlowFile = new File("/root/ibm/myflow.msgflow");&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MessageFlow oMessageFlow = FlowRendererMSGFLOW.read(oMsgFlowFile);&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MQInputNode oNode1 = (MQInputNode) oMessageFlow.getNodeByName("Node1");&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MQOutputNode mNode2 = (MQOutputNode) oMessageFlow.getNodeByName("Node2");&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; oMessageFlow.disconnect(oNode1.OUTPUT_TERMINAL_OUT, oNode2.INPUT_TERMINAL_IN);&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-4077494677938657114?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/4077494677938657114/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2012/02/removing-connections-between-nodes-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/4077494677938657114'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/4077494677938657114'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2012/02/removing-connections-between-nodes-in.html' title='Removing Connections Between Nodes in Message Broker via Java API'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-3851626991738808570</id><published>2012-02-16T01:22:00.003Z</published><updated>2012-02-16T01:22:10.517Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='System Administration'/><title type='text'>Read Symantec Backup Exec Job Report XML Files</title><content type='html'>'----------------------------------------------------&lt;br /&gt;' Basic Routine to Read / Parse XML Job Reports created&lt;br /&gt;' by Symantec Backup Exec.&lt;br /&gt;&lt;br /&gt;Dim serverName, backupJobFile, el, jobName, startDateTime, endDateTime, jobStatus&lt;br /&gt;Dim fso,XMLDoc&lt;br /&gt;&lt;br /&gt;Set fso = CreateObject("Scripting.FileSystemObject")&lt;br /&gt;&lt;br /&gt;backupJobFile ="c:\xml\m.xml"&lt;br /&gt;&lt;br /&gt;Set xmlDoc = CreateObject("Msxml2.DOMDocument")&lt;br /&gt;&lt;br /&gt;xmlDoc.load(backupJobFile)&lt;br /&gt;&lt;br /&gt;Set el = xmlDoc.getElementsByTagName("machine_name")&lt;br /&gt;serverName = el.item(0).Text&lt;br /&gt;&lt;br /&gt;Set el = xmlDoc.getElementsByTagName("name")&lt;br /&gt;jobName = Replace(el.item(0).Text,"Job name: ","")&lt;br /&gt;&lt;br /&gt;Set el = xmlDoc.getElementsByTagName("start_time")&lt;br /&gt;startDateTime = Replace(el.item(0).Text,"Job started: ","")&lt;br /&gt;&lt;br /&gt;Set el = xmlDoc.getElementsByTagName("end_time")&lt;br /&gt;endDateTime = Replace(el.item(0).Text,"Backup completed on ","")&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;Set el = xmlDoc.getElementsByTagName("engine_completion_status")&lt;br /&gt;jobStatus = Replace(el.item(0).Text,"Job completion status: ","")&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;br /&gt;Wscript.Echo serverName&lt;br /&gt;Wscript.Echo jobName&lt;br /&gt;Wscript.Echo startDateTime&lt;br /&gt;Wscript.Echo endDateTime&lt;br /&gt;Wscript.Echo jobStatus&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-3851626991738808570?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/3851626991738808570/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2012/02/read-symantec-backup-exec-job-report.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/3851626991738808570'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/3851626991738808570'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2012/02/read-symantec-backup-exec-job-report.html' title='Read Symantec Backup Exec Job Report XML Files'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-5486303457926778632</id><published>2012-02-14T10:48:00.002Z</published><updated>2012-02-14T11:26:56.309Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Websphere'/><title type='text'>New Features in WebSphere MB v8</title><content type='html'>&lt;div&gt;A list of some new features in websphere Message Broker v8&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Better support for Microsoft Integration via the .NET Compute node and access to COM objects&lt;/li&gt;&lt;li&gt;Support for CLR based .NET languages including &amp;nbsp;C#, VB.NET.&lt;/li&gt;&lt;li&gt;Support for DFDL which now allows your message flow to parse a variety of other data formats.&lt;/li&gt;&lt;li&gt;Support for WS-ReliableMessaging (Web&amp;nbsp;Services Reliable Messaging)&lt;/li&gt;&lt;li&gt;Create message flows dynamically from your programs with a new command api&lt;/li&gt;&lt;li&gt;Record, edit and replay messages&lt;/li&gt;&lt;li&gt;Improved activity logging to easily understand broker behavior&lt;/li&gt;&lt;li&gt;Easy to use browser based web administration interface.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-5486303457926778632?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/5486303457926778632/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2012/02/new-features-in-websphere-mb-v8.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/5486303457926778632'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/5486303457926778632'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2012/02/new-features-in-websphere-mb-v8.html' title='New Features in WebSphere MB v8'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-5543259759579147058</id><published>2012-02-10T20:09:00.002Z</published><updated>2012-02-10T20:11:44.407Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><title type='text'>Creating a simple Alert / Success Message with ASP.NET/VB using Bootstrap</title><content type='html'>In your AddContact.aspx page use something like the following&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;div class="row-fluid"&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;div class="span6"&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;h2&amp;gt;New Contact&amp;lt;/h2&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/div&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;div class="span6"&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;asp:Label ID="AlertWindow" Visible="false" CssClass="alert alert-success" runat="server"&amp;gt;&amp;lt;/asp:Label&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/div&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/div&amp;gt;&lt;br /&gt;&lt;br /&gt;And in your AddContact.aspx.vb code use something similar to this. &amp;nbsp;Basically set the message for the alert window, make the alert window visible and set the approprate css style. &amp;nbsp;You can make this &amp;nbsp;alot cleaner with a set of classes to implement bootstrap for ASP.NET. &amp;nbsp;So this is just an example. &lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; ...... &lt;br /&gt;&amp;nbsp; &amp;nbsp; ...... &lt;br /&gt;&amp;nbsp; &amp;nbsp; AlertWindow.Visible = True &lt;br /&gt;&amp;nbsp; &amp;nbsp; Try&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ...... &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sSQLQuery = "INSERT INTO......"&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ...... &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; AlertWindow.Text = "New Contact Added Successfully"&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; AlertWindow.CssClass = "alert alert-success"&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ...... &lt;br /&gt;&amp;nbsp; &amp;nbsp; Catch ex As Exception&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ...... &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; AlertWindow.Text = "ERROR: Record not created." &amp;amp; ex.Message.ToString&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; AlertWindow.CssClass = "alert alert-error"&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ...... &lt;br /&gt;&amp;nbsp; &amp;nbsp; End Try&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ......&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-5543259759579147058?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/5543259759579147058/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2012/02/creating-simple-alert-success-message.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/5543259759579147058'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/5543259759579147058'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2012/02/creating-simple-alert-success-message.html' title='Creating a simple Alert / Success Message with ASP.NET/VB using Bootstrap'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-8221468758416255248</id><published>2012-02-09T09:27:00.000Z</published><updated>2012-02-09T09:27:46.062Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='MOM'/><title type='text'>Comparison of business integration software</title><content type='html'>While this may not be 100% up to date its a useful start if you wish to compare the various business integration and business process automation software available on the market.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Comparison_of_business_integration_software" target="_blank"&gt;http://en.wikipedia.org/wiki/Comparison_of_business_integration_software&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-8221468758416255248?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/8221468758416255248/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2012/02/comparison-of-business-integration.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/8221468758416255248'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/8221468758416255248'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2012/02/comparison-of-business-integration.html' title='Comparison of business integration software'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-5240981999523628063</id><published>2012-02-06T10:41:00.000Z</published><updated>2012-02-06T10:41:17.996Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Websphere'/><title type='text'>Using Linux / gcc / gsoap to call MBT SoapInput Node in Message Flow</title><content type='html'>Firstly download, configure, compile and install gsoap&lt;br /&gt;&lt;br /&gt;Step 1: get up and running&lt;br /&gt;mkdir gsoap&lt;br /&gt;wget&amp;nbsp;http://sourceforge.net/projects/gsoap2/files/gSOAP/gSOAP%202.7.16%20stable/gsoap_2.7.16.zip/download&lt;br /&gt;cd&amp;nbsp;/root/gsoap/gsoap-2.7&lt;br /&gt;yum install byacc&lt;br /&gt;yum install bison&lt;br /&gt;yum install flex&lt;br /&gt;./configure&lt;br /&gt;./make&lt;br /&gt;./make install&lt;br /&gt;&lt;br /&gt;Step 2: Setup working folder and create stubs from remote wsdl via URL. Note I'm just using plain old C and not C++.&lt;br /&gt;&lt;br /&gt;mkdir ./OrderService&lt;br /&gt;&lt;br /&gt;wsdl2h -c -o OrderService.h http://83.71.23.20:7800/acmeOrders/WADDR/ProcessOrders?wsdl&lt;br /&gt;&lt;div&gt;&lt;div&gt;soapcpp2 -c OrderService.h&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Step 3: Create your test C client using your fav editor (mine vi)&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;#include "soapH.h"&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;#include "OrderServiceSOAP.nsmap"&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;main()&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;{&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp;struct soap *soap = soap_new();&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp;struct _ns1__submitPORequest &amp;nbsp;request;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp;struct _ns1__submitPOResponse response;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp;request.partNo="1234";&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp;request.partQuantity=1;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp;request.personName.firstName="Trevor";&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp;request.personName.lastName="Trevor";&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp;request.address.street="Abbeydorney";&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp;request.address.city="Tralee";&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp;request.address.zipCode="N/A";&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp;soap_call___ns2__submitPO(soap,NULL,NULL,&amp;amp;request,&amp;amp;response);&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp;printf("\nPart No: %s",response.partNo);&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp;printf("\nQuantity: %d",response.partQuantity);&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp;printf("\nOrder Status: %s",response.orderStatus);&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp;printf("\nOrder Amount: %d",response.orderAmt);&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp;soap_end(soap);&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp;soap_free(soap);&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;}&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Step 4: Compile&lt;/div&gt;&lt;div&gt;&lt;div&gt;&amp;nbsp;gcc TestSoap.c soapC.c soapClient.c -lgsoap -o TestSoap&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Step 5: Run&lt;/div&gt;&lt;div&gt;./TestSoap&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The output&lt;/div&gt;&lt;div&gt;&lt;div&gt;Part No: 1234&lt;/div&gt;&lt;div&gt;Quantity: 1&lt;/div&gt;&lt;div&gt;Order Status: AVAILABLE&lt;/div&gt;&lt;/div&gt;&lt;div&gt;Order Amount: 50&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-5240981999523628063?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/5240981999523628063/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2012/01/using-linux-gcc-gsoap-to-call-mbt.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/5240981999523628063'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/5240981999523628063'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2012/01/using-linux-gcc-gsoap-to-call-mbt.html' title='Using Linux / gcc / gsoap to call MBT SoapInput Node in Message Flow'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-4427511421790847549</id><published>2012-02-06T10:40:00.000Z</published><updated>2012-02-06T10:40:46.859Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Websphere'/><title type='text'>Using Soap Client Library for C++ to Access IBM Message Broker Message Flow via  SoapInput Node</title><content type='html'>SQLData offers a SOAP client library which allows you to access web services using &amp;nbsp;C/C++ code. &amp;nbsp;With a few lines of code you can easily access a web service exposed from a SoapInput Node on Websphere Message Broker.&lt;br /&gt;&lt;br /&gt;Here is a short example, the trick is to store the parameters you wish to pass to the Web Service Method in two arrays, the first array in this instance pParams stores the parameter names as they appear in the WSDL e.g. partNo etc, note that parameters which have a nested structure within the WSDL, they must appear similar e.g. address.zipCode. &amp;nbsp;In the second array you store the values. Place a NULL at the end of each array.&lt;br /&gt;&lt;br /&gt;Here goes, compiled with Visual Studio 2008, Soap Client Library for C++ 3.6, IBM Message Broker 7.0, Message Broker Toolkit 7.0 and MQ 7.1&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;#include &amp;lt;windows.h&amp;gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;#include &amp;lt;tchar.h&amp;gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;#include "SoapClientApi.h"&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;#include "exportdef.h"&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;#include "stringdef.h"&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;#define DEBUG_MODE_ON 1&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;#define DEBUG_MODE_OFF 0&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;int WMB_submitPO(int);&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;int main(int argc, char **argv)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;{&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;WMB_submitPO(DEBUG_MODE_ON);&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;b style="color: #9fc5e8;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;return 0;&lt;/b&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;}&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;int WMB_submitPO(int nDebugMode)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;{&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;TCHAR *pParams[8]={TEXT("partNo"),&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;TEXT("partQuantity"),TEXT("personName.firstName"),&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;TEXT("personName.lastName"),TEXT("address.street"),&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;TEXT("address.city"),TEXT("address.zipCode"),&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;NULL};&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;TCHAR *pValues[8]={TEXT("1234"),&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;      &lt;/span&gt;TEXT("10"),TEXT("Trevor"),&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;      &lt;/span&gt;TEXT("O Connell"),TEXT("Abbeydorney"),&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;      &lt;/span&gt;TEXT("Tralee"),TEXT("N/A"),&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;      &lt;/span&gt;NULL};&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;const TCHAR * szResponse = NULL;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;SoapAgent *pSoapAgent;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="color: #9fc5e8; white-space: pre;"&gt;&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;pSoapAgent= MakeSoapAgent(NULL, NULL,4);&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;if(pSoapAgent==NULL)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;return -1;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;vector&amp;lt;tstring&amp;gt;* pOutputValues;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="color: #9fc5e8; white-space: pre;"&gt;&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;HRESULT hr;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;if(SUCCEEDED(hr=pSoapAgent-&amp;gt;ExecuteMethod(&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;TEXT("service.wsdl"), // WSDL file&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;TEXT("submitPO"),&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;// method name to be invoked.&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;pParams,&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;// vector of input parameter names.&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;pValues,&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;// vector of input parameter values.&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&amp;amp;pOutputValues&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;// pointer to vector of output parameters&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;)))&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;{&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;_tprintf("\nWeb Service Call Success");&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;szResponse = pSoapAgent-&amp;gt;GetResponse(NULL, true);&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;_tprintf("\nComplete Reponse : \n%s\n", szResponse);&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;else&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;{&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;_tprintf("\nWeb Service Call Failure");&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;DestroySoapAgent(pSoapAgent);&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;return 0;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;}&lt;/b&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-4427511421790847549?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/4427511421790847549/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2012/01/using-soap-client-library-for-c-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/4427511421790847549'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/4427511421790847549'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2012/01/using-soap-client-library-for-c-to.html' title='Using Soap Client Library for C++ to Access IBM Message Broker Message Flow via  SoapInput Node'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-518930428879509026</id><published>2012-02-03T14:19:00.000Z</published><updated>2012-02-03T14:19:04.725Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='MOM'/><title type='text'>Using ServiceMix to Poll Folder for files</title><content type='html'>xbean in ServiceMix to poll a particular folder for incoming orders, pass them on to service OrderProcess, move a copy to archive folder and delete original from inbox.&lt;br /&gt;&lt;br /&gt;&amp;lt;?xml version="1.0"?&amp;gt;&lt;br /&gt;&amp;lt;beans xmlns:f="http://servicemix.apache.org/file/1.0"&lt;br /&gt;&amp;nbsp; &amp;nbsp;xmlns:tut="http://www.servicemix.org/ns/jbi"&lt;br /&gt;&amp;nbsp; &amp;nbsp;xmlns:sm="http://servicemix.apache.org/config/1.0"&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;lt;f:poller&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; service="tut:orderfilePoller"&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; endpoint="pollEndpoint"&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; file="${file.poll.folder}"&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; targetService="ex:orderProcess"&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; period="${file.poll.period}"&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; deleteFile="${file.poll.delete}"&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; archive="${file.poll.archive}"&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; recursive="${file.poll.recursive}" /&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;lt;bean id="propertyConfigurer" &amp;nbsp;class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name="location"&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;value&amp;gt;file:${user.home}/esb/hunt.esb.properties&amp;lt;/value&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/property&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;lt;/bean&amp;gt;&lt;br /&gt;&amp;lt;/beans&amp;gt;&lt;br /&gt;&lt;br /&gt;hunt.esb.properties&lt;br /&gt;&lt;br /&gt;file.poll.folder="file://D://HUNT//ORDERS//INBOX"&lt;br /&gt;file.poll.period=10000&lt;br /&gt;file.poll.delete=true&lt;br /&gt;file.poll.recursive=false&lt;br /&gt;file.poll.archive="file://D://HUNT//ORDERS//SENT"&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-518930428879509026?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/518930428879509026/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2012/02/using-servicemix-to-poll-folder-for.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/518930428879509026'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/518930428879509026'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2012/02/using-servicemix-to-poll-folder-for.html' title='Using ServiceMix to Poll Folder for files'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-5215448099548802913</id><published>2012-02-03T02:20:00.003Z</published><updated>2012-02-03T02:26:24.873Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><title type='text'>Easy to use - Bootstrap, from Twitter</title><content type='html'>I like simplicity, in particular when it comes to UI design, its nice to have a clean, simple, less is more approach.&lt;br /&gt;&lt;br /&gt;Recently I came accross bootstrap from twitter and its all of the above. &lt;br /&gt;&lt;br /&gt;When you need to design a system that does not require a flashy front end this is ideal. Best about components like this is that they allow you to spend more time on the actual functionality or problem the solution is acutally solving.&lt;br /&gt;&lt;br /&gt;Check it out here&lt;br /&gt;&lt;br /&gt;http://twitter.github.com/bootstrap/index.html&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-hUCH_9nkNDQ/TytFyLFCgBI/AAAAAAAAACY/5FFqUL2Y1L8/s1600/ifi_shot.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="196" src="http://4.bp.blogspot.com/-hUCH_9nkNDQ/TytFyLFCgBI/AAAAAAAAACY/5FFqUL2Y1L8/s400/ifi_shot.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-5215448099548802913?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/5215448099548802913/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2012/02/easy-to-use-bootstrap-from-twitter.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/5215448099548802913'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/5215448099548802913'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2012/02/easy-to-use-bootstrap-from-twitter.html' title='Easy to use - Bootstrap, from Twitter'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-hUCH_9nkNDQ/TytFyLFCgBI/AAAAAAAAACY/5FFqUL2Y1L8/s72-c/ifi_shot.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-7406000141356640383</id><published>2012-02-02T03:46:00.001Z</published><updated>2012-02-02T03:47:03.059Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='MOM'/><title type='text'>ULTRAESB - Poll a directory for a file with a specific pattern and upload it with an authenticated HTTP PUT</title><content type='html'>&amp;lt;u:proxy id="file-proxy"&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;lt;u:transport id="file"&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;u:property name="url" value="file:///hunt/pixmania/orders/incoming"/&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;u:property name="fileNamePattern" value=".*\.pxml"/&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;u:property name="startDelay" value="1000"/&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;u:property name="repeatInterval" value="1000"/&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;!--&amp;lt;u:property name="concurrent" value="true"/&amp;gt;--&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;!--&amp;lt;u:property name="cronExpression" value="0 * * ? * MON-FRI"/&amp;gt;--&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;u:property name="moveAfterProcess" value="/hunt/pixmania/orders/processed"/&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;u:property name="moveAfterFailure" value="/hunt/pixmania/orders/failed"/&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;u:property name="moveTimestampFormat" value="yyyy_MM_dd_'T'HH_mm_ss.SSSSZ"/&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/u:transport&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;lt;u:target&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;u:inSequence&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;u:java&amp;gt;&amp;lt;![CDATA[&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; String fileName = msg.getFirstTransportHeader("FileName");&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; System.out.println("Got file : " + fileName);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mediation.addPreemptiveBasicAuthentication(msg, "trevor", "password");&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; msg.setContentType("text/xml");&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; msg.addMessageProperty("HTTP_METHOD", "PUT");&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ]]&amp;gt;&amp;lt;/u:java&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/u:inSequence&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;u:inDestination&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;u:address&amp;gt;http://192.168.0.1:7800/ProcessOrders/SubmitOrder&amp;lt;/u:address&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/u:inDestination&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/u:target&amp;gt;&lt;br /&gt;&amp;lt;/u:proxy&amp;gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-7406000141356640383?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/7406000141356640383/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2012/02/ultraesb-poll-directory-for-file-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/7406000141356640383'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/7406000141356640383'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2012/02/ultraesb-poll-directory-for-file-with.html' title='ULTRAESB - Poll a directory for a file with a specific pattern and upload it with an authenticated HTTP PUT'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-2256977851370004104</id><published>2012-02-02T00:35:00.003Z</published><updated>2012-02-02T00:44:09.965Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><title type='text'>Implement Observer Design Pattern in C# - Real World Example Brokers watching company Share Price</title><content type='html'>using System;&lt;br /&gt;using System.Collections.Generic;&lt;br /&gt;using System.Collections;&lt;br /&gt;using System.Linq;&lt;br /&gt;using System.Text;&lt;br /&gt;&lt;br /&gt;namespace ShareManager&lt;br /&gt;{&lt;br /&gt;&amp;nbsp; &amp;nbsp; abstract class Shares&lt;br /&gt;&amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; private string _companysymbol;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; private double _shareprice;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; private List&amp;lt;ShareHolder&amp;gt; _shareholders = new List&amp;lt;ShareHolder&amp;gt;();&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public Shares(string companysymbol, double shareprice)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this._companysymbol = companysymbol;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this._shareprice = shareprice;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public void Watch(ShareHolder shareholder)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; _shareholders.Add(shareholder);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public void Detach(ShareHolder shareholder)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; _shareholders.Remove(shareholder);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public void Notify()&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; foreach (ShareHolder shareholder in _shareholders)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; shareholder.Update(this);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Console.WriteLine("");&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public double SharePrice&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; get { return _shareprice; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; set&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (_shareprice != value)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; _shareprice = value;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Notify();&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // Gets the companysymbol&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public string CompanySymbol&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; get { return _companysymbol; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; class CompanyShare : Shares&lt;br /&gt;&amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public CompanyShare(string companysymbol, double shareprice)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : base(companysymbol, shareprice)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; interface ShareHolder&lt;br /&gt;&amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; void Update(Shares companysharevalue);&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; class Broker : ShareHolder&lt;br /&gt;&amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; private string _name;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public Broker(string name)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this._name = name;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public void Update(Shares companysharevalue)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Console.WriteLine("Notified broker {0} of {1}'s share price" +&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; " change to £{2:F}", _name, companysharevalue.CompanySymbol, companysharevalue.SharePrice);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; class ShareManager&lt;br /&gt;&amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; static void Main()&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CompanyShare _kg = new CompanyShare("Kerry Group", 26.00);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; _kg.Watch(new Broker("Davys"));&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; _kg.Watch(new Broker("Goodbodys"));&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; _kg.Watch(new Broker("NCB"));&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CompanyShare _aib = new CompanyShare("AIB", 0.55);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; _aib.Watch(new Broker("Davys"));&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; _aib.Watch(new Broker("Goodbodys"));&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; _aib.Watch(new Broker("NCB"));&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; _kg.SharePrice = 26.10;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; _kg.SharePrice = 26.30;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; _aib.SharePrice = 00.52;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; _kg.SharePrice = 26.75;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Console.ReadKey();&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;}&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-2256977851370004104?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/2256977851370004104/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2012/02/implement-observer-design-pattern-in-c.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/2256977851370004104'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/2256977851370004104'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2012/02/implement-observer-design-pattern-in-c.html' title='Implement Observer Design Pattern in C# - Real World Example Brokers watching company Share Price'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-1529596060809879198</id><published>2012-02-01T00:59:00.000Z</published><updated>2012-02-01T00:59:30.495Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><title type='text'>Basic Parallel Reduction in C#</title><content type='html'>using System;&lt;br /&gt;using System.Collections.Generic;&lt;br /&gt;using System.Linq;&lt;br /&gt;using System.Text;&lt;br /&gt;&lt;br /&gt;namespace ConsoleReduceApplicationTest&lt;br /&gt;{&lt;br /&gt;&amp;nbsp; &amp;nbsp; class Program&lt;br /&gt;&amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public class ReduceSimple&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; delegate T Func&amp;lt;T&amp;gt;(T arg0, T arg1);&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; T Reduce&amp;lt;T&amp;gt;(T[] input, T seed, Func&amp;lt;T&amp;gt; r)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; T result = seed;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; foreach (T e in input)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; result = r(result, e);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return result;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public void CheckReduce()&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int[] nums = new int[] { 1, 2, 5, 10, 1 };&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int sum = Reduce(nums, 0, (x, y) =&amp;gt; x + y);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int min = Reduce(nums, int.MaxValue, (x, y) =&amp;gt; x &amp;lt; y ? x : y);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int max = Reduce(nums, int.MinValue, (x, y) =&amp;gt; x &amp;gt; y ? x : y);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Console.WriteLine("Total Value=" + sum);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Console.WriteLine("Max Value=" + max);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Console.WriteLine("Min Value=" + min);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; static void Main(string[] args)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Console.WriteLine("Simple Program to Demonstrate Parallel Reduction in C#");&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ReduceSimple p = new ReduceSimple();&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; p.CheckReduce();&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Console.ReadLine();&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;}&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-1529596060809879198?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/1529596060809879198/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2012/02/basic-parallel-reduction-in-c.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/1529596060809879198'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/1529596060809879198'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2012/02/basic-parallel-reduction-in-c.html' title='Basic Parallel Reduction in C#'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-1329945550251439582</id><published>2012-01-31T20:14:00.005Z</published><updated>2012-02-01T00:23:21.340Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><title type='text'>Lock Free Stack Implementation in C#</title><content type='html'>This method compares destination to currentValue, and if they're equal sets destination to newValue and returns currentValue unchanged.&lt;br /&gt;&lt;br /&gt;If they aren't equal it just returns the value of destination.&lt;br /&gt;&lt;br /&gt;This is done in an atomic fashion i.e. no other thread can interrupt it. &amp;nbsp;In carrys out this in atomic fashion becasue its executed at hardware level with a single nstruction CMPXCH instruction.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;public class LockFreeStack&amp;lt;T&amp;gt; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; private volatile StackNode&amp;lt;T&amp;gt; m_head;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;private static bool CAS(ref Node&amp;lt;T&amp;gt; destination, Node&amp;lt;T&amp;gt; currentValue, Node&amp;lt;T&amp;gt; newValue)&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;{&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp;return&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;currentValue== Interlocked.CompareExchange&amp;lt;Node&amp;lt;T&amp;gt;&amp;gt;(ref &lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;destination, newValue, currentValue);&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; public void Push(T item) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; StackNode&amp;lt;T&amp;gt; node = new StackNode&amp;lt;T&amp;gt;(item);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; StackNode&amp;lt;T&amp;gt; head;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; do {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; head = m_head;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; node.m_next = head;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } while (m_head != head || CAS(ref m_head, node, head) != head);&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; public T Pop() {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; StackNode&amp;lt;T&amp;gt; head;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SpinWait s = new SpinWait();&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; while (true) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; StackNode&amp;lt;T&amp;gt; next;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; do {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; head = m_head;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (head == null) goto emptySpin;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; next = head.m_next;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } while (m_head != head || CAS(ref m_head, next, head) != head);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; emptySpin:&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; s.Spin();&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return head.m_value;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;class StackNode&amp;lt;T&amp;gt; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; internal T m_value;&lt;br /&gt;&amp;nbsp; &amp;nbsp; internal StackNode&amp;lt;T&amp;gt; m_next;&lt;br /&gt;&amp;nbsp; &amp;nbsp; internal StackNode(T val) { m_value = val; }&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-1329945550251439582?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/1329945550251439582/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2012/01/lock-free-stack-implementation-in-c.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/1329945550251439582'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/1329945550251439582'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2012/01/lock-free-stack-implementation-in-c.html' title='Lock Free Stack Implementation in C#'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-2569379351002111404</id><published>2012-01-31T19:34:00.003Z</published><updated>2012-02-06T10:39:22.748Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Websphere'/><title type='text'>Using Microsoft .NET (VS2010) with WebSphere Message Broker V8</title><content type='html'>I recently upgraded from MB7 and MBT7 to MB8 and MBT8&lt;br /&gt;&lt;br /&gt;One of the first features I wanted to try out was the ability for MBT8 to import a .NET assembly&lt;br /&gt;&lt;br /&gt;All was fine on the MBT8 side of things and I was able to create my basic Message Broker Project&lt;br /&gt;&lt;br /&gt;However when I launched Visual Studio C# and selected New Project&lt;br /&gt;&lt;br /&gt;I could not find any project templates for Message Broker&lt;br /&gt;&lt;br /&gt;To install these template project wizards I had to run the following from a command prompt&lt;br /&gt;&lt;br /&gt;&amp;nbsp;C:\Program Files\IBM\WMBT800\wmbt\vsixinstall.bat&lt;br /&gt;&lt;br /&gt;I assume the vsix stands for Visual Studio Extensions&lt;br /&gt;&lt;br /&gt;And it worked&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-2569379351002111404?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/2569379351002111404/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2012/01/using-microsoft-net-in-websphere.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/2569379351002111404'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/2569379351002111404'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2012/01/using-microsoft-net-in-websphere.html' title='Using Microsoft .NET (VS2010) with WebSphere Message Broker V8'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-5514401043174300311</id><published>2012-01-29T20:55:00.006Z</published><updated>2012-02-06T10:38:27.816Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Websphere'/><title type='text'>Ruby Talking to MBT SoapInput Node</title><content type='html'>This is a basic Ruby Script to engage with SoapInput Node running on localhost 7800 with MBT&lt;br /&gt;&lt;br /&gt;require 'net/http'&lt;br /&gt;require 'net/https'&lt;br /&gt;&lt;br /&gt;# Create te http object&lt;br /&gt;http = Net::HTTP.new('localhost', 7800)&lt;br /&gt;http.use_ssl = false&lt;br /&gt;path = '/acmeOrders/WADDR/ProcessOrders'&lt;br /&gt;&lt;br /&gt;# Create the SOAP Envelope&lt;br /&gt;data = &amp;lt;&amp;lt;-EOF&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="utf-8"?&amp;gt;&lt;br /&gt;&amp;lt;soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"&lt;br /&gt;&lt;br /&gt;xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&lt;br /&gt;&lt;br /&gt;xmlns:xsd="http://www.w3.org/2001/XMLSchema"&amp;gt;&lt;br /&gt;&amp;lt;soap:Body&amp;gt;&lt;br /&gt;&amp;lt;submitPORequest xmlns="http://www.acmeOrders.com/OrderService"&amp;gt;&lt;br /&gt;&amp;lt;partNo xmlns=""&amp;gt;11&amp;lt;/partNo&amp;gt;&lt;br /&gt;&amp;lt;partQuantity xmlns=""&amp;gt;0&amp;lt;/partQuantity&amp;gt;&lt;br /&gt;&amp;lt;personName xmlns=""&amp;gt;&lt;br /&gt;&amp;lt;firstName&amp;gt;Trevor&amp;lt;/firstName&amp;gt;&amp;lt;lastName&amp;gt;O Connell&amp;lt;/lastName&amp;gt;&lt;br /&gt;&amp;lt;/personName&amp;gt;&lt;br /&gt;&amp;lt;address xmlns=""&amp;gt;&lt;br /&gt;&amp;lt;street&amp;gt;DTM&amp;lt;/street&amp;gt;&lt;br /&gt;&amp;lt;city&amp;gt;DTM&amp;lt;/city&amp;gt;&lt;br /&gt;&amp;lt;zipCode&amp;gt;111&amp;lt;/zipCode&amp;gt;&lt;br /&gt;&amp;lt;/address&amp;gt;&lt;br /&gt;&amp;lt;/submitPORequest&amp;gt;&lt;br /&gt;&amp;lt;/soap:Body&amp;gt;&lt;br /&gt;&amp;lt;/soap:Envelope&amp;gt;&lt;br /&gt;EOF&lt;br /&gt;&lt;br /&gt;# Post the request&lt;br /&gt;resp, data = http.post(path, data)&lt;br /&gt;&lt;br /&gt;# Output the results&lt;br /&gt;puts 'Code = ' + resp.code&lt;br /&gt;puts 'Message = ' + resp.message&lt;br /&gt;resp.each { |key, val| puts key + ' = ' + val }&lt;br /&gt;puts data&lt;br /&gt;&lt;br /&gt;Expected results&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-zZOkUATJL14/TyW0wBBH91I/AAAAAAAAACA/bB0clJnA5fY/s1600/Start+Command+Prompt+with+Ruby_2012-01-29_21-05-19.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="158" src="http://1.bp.blogspot.com/-zZOkUATJL14/TyW0wBBH91I/AAAAAAAAACA/bB0clJnA5fY/s320/Start+Command+Prompt+with+Ruby_2012-01-29_21-05-19.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Code = 200&lt;br /&gt;Message = OK&lt;br /&gt;connection = close&lt;br /&gt;content-length = 366&lt;br /&gt;content-type = text/xml;charset=utf-8&lt;br /&gt;date = Sun, 29 Jan 2012 20:53:54 GMT&lt;br /&gt;server = Apache-Coyote/1.1&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="utf-8"?&amp;gt;&lt;br /&gt;&amp;lt;soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"&amp;gt;&lt;br /&gt;&amp;lt;soapenv:Body&amp;gt;&lt;br /&gt;&amp;lt;NS1:submitPOResponse xmlns:NS1="http://www.acmeOrders.com/OrderService"&amp;gt;&lt;br /&gt;&amp;lt;orderStatus&amp;gt;AVAILABLE&amp;lt;/orderStatus&amp;gt;&amp;lt;or&lt;br /&gt;derAmt&amp;gt;50&amp;lt;/orderAmt&amp;gt;&amp;lt;partNo&amp;gt;11&amp;lt;/partNo&amp;gt;&amp;lt;partQuantity&amp;gt;0&amp;lt;/partQuantity&amp;gt;&lt;br /&gt;&amp;lt;/NS1:submitPOResponse&amp;gt;&lt;br /&gt;&amp;lt;/soapenv:Body&amp;gt;&lt;br /&gt;&amp;lt;/soapenv:Envelope&amp;gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-5514401043174300311?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/5514401043174300311/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2012/01/ruby-talking-to-mbt-soapinput-node.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/5514401043174300311'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/5514401043174300311'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2012/01/ruby-talking-to-mbt-soapinput-node.html' title='Ruby Talking to MBT SoapInput Node'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-zZOkUATJL14/TyW0wBBH91I/AAAAAAAAACA/bB0clJnA5fY/s72-c/Start+Command+Prompt+with+Ruby_2012-01-29_21-05-19.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-4516321037430410511</id><published>2012-01-29T17:10:00.004Z</published><updated>2012-01-29T17:16:01.005Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Websphere'/><title type='text'>Testing MBT SoapInput Node from VB.NET</title><content type='html'>Once you've loaded and deploy the SOAP Node Samples project you can add a web service reference in Visual Studio 2088 (Project / Add Web Reference). Enter the URL http://localhost:7800/acmeOrders/WADDR/ProcessOrders?wsdl&lt;br /&gt;&lt;br /&gt;In my case I added the reference name "orders"&lt;br /&gt;&lt;br /&gt;So from within my Visual Basic.NET code &lt;br /&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;Dim vOrders As New orders.OrderService()&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;b style="color: #9fc5e8;"&gt;Dim vRequest As New orders.submitPORequest()&lt;/b&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;Dim vResponse As New orders.submitPOResponse()&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;b style="color: #9fc5e8;"&gt;vRequest.partNo = tPartNo.Text&lt;/b&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;vRequest.address = New orders.submitPORequestAddress()&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;vRequest.personName = New orders.submitPORequestPersonName()&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;vRequest.personName.firstName = tFirstname.Text&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;vRequest.personName.lastName = tLastname.Text&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;vRequest.address.street = tStreet.Text&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;vRequest.address.zipCode = tZipCode.Text&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;vRequest.address.city = tCity.Text&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;vResponse = vOrders.submitPO(vRequest)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #9fc5e8;"&gt;&lt;b&gt;tStatus.Text = vResponse.orderStatus&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Below is a screenshot.  Its nothing too difficult but it just gets your VB.NET application talking with an MBT Message Flow.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-kmgYqE3uO_U/TyV84lPsuqI/AAAAAAAAAB4/8_TPIMQFa8Q/s1600/Message%2BBroker%2BSoap%2BNode%2BTest%2BSuite_2012-01-29_17-06-21.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="313" src="http://2.bp.blogspot.com/-kmgYqE3uO_U/TyV84lPsuqI/AAAAAAAAAB4/8_TPIMQFa8Q/s320/Message%2BBroker%2BSoap%2BNode%2BTest%2BSuite_2012-01-29_17-06-21.png" width="302" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-4516321037430410511?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/4516321037430410511/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2012/01/testing-mbt-soapinput-node-from-vbnet.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/4516321037430410511'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/4516321037430410511'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2012/01/testing-mbt-soapinput-node-from-vbnet.html' title='Testing MBT SoapInput Node from VB.NET'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-kmgYqE3uO_U/TyV84lPsuqI/AAAAAAAAAB4/8_TPIMQFa8Q/s72-c/Message%2BBroker%2BSoap%2BNode%2BTest%2BSuite_2012-01-29_17-06-21.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-6224289588499105587</id><published>2012-01-27T18:10:00.003Z</published><updated>2012-02-06T10:38:41.672Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Websphere'/><title type='text'>MBT/ESQL : Reduce CPU Load - Access nth Element in Array using Reference</title><content type='html'>How to reference variables to access elements of an array.&lt;br /&gt;&lt;br /&gt;DECLARE ref REFERENCE TO OutputRoot.XML.Invoice.SalesOrders.Item[1];&lt;br /&gt;&lt;br /&gt;WHILE LASTMOVE(ref)=TRUE DO&lt;br /&gt;SET ref = ref + 1;&lt;br /&gt;MOVE ref NEXTSIBLING;&lt;br /&gt;END WHILE;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-6224289588499105587?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/6224289588499105587/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2012/01/reduce-cpu-load-accessing-nth-element.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/6224289588499105587'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/6224289588499105587'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2012/01/reduce-cpu-load-accessing-nth-element.html' title='MBT/ESQL : Reduce CPU Load - Access nth Element in Array using Reference'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-8177390544902326657</id><published>2012-01-25T16:50:00.001Z</published><updated>2012-01-25T16:51:07.838Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Cloud Tools'/><title type='text'>Cloud based logging service</title><content type='html'>Loggly is a cloud based logging service. It helps you collect, index, and store all your log data with the help of Solr&lt;br /&gt;&lt;br /&gt;&lt;iframe src="http://player.vimeo.com/video/32717880?title=0&amp;amp;byline=0&amp;amp;portrait=0" width="400" height="225" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-8177390544902326657?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/8177390544902326657/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2012/01/cloud-based-logging-service.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/8177390544902326657'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/8177390544902326657'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2012/01/cloud-based-logging-service.html' title='Cloud based logging service'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-1938203136956690730</id><published>2012-01-23T15:11:00.001Z</published><updated>2012-01-23T15:11:38.638Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Websphere'/><title type='text'>Dynamic Email from MBT/ESQL</title><content type='html'>CREATE COMPUTE MODULE Send_Mail&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;CREATE FUNCTION Main() RETURNS BOOLEAN&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;BEGIN&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;-- CALL CopyMessageHeaders();&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;-- CALL CopyEntireMessage();&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;CALL CopyMessageHeaders();&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;-- Add recipient information to the EmailOutputHeader&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;SET OutputRoot.EmailOutputHeader.To = 'info@dtm.ie';&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;-- Add sender information to EmailOutputHeader&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;SET OutputRoot.EmailOutputHeader.From = 'trevor.oconnell@dtm.ie';&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;-- Add subject to EmailOutputHeader&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;SET OutputRoot.EmailOutputHeader.Subject = 'Test.';&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;-- Add SMTP server information to the LocalEnvironment&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;SET OutputLocalEnvironment.Destination.Email.SMTPServer ='mail.dtm.ie:25';&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;SET OutputLocalEnvironment.Destination.Email.SecurityIdentity ='MyIdentity';&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;-- Create a new message body, which will be sent as the main text of the email.&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;SET OutputRoot.BLOB.BLOB = CAST('This is the new text for the body of the email.' AS BLOB CCSID 1208); &amp;nbsp;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;RETURN TRUE;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;END;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;CREATE PROCEDURE CopyMessageHeaders() BEGIN&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;DECLARE I INTEGER 1;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;DECLARE J INTEGER;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;SET J = CARDINALITY(InputRoot.*[]);&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;WHILE I &amp;lt; J DO&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;SET OutputRoot.*[I] = InputRoot.*[I];&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;SET I = I + 1;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;END WHILE;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;END;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;CREATE PROCEDURE CopyEntireMessage() BEGIN&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;SET OutputRoot = InputRoot;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;END;&lt;br /&gt;END MODULE;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-1938203136956690730?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/1938203136956690730/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2012/01/create-compute-module-sendmail-create.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/1938203136956690730'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/1938203136956690730'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2012/01/create-compute-module-sendmail-create.html' title='Dynamic Email from MBT/ESQL'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-6182307004707857331</id><published>2012-01-20T19:01:00.002Z</published><updated>2012-01-20T19:02:01.301Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Security'/><title type='text'>What's wrong with certificate warnings? How can we abolish them?</title><content type='html'>A new proposal called "Sovereign Keys", which is intended to resolve weaknesses in the way that encrypted Internet protocols perform authentication for applications such as web servers and mail servers.&lt;br /&gt;&lt;br /&gt;Hopefully get rid of those nasty certificate warning messages that no one except techies understand, and even for techies they can be a struggle at times.&lt;br /&gt;&lt;a href="https://www.eff.org/deeplinks/2011/11/sovereign-keys-proposal-make-https-and-email-more-secur" target="_blank"&gt;More on Sovereign Keys&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-6182307004707857331?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/6182307004707857331/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2012/01/whats-wrong-with-certificate-warnings.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/6182307004707857331'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/6182307004707857331'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2012/01/whats-wrong-with-certificate-warnings.html' title='What&apos;s wrong with certificate warnings? How can we abolish them?'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-283935166863904978</id><published>2012-01-20T01:27:00.001Z</published><updated>2012-01-20T01:28:16.790Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Websphere'/><title type='text'>MBT/ESQL to Modify XML element names</title><content type='html'>&amp;lt;Shares&amp;gt;&lt;br /&gt;&amp;lt;Kerry&amp;gt;5&amp;lt;/Kerry&amp;gt;&lt;br /&gt;&amp;lt;Fexco&amp;gt;12&amp;lt;/Fexco&amp;gt;&lt;br /&gt;&amp;lt;AIB&amp;gt;40&amp;lt;/AIB&amp;gt;&lt;br /&gt;&amp;lt;/Shares&amp;gt; &lt;br /&gt;&lt;br /&gt;Change AIB to BOI instead, Feed XML in to XMLNS format MQ Input Node, Create &amp;nbsp;MQIN&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;CREATE FUNCTION Main() RETURNS BOOLEAN&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;BEGIN&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;-- CALL CopyMessageHeaders();&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;-- CALL CopyEntireMessage();&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;SET OutputRoot.XMLNS.Data = ROW(InputBody.Shares.Kerry,&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;InputBody.Shares.Fexco,&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;(InputBody.Shares.AIB) AS BOI);&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;RETURN TRUE;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;END;&lt;br /&gt;&lt;br /&gt;Receive output in MQ Output Node MQOUT&lt;br /&gt;&lt;br /&gt;&amp;lt;Data&amp;gt;&lt;br /&gt;&amp;lt;Kerry&amp;gt;5&amp;lt;/Kerry&amp;gt;&lt;br /&gt;&amp;lt;Fexco&amp;gt;12&amp;lt;/Fexco&amp;gt;&lt;br /&gt;&amp;lt;BOI&amp;gt;40&amp;lt;/BOI&amp;gt;&lt;br /&gt;&amp;lt;/Data&amp;gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-283935166863904978?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/283935166863904978/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2012/01/mbtesql-to-modify-xml-element-names.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/283935166863904978'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/283935166863904978'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2012/01/mbtesql-to-modify-xml-element-names.html' title='MBT/ESQL to Modify XML element names'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-4832409447696213876</id><published>2012-01-20T00:00:00.003Z</published><updated>2012-01-20T00:00:48.208Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Websphere'/><title type='text'>Basic Receive Message to MQ with Java and IBM MQ JMS</title><content type='html'>package my.mq.samples;&lt;br /&gt;&lt;br /&gt;import javax.jms.JMSException;&lt;br /&gt;import javax.jms.Session;&lt;br /&gt;import javax.jms.TextMessage;&lt;br /&gt;import com.ibm.mq.jms.MQQueue;&lt;br /&gt;import com.ibm.mq.jms.MQQueueConnection;&lt;br /&gt;import com.ibm.mq.jms.MQQueueConnectionFactory;&lt;br /&gt;import com.ibm.mq.jms.MQQueueReceiver;&lt;br /&gt;import com.ibm.mq.jms.MQQueueSession;&lt;br /&gt;import com.ibm.msg.client.wmq.WMQConstants;&lt;br /&gt;&lt;br /&gt;public class MQReceive {&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;public static void main(String[] args)&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;{&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;try {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;MQQueueConnectionFactory cf = new MQQueueConnectionFactory();&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;cf.setHostName("localhost");&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;cf.setPort(1414);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;cf.setIntProperty(WMQConstants.WMQ_CONNECTION_MODE, WMQConstants.WMQ_CM_CLIENT);&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;cf.setQueueManager("QM_GRIDSERVER");&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;cf.setChannel("SYSTEM.ADMIN.SVRCONN");&lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;MQQueueConnection connection = (MQQueueConnection) cf.createQueueConnection();&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;//MQQueueConnection connection = (MQQueueConnection) cf.createQueueConnection("username","password");&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt; &amp;nbsp; &lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;MQQueueSession session = (MQQueueSession) connection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;MQQueue queue = (MQQueue) session.createQueue("queue:///MyTestQueue");&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;MQQueueReceiver receiver = (MQQueueReceiver) session.createReceiver(queue);&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;connection.start();&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;     &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;TextMessage receivedMessage = (TextMessage) receiver.receive();&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;System.out.println("Received message from Queue MyTestQueue: " + receivedMessage.getText());&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;receiver.close();&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;session.close();&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;connection.close();&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;System.out.println("Message Received OK.\n");&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;}&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;catch (JMSException jmsex) {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;System.out.println(jmsex);&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;System.out.println("Message Receive Failure\n");&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;}&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;catch (Exception ex) {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;System.out.println(ex);&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;System.out.println("Message Receive Failure\n");&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;}&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-4832409447696213876?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/4832409447696213876/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2012/01/basic-send-message-to-mq-with-java-and_20.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/4832409447696213876'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/4832409447696213876'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2012/01/basic-send-message-to-mq-with-java-and_20.html' title='Basic Receive Message to MQ with Java and IBM MQ JMS'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-6736468919554023403</id><published>2012-01-19T23:53:00.004Z</published><updated>2012-01-19T23:59:26.656Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Websphere'/><title type='text'>Basic Send Message to MQ with Java and IBM MQ JMS</title><content type='html'>package my.mq.samples;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;import javax.jms.JMSException;&lt;br /&gt;import javax.jms.Session;&lt;br /&gt;import javax.jms.TextMessage;&lt;br /&gt;&lt;br /&gt;import com.ibm.mq.jms.MQQueue;&lt;br /&gt;&lt;br /&gt;import com.ibm.mq.jms.MQQueueConnection;&lt;br /&gt;import com.ibm.mq.jms.MQQueueConnectionFactory;&lt;br /&gt;import com.ibm.mq.jms.MQQueueSender;&lt;br /&gt;import com.ibm.mq.jms.MQQueueSession;&lt;br /&gt;import com.ibm.msg.client.wmq.WMQConstants;&lt;br /&gt;&lt;br /&gt;public class MQSend {&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;public static void main(String[] args)&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;{&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;try {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;MQQueueConnectionFactory cf = new MQQueueConnectionFactory();&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;cf.setHostName("localhost");&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;cf.setPort(1414);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;cf.setIntProperty(WMQConstants.WMQ_CONNECTION_MODE, WMQConstants.WMQ_CM_CLIENT);&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;cf.setQueueManager("QM_GRIDSERVER");&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;cf.setChannel("SYSTEM.ADMIN.SVRCONN");&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;MQQueueConnection connection = (MQQueueConnection) cf.createQueueConnection();&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;//MQQueueConnection connection = (MQQueueConnection) cf.createQueueConnection("username","password");&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt; &amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;MQQueueSession session = (MQQueueSession) connection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;MQQueue queue = (MQQueue) session.createQueue("queue:///MyTestQueue");&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;MQQueueSender sender = &amp;nbsp;(MQQueueSender) session.createSender(queue);&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;long uniqueNumber = System.currentTimeMillis() % 1000;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;TextMessage message = (TextMessage) session.createTextMessage("Basic Queue Test "+ uniqueNumber); &amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;// Start the connection&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;connection.start();&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;sender.send(message);&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;System.out.println("Sent message to Queue MyTestQueue: " + message.getText());&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;sender.close();&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;session.close();&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;connection.close();&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;System.out.println("Message Sent OK.\n");&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;}&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;catch (JMSException jmsex) {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;System.out.println(jmsex);&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;System.out.println("Message Send Failure\n");&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;}&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;catch (Exception ex) {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;System.out.println(ex);&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;System.out.println("Message Send Failure\n");&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;}&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-6736468919554023403?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/6736468919554023403/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2012/01/basic-send-message-to-mq-with-java-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/6736468919554023403'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/6736468919554023403'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2012/01/basic-send-message-to-mq-with-java-and.html' title='Basic Send Message to MQ with Java and IBM MQ JMS'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-42354778856922163</id><published>2012-01-19T00:50:00.001Z</published><updated>2012-01-19T00:50:37.088Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Websphere'/><title type='text'>Working with CSV files made simple with Websphere MBT and DFDL</title><content type='html'>Working with CSV files and mapping them from/to any of the WebSphere Message Broker domains is a lot easier with the support for DFDL files in version 8.0&lt;br /&gt;&lt;br /&gt;Using DFDL files you can easily create message flows to parse and serialize CSV messages to and from any of the WebSphere Message Broker domains. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://publib.boulder.ibm.com/infocenter/wmbhelp/v8r0m0/index.jsp?topic=%2Fcom.ibm.dfdl.editor.messagebroker.doc%2Fdf20071_.html"&gt;http://publib.boulder.ibm.com/infocenter/wmbhelp/v8r0m0/index.jsp?topic=%2Fcom.ibm.dfdl.editor.messagebroker.doc%2Fdf20071_.html&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;&lt;div&gt;For example I'd a project where I needed to capture order information from several third party marketplaces.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Each marketplace offered different methods for accessing the most recent order information for our account. For example&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Web Services Interface&lt;/div&gt;&lt;div&gt;FTP&amp;nbsp;&lt;/div&gt;&lt;div&gt;Email&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In addition each marketplace used a different format sometimes XML based and sometimes CSV based to describe orders placed.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Using the DFDL its a lot easier to create a mapping &amp;nbsp;between these various marketplace formats and in turn creates a standard output XML format that is suitable for our in house ERP system.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-42354778856922163?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/42354778856922163/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2012/01/working-with-csv-files-made-simple-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/42354778856922163'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/42354778856922163'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2012/01/working-with-csv-files-made-simple-with.html' title='Working with CSV files made simple with Websphere MBT and DFDL'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-6240440583620227530</id><published>2012-01-18T15:21:00.000Z</published><updated>2012-01-18T15:21:45.587Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Websphere'/><title type='text'>Configure EmailOutput Node in Websphere Message Broker Toolkit</title><content type='html'>Launch a message broker command console and issue the following commands&lt;br /&gt;&lt;br /&gt;mqsicreateconfigurableservice MB7BROKER –c SMTP –o SMTPAlias&lt;br /&gt;&lt;br /&gt;mqsichangeproperties MB7BROKER –c SMTP –o SMTPAlias –n serverName –v mail.trevoroconnell.com:25&lt;br /&gt;&lt;br /&gt;mqsichangeproperties MB7BROKER –c SMTP –o SMTPMyAlias –n securityIdentity –v mySecurity&lt;br /&gt;&lt;br /&gt;mqsisetdbparms MB7BROKER -n securityIdentity –u trevor.oconnell@trevoroconnell.com -p trevor&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Then within the WMBT, add your EmailOutput Node to the message flow&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Open&amp;nbsp;properties&amp;nbsp;for the EmailOutput Node and for SMTP Server enter the alias SMTPAlias&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-6240440583620227530?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/6240440583620227530/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2012/01/configure-emailoutput-node-in-websphere.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/6240440583620227530'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/6240440583620227530'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2012/01/configure-emailoutput-node-in-websphere.html' title='Configure EmailOutput Node in Websphere Message Broker Toolkit'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-276758868602543775</id><published>2012-01-16T18:42:00.000Z</published><updated>2012-01-16T18:42:30.809Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Cloud Tools'/><title type='text'>Cloud Fault Tolerance with JClouds</title><content type='html'>JClouds makes building highly available cloud based applications a lot easier. &amp;nbsp;JClouds creates an abstraction layer that is independent of the underlying cloud infrastructure.&lt;br /&gt;&lt;br /&gt;So for example JCloud Compute API allows you to easily interface with infrastructure cloud providers such as Amazon EC2 and VMWare vCloud etc using a single standard API.&lt;br /&gt;&lt;br /&gt;So&amp;nbsp;basically&amp;nbsp;if you app runs&amp;nbsp;across&amp;nbsp;multiple&amp;nbsp;computer nodes across multiple cloud infrastructure providers you only need to worry about learning one API to manage computer nodes i.e. the JCloud ComputeNode API.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.jclouds.org/documentation/userguide/compute"&gt;http://www.jclouds.org/documentation/userguide/compute&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-276758868602543775?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/276758868602543775/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2012/01/cloud-fault-tolerance-with-jclouds.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/276758868602543775'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/276758868602543775'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2012/01/cloud-fault-tolerance-with-jclouds.html' title='Cloud Fault Tolerance with JClouds'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-8606624600851700859</id><published>2012-01-14T13:16:00.003Z</published><updated>2012-01-14T13:26:50.743Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Administration'/><title type='text'>Automating File Transfers - Multiple Directories / Lots of Files</title><content type='html'>One of the big disadvantages of FILEZILLA is its poor command line interface (CLI) support. &amp;nbsp;This makes it very unsuitable for use in an environment where you need to script automated file transfer routines&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For example working on a recent project I've had to design a routine to automate the transfer of files (300,000 approx) from a local server across several remote servers.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Based on a defined local directory structure these files would be transferred in to specific remote folders on each remote server.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So I needed something that would allow me&lt;br /&gt;&lt;br /&gt;1. Connect to a specific remote server and authenticate&lt;/div&gt;&lt;div&gt;2. Prevent interactive prompts i.e. asking user to confirm, retry or abort&lt;/div&gt;&lt;div&gt;3.&amp;nbsp;Programatically&amp;nbsp;select a local directory on the local server &lt;/div&gt;&lt;div&gt;4.&amp;nbsp;Programatically&amp;nbsp;select a local directory on the remote server &lt;/div&gt;&lt;div&gt;5. Transfer specific file types from the local server to that remote server&lt;/div&gt;&lt;div&gt;6. Close to the connection&lt;/div&gt;&lt;div&gt;7. Move to the next folder on the local server and repeat .....&lt;/div&gt;&lt;div&gt;&lt;br /&gt;While I could accomplish this with an enterprise class Message Broker by defining FileInput Nodes and FTP Nodes that seemed to be overkill and would be expensive.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A free and open source solution that offers an easy to use CLI / scripting language to accomplish this is &lt;a href="http://winscp.net/eng/index.php" target="_blank"&gt;WinSCP&lt;/a&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;Simple create your script file e.g. myscript.scr and then use the /script command line option for WinSCP to read commands e.g.&lt;br /&gt;winscp.com /script=myscript.scr&lt;br /&gt;&lt;br /&gt;For example to connect to an FTP server www.myserver.com&lt;br /&gt;&lt;br /&gt;# Set confirmation off during batch processing&lt;br /&gt;option confirm off&lt;br /&gt;# change username/password and host i.e. myserver &lt;br /&gt;open ftp://username:password@www.myserver.com &lt;br /&gt;# Then chnage in to remote directory&lt;br /&gt;cd &amp;lt;remote directory&amp;gt;&lt;br /&gt;# Then change in to local directory&lt;br /&gt;lcd &amp;lt;local directory&amp;gt;&lt;br /&gt;# Then transfer specific file types&lt;br /&gt;put *.txt ./&lt;br /&gt;# Then exit&lt;br /&gt;close&lt;br /&gt;....&lt;br /&gt;Repeat as required&lt;br /&gt;&lt;br /&gt;You can create a simple VB.NET or Java/SWING desktop style application to make it easier for non-technical users to access this type of feature.&lt;br /&gt;&lt;br /&gt;Insert placeholders in to the script above for example&lt;br /&gt;open ftp://$username:$password@$host&lt;br /&gt;&lt;br /&gt;Then once the user keys in the values in to a nice to use form, simple do a find/replace within the template script file and save it to run.scr&lt;br /&gt;&lt;br /&gt;Then perform a system call to WinSCP with the /script=run.scr option&lt;br /&gt;&lt;br /&gt;Its simple, nothing fancy but it works and it automates a task and saves time.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-8606624600851700859?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/8606624600851700859/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2012/01/automating-file-transfers-multiple.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/8606624600851700859'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/8606624600851700859'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2012/01/automating-file-transfers-multiple.html' title='Automating File Transfers - Multiple Directories / Lots of Files'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-7235939302729026126</id><published>2012-01-12T16:03:00.002Z</published><updated>2012-01-12T16:03:50.863Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Websphere'/><title type='text'>Java Send / Read from Remote MQ Queue on CentOS Linux</title><content type='html'>package my.mq.samples;&lt;br /&gt;&lt;br /&gt;import javax.jms.JMSException;&lt;br /&gt;import javax.jms.Session;&lt;br /&gt;&lt;br /&gt;import com.ibm.jms.JMSMessage;&lt;br /&gt;import com.ibm.jms.JMSTextMessage;&lt;br /&gt;&lt;br /&gt;import com.ibm.mq.jms.MQQueue;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;import com.ibm.mq.jms.MQQueueConnection;&lt;br /&gt;import com.ibm.mq.jms.MQQueueConnectionFactory;&lt;br /&gt;import com.ibm.mq.jms.MQQueueReceiver;&lt;br /&gt;import com.ibm.mq.jms.MQQueueSender;&lt;br /&gt;import com.ibm.mq.jms.MQQueueSession;&lt;br /&gt;import com.ibm.msg.client.jms.*;&lt;br /&gt;import com.ibm.msg.client.services.*;&lt;br /&gt;import com.ibm.msg.client.wmq.WMQConstants;&lt;br /&gt;&lt;br /&gt;public class MQConnect {&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;public static void main(String[] args) {&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; try {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; MQQueueConnectionFactory cf = new MQQueueConnectionFactory();&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; cf.setHostName("82.195.136.246");&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; cf.setPort(60000);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; cf.setIntProperty(WMQConstants.WMQ_CONNECTION_MODE, WMQConstants.WMQ_CM_CLIENT);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; cf.setQueueManager("dtm.queue.manager");&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; cf.setChannel("SYSTEM.DEF.SVRCONN");&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; MQQueueConnection connection = (MQQueueConnection) cf.createQueueConnection("Trevor","Password");&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; MQQueueSession session = (MQQueueSession) connection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; MQQueue queue = (MQQueue) session.createQueue("queue:///Q1");&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; MQQueueSender sender = &amp;nbsp;(MQQueueSender) session.createSender(queue);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; MQQueueReceiver receiver = (MQQueueReceiver) session.createReceiver(queue); &amp;nbsp; &amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; long uniqueNumber = System.currentTimeMillis() % 1000;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; JMSTextMessage message = (JMSTextMessage) session.createTextMessage("Basic Queue Test "+ uniqueNumber); &amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; // Start the connection&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; connection.start();&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; sender.send(message);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; System.out.println("Sent message:\\n" + message);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; JMSMessage receivedMessage = (JMSMessage) receiver.receive(10000);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; System.out.println("\\nReceived message:\\n" + receivedMessage);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; sender.close();&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; receiver.close();&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; session.close();&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; connection.close();&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; System.out.println("\\nSUCCESS\\n");&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; catch (JMSException jmsex) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; System.out.println(jmsex);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; System.out.println("\\nFAILURE\\n");&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; catch (Exception ex) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; System.out.println(ex);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; System.out.println("\\nFAILURE\\n");&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;}&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-7235939302729026126?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/7235939302729026126/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2012/01/java-send-read-from-remote-mq-queue-on.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/7235939302729026126'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/7235939302729026126'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2012/01/java-send-read-from-remote-mq-queue-on.html' title='Java Send / Read from Remote MQ Queue on CentOS Linux'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-2093557838192490802</id><published>2012-01-10T18:31:00.001Z</published><updated>2012-01-10T18:32:15.997Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Websphere'/><title type='text'>Setting Up a Websphere MQ Listener on CentOS</title><content type='html'>Step 1 - Add the following to /etc/services&lt;br /&gt;-bash-3.2$ vi /etc/services &lt;br /&gt;WebsphereMQ &amp;nbsp; &amp;nbsp; &amp;nbsp;1414/tcp &amp;nbsp; &amp;nbsp;# WebSphere MQ channel listener&lt;br /&gt;&lt;div&gt;&lt;br /&gt;Step 2 - Create a service configuration file in /etc/xinetd.d&lt;br /&gt;-bash-3.2$ vi /etc/xinetd.d/websphere # place the following in it&lt;br /&gt;&lt;br /&gt;service WebsphereMQ&lt;br /&gt;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;socket_type &amp;nbsp; &amp;nbsp; = stream&lt;br /&gt;&amp;nbsp; &amp;nbsp;wait &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= no&lt;br /&gt;&amp;nbsp; &amp;nbsp;user &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= mqm&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; port &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= 1414&lt;br /&gt;&amp;nbsp; &amp;nbsp;server &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= /opt/mqm/bin/amqcrsta&lt;br /&gt;&amp;nbsp; &amp;nbsp;server_args &amp;nbsp; &amp;nbsp; = -m dtmtest.queue.manager&lt;br /&gt;&amp;nbsp; &amp;nbsp;log_on_failure &amp;nbsp;+= USERID&lt;br /&gt;}&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Step 3 - Restart xinetd&lt;/div&gt;&lt;div&gt;-bash-3.2$ service xinetd restart&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;Step 4 - Check your logs for errors&lt;/div&gt;&lt;div&gt;-bash-3.2$ tail /var/log/messages&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Step 5 - Check its listening on port 1414&lt;/div&gt;&lt;div&gt;-bash-3.2$ netstat -an | grep 1414&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-2093557838192490802?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/2093557838192490802/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2012/01/setting-up-websphere-mq-listener-on.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/2093557838192490802'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/2093557838192490802'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2012/01/setting-up-websphere-mq-listener-on.html' title='Setting Up a Websphere MQ Listener on CentOS'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-9124406847210488989</id><published>2012-01-10T16:38:00.005Z</published><updated>2012-01-10T18:26:52.107Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Websphere'/><title type='text'>Getting Started with Websphere MQ on Linux CentOS</title><content type='html'>Install Procedure for MQ Series 7.1.0-0&lt;br /&gt;&lt;br /&gt;Step 1 - Create Working Folder&lt;br /&gt;-bash-3.2$&amp;nbsp;mkdir $HOME/MQ&lt;br /&gt;-bash-3.2$&amp;nbsp;cd $HOME/MQ&lt;br /&gt;&lt;br /&gt;Step 2 - Download&lt;br /&gt;-bash-3.2$&amp;nbsp;wget https://www15.software.ibm.com/sdfdl/v2/fulfill/CI50ZML/Xa.2/Xb.JSiMj8YMb5GyHPzC8QrNFjOjmKulz6rMpstKQz2u2A/Xc.CI50ZML/CI50ZML.tar.gz/Xd./Xf.LPr.D1VK/Xg.6326855/Xi.ESD-WSMQ-EVAL/XY.regsrvs/XZ.xZgIo09btSUWIzRzk9IMAGmpv4I/CI50ZML.tar.gz&lt;br /&gt;&lt;br /&gt;Step 3 - Run License Acceptance Script&lt;br /&gt;-bash-3.2$&amp;nbsp;./mqlicense.sh -accept&lt;br /&gt;&lt;br /&gt;Step 4- Install MQ Runtime Environment&lt;br /&gt;-bash-3.2$&amp;nbsp;rpm -ivh MQSeriesRuntime-7.1.0-0.i386.rpm&lt;br /&gt;&lt;br /&gt;Step 5 - Install MQ Server &lt;br /&gt;-bash-3.2$&amp;nbsp;rpm -ivh MQSeriesServer-7.1.0-0.i386.rpm&lt;br /&gt;&lt;br /&gt;Step 6 - Install MQ Samples need these for testing&lt;br /&gt;&lt;br /&gt;-bash-3.2$&amp;nbsp;rpm -ivh MQSeriesSamples-7.1.0-0.i386.rpm&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Step 7 - Lets Test&lt;br /&gt;Login as super user root&lt;br /&gt;-bash-3.2$&amp;nbsp;su - mgm&lt;br /&gt;-bash-3.2$&amp;nbsp;cd /opt/mqm/bin&lt;br /&gt;&lt;br /&gt;-bash-3.2$&amp;nbsp;./crtmqm -q dtm.queue.manager # create a queue manager&lt;br /&gt;-bash-3.2$ ./strmqm # start the queue manager&lt;br /&gt;-bash-3.2$ ./runmqsc # run MQMS commands&lt;br /&gt;define qlocal (dtmtest.queue)&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;Step 8 - Test&lt;br /&gt;-bash-3.2$cd &amp;nbsp;/opt/mqm/samp/bin&lt;br /&gt;-bash-3.2$./amqsput DTMTEST.QUEUE # runmqsc will put it in caps&lt;br /&gt;-bash-3.2$./amqsput DTMTEST.QUEUE&lt;br /&gt;Sample AMQSPUT0 start&lt;br /&gt;target queue is DTMTEST.QUEUE&lt;br /&gt;First MQ Script&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;Sample AMQSPUT0 end&lt;br /&gt;&lt;br /&gt;-bash-3.2$./amqsget DTMTEST.QUEUE&lt;br /&gt;Sample AMQSGET0 start&lt;br /&gt;message &amp;lt;First MQ Script&amp;gt;&lt;br /&gt;message &amp;lt;end&amp;gt;&lt;br /&gt;&lt;br /&gt;no more messages&lt;br /&gt;Sample AMQSGET0 end&lt;br /&gt;-bash-3.2$&lt;br /&gt;-bash-3.2$ &lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-9124406847210488989?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/9124406847210488989/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2012/01/getting-started-with-websphere-mq-on.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/9124406847210488989'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/9124406847210488989'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2012/01/getting-started-with-websphere-mq-on.html' title='Getting Started with Websphere MQ on Linux CentOS'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-1143172325473252822</id><published>2012-01-07T15:14:00.004Z</published><updated>2012-01-07T15:15:38.935Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Cloud Tools'/><title type='text'>Stackato Micro Cloud will continue to be free</title><content type='html'>Stackato will continue free of charge for developers to use as their own private Platform-as-a-Service (PaaS) solution on a single node.&lt;br /&gt;&lt;br /&gt;The company behind Stackato, ActiveState, all their products use open source community driven proujects and solutions.&lt;br /&gt;&lt;br /&gt;Stackato is based on the open source Cloud Foundry project and is a private PaaS that gives developers cloud deployment options for PHP, Java, Python, Ruby, Perl, Node.js, Scala, and Clojure applications.&lt;br /&gt;&lt;br /&gt;In short Stackato allows developer design, develop and test cloud based solutions that will either run on an internal private cloud driven by a hypervision such as VMWare or else on an external cloud infrastructure provider IAAS such as Amazon EC2.&lt;br /&gt;&lt;br /&gt;With Stackato Micro Clouds developers can design, build, reengineer and test new or existing applications that may be suitable for cloud on their own private cloud.&lt;br /&gt;&lt;br /&gt;To learn more go to&lt;br /&gt;&lt;a href="http://www.activestate.com/cloud" target="_blank"&gt;http://www.activestate.com/cloud &lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-1143172325473252822?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/1143172325473252822/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2012/01/stackato-micro-cloud-will-continue-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/1143172325473252822'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/1143172325473252822'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2012/01/stackato-micro-cloud-will-continue-to.html' title='Stackato Micro Cloud will continue to be free'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-226825971542435721</id><published>2012-01-05T13:29:00.002Z</published><updated>2012-02-01T23:29:42.407Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Java Observer Pattern - Watching Company Share Values</title><content type='html'>This is a very simple example of using the Observer Design Pattern.&lt;br /&gt;&lt;br /&gt;In this instance we have a company share value (subject) i.e. sharevalue. Each company has a defined sharevalue which may/may not change throughout the day.&lt;br /&gt;&lt;br /&gt;We then want to notify via the company web site or mobile phones (observers) of any change to this share value.&lt;br /&gt;&lt;br /&gt;Share will notify to CompanyWebSite and MobilePhone to disply new share value.&lt;br /&gt;&lt;br /&gt;To implement this we have a Subject interface which contains methods for adding, removing and notifying Observers and an Observer interface which contains update(float sharevalue) method which will be called by Subject implementation when a company share value changes.&lt;br /&gt;&lt;br /&gt;import java.util.ArrayList;&lt;br /&gt;&lt;br /&gt;interface Observer {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public void update(float tradingvalue);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;interface Subject {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public void registerObserver(Observer observer);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public void removeObserver(Observer observer);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public void notifyObservers();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;class Share implements Subject {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;private ArrayList&amp;lt;Observer&amp;gt; observers = new ArrayList&amp;lt;Observer&amp;gt;();&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;private float sharevalue;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;private String company;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public Share(float sharevalue, String company) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.sharevalue= sharevalue;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.company = company;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public float getShareValue() {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return sharevalue;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public void setShareValue(float sharevalue) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.sharevalue = sharevalue;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; notifyObservers();&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public String getCompany() {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return this.company;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;@Override&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public void registerObserver(Observer observer) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; observers.add(observer);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;@Override&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public void removeObserver(Observer observer) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; observers.remove(observer);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;@Override&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public void notifyObservers() {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for (Observer ob : observers) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.out&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .println("Notifying Observers on change in Company Share Price");&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ob.update(this.sharevalue);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;class CompanyWebSite implements Observer {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;@Override&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public void update(float sharevalue) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; System.out.println("Company Web Site: Share Value updated, new Share Value is: "&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ sharevalue);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;class MobilePhone implements Observer {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;@Override&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; public void update(float sharevalue) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; System.out.println("Mobile Phone: Share Value updated, new Share Value is: "&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ sharevalue);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public class TestShareValueObserver {&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public static void main(String args[]) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // this will maintain all share value information&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CompanyWebSite companyWebSite = new CompanyWebSite();&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MobilePhone mobilePhone = new MobilePhone();&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Share companyShare = new Share(26.25f,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;"Kerry Group");&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; companyShare.registerObserver(companyWebSite);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; companyShare.registerObserver(mobilePhone);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; companyShare.setShareValue(26.35f);&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-226825971542435721?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/226825971542435721/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2012/01/java-observer-pattern-watching-company.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/226825971542435721'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/226825971542435721'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2012/01/java-observer-pattern-watching-company.html' title='Java Observer Pattern - Watching Company Share Values'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-3590364051140123650</id><published>2012-01-04T23:27:00.008Z</published><updated>2012-01-05T13:04:28.121Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Configure Database Connection using MyBatis</title><content type='html'>Step 1: Create a propertiese file and store the relevant MySQL connection details here.&lt;br /&gt;&lt;br /&gt;In my case the config.properties file contains the following&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;username=mysqluser&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;password=1234mysql&lt;br /&gt;&amp;nbsp;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;url=jdbc:mysql://localhost/bankrecords&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;driver=com.mysql.jdbc.Driver&lt;br /&gt;&lt;br /&gt;Step 2: Create a configuration.xml file, this should contain all the required information needed to connect to your MySQL instance. &amp;nbsp;you need to reference the above propertiese file in the XML config file.&lt;br /&gt;&lt;br /&gt;&amp;lt; ?xml version="1.0" encoding="UTF-8" ?&amp;gt;&lt;br /&gt;&amp;lt; !DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"&amp;gt;&lt;br /&gt;&amp;lt;configuration&amp;gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&amp;lt;properties resource="config.properties" /&amp;gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&amp;lt;environments default="staging"&amp;gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&amp;lt;environment id="staging"&amp;gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;&amp;lt;transactionManager type="JDBC"/&amp;gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;&amp;lt;dataSource type="POOLED"&amp;gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;    &lt;/span&gt;&amp;lt;property name="driver" value="${driver}"/&amp;gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;    &lt;/span&gt;&amp;lt;property name="url" value="${url}"/&amp;gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;    &lt;/span&gt;&amp;lt;property name="username" value="${username}"/&amp;gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;    &lt;/span&gt;&amp;lt;property name="password" value="${password}"/&amp;gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;&amp;lt;/datasource&amp;gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&amp;lt;/environment&amp;gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&amp;lt;/environments&amp;gt;&lt;br /&gt;&amp;lt;/configuration&amp;gt;&lt;br /&gt;&lt;br /&gt;Step 3: We now use SqlSessionFactoryBuilder to create an instance of SqlSessionFactory.&lt;br /&gt;&lt;br /&gt;import java.io.IOException;&lt;br /&gt;import java.io.Reader;&lt;br /&gt;&lt;br /&gt;import org.apache.ibatis.io.Resources;&lt;br /&gt;import org.apache.ibatis.session.SqlSessionFactory;&lt;br /&gt;import org.apache.ibatis.session.SqlSessionFactoryBuilder;&lt;br /&gt;&lt;br /&gt;public class SqlConnection {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;private static SqlConnection sqlFactory = null;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;private static SqlSessionFactory sessionFactory = null;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;private SqlConnection() {&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;private static SqlConnection getInstance() throws IOException {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;String resource = null;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;Reader reader = null;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;if(sqlFactory == null) {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;resource = "configuration.xml";&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;reader = Resources.getResourceAsReader(resource);&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;sqlFactory = new SqlConnection();&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;sqlFactory.sessionFactory = new SqlSessionFactoryBuilder().build(reader);&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;}&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;return sqlFactory;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;public static synchronized SqlSessionFactory getSessionFactory() throws IOException {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;if(sqlFactory == null) {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;getInstance();&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;}&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;return sessionFactory;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;public Object clone() throws CloneNotSupportedException {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;throw new CloneNotSupportedException();&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Step 4: We can now get a new session that will allow us to make database calls.&lt;br /&gt;&lt;br /&gt;SqlSession session = null;&lt;br /&gt;&amp;nbsp; &amp;nbsp; session = SqlConnection.getSessionFactory().openSession();&lt;br /&gt;&amp;nbsp; &amp;nbsp; System.out.println("Session Object Created: " + session);&lt;br /&gt;&lt;div&gt;&lt;br /&gt;Step 5: Create a domain object, to store our  data in the object world. The attributes / fields of our simple bank account record resemble the  structure of our bankrecords table in the database.&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;package mybank.example.com&lt;br /&gt;&lt;br /&gt;import java.io.Serializable;&lt;br /&gt;import java.util.Date;&lt;br /&gt;&lt;br /&gt;public class BankAccountRecord implements Serializable {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;private Integer accountID;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;private String firstName;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;private String surName;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;private Date setupDate;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;private Integer accountBalance;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;private Date lastModified;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;public BankAccountRecord() {&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;br /&gt;&lt;br /&gt;// Define the getters and setters for our pojo.&lt;br /&gt;&lt;br /&gt;@Override&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;public String toString() {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;return "Record{" +&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;"ID=" + accountID +&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;", Firstname='" + firstName + "'" +&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;", Surname=" + surname +&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;", Setup Date=" + setupDate +&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;", Account Balance=" + accountBalance+&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;"}";&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;div&gt;&lt;br /&gt;Step 6:&amp;nbsp;We now define a mapper interface, we'll create an BankAccountRecordMapper.java file that contains a method to get data from the table. At this time the interface will be as the following:&lt;br /&gt;&lt;br /&gt;package mybank.example.com&lt;br /&gt;&lt;br /&gt;import mybank.example.com.Record;&lt;br /&gt;&lt;br /&gt;public interface BankAccountRecordMapper {&lt;br /&gt;&amp;nbsp; &amp;nbsp; /**&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* Get a single Bank Account Record from the database based on the&amp;nbsp;bank&amp;nbsp;account&amp;nbsp;identifier&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;*&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* @param id is&amp;nbsp;bank acccount identifier.&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* @return a Bank Account Record object.&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;*/&lt;br /&gt;&amp;nbsp; &amp;nbsp; BankAccountRecord getBankAccountRecord(int id);&lt;br /&gt;}&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-3590364051140123650?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/3590364051140123650/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2012/01/configure-database-connection-using.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/3590364051140123650'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/3590364051140123650'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2012/01/configure-database-connection-using.html' title='Configure Database Connection using MyBatis'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-7572252725865702241</id><published>2012-01-03T15:23:00.002Z</published><updated>2012-01-03T15:27:17.043Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Grid Enable Your Java Applications with GridGain</title><content type='html'>GridGain is Java based open source middleware for real time data processing and analytics that scales up from one server to thousands of machines.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;GridGain is available via open source community edition or enterprise paid edition with bundles of extra features and options.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Getting started with GridGain is simple&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;import java.lang.*;&lt;/div&gt;&lt;div&gt;import java.math.*;&lt;/div&gt;&lt;div&gt;import org.gridgain.grid.GridException;&lt;/div&gt;&lt;div&gt;import org.gridgain.grid.GridFactory;&lt;/div&gt;&lt;div&gt;import org.gridgain.grid.gridify.Gridify;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;public class GridTest{&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;public static void main(String args[]) throws GridException{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;GridFactory.start();&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;try{&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;System.out.println("My First Grid Test..");&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;}catch(Exception e){&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;e.printStackTrace();&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;}finally{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;GridFactory.stop(true);&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;To Grid Enable Funcitons i.e. allow the Java Byte Code to be moved to a remote node for computation simply add the Java Annotation @Gridify&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;for example&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;@Gridify&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;public int compute(int&amp;nbsp;datavalues[], int newdatavalues[], int multiplier)&lt;br /&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;for(int i=0; i &amp;lt;&amp;nbsp;datavalues.length ; i++)&lt;/div&gt;&lt;div&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &amp;nbsp;new&lt;/span&gt;datavalues[i] =&amp;nbsp;datavalues[i] * multiplier;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;return 1;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-7572252725865702241?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/7572252725865702241/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2012/01/grid-enable-your-java-applications-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/7572252725865702241'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/7572252725865702241'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2012/01/grid-enable-your-java-applications-with.html' title='Grid Enable Your Java Applications with GridGain'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-5817035949564255150</id><published>2011-12-20T19:52:00.001Z</published><updated>2011-12-20T19:53:26.737Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Design Patterns'/><title type='text'>Java Ping Servers - Flyweight Reduce Memory Footprint</title><content type='html'>package ServerProbe;&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt;&amp;nbsp;* Simple demonstration how to use the flyweight design pattern to improve performance and reduce&lt;br /&gt;&amp;nbsp;* memory footprint. &lt;br /&gt;&amp;nbsp;* Create a ServerFactory based on a pre-defined number of server types e.g. Windows, Unix etc&lt;br /&gt;&amp;nbsp;* &amp;nbsp;Within Server object, for example have a shareable method such as pingIT, also the server_type is &lt;br /&gt;&amp;nbsp;* shareable&lt;br /&gt;&amp;nbsp;* Pass IP address and ping duration in as parameters&lt;br /&gt;&amp;nbsp;*&lt;br /&gt;&amp;nbsp;*/&lt;br /&gt;&lt;br /&gt;public class Server {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; String server_type;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;    &lt;/span&gt; &lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; Server(String type){&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt; &amp;nbsp; server_type = type;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; }&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; String getType() {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;return server_type;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; }&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; public void pingIT(String ip, int duration) {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt; &amp;nbsp; System.out.println("Pinging -&amp;gt;" + server_type + " IP -&amp;gt; " + ip);&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt; &amp;nbsp; }&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt; &lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; public String toString() {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; return server_type;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; }&lt;br /&gt;}&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;import java.util.HashMap;&lt;br /&gt;&lt;br /&gt;public class ServerFactory &amp;nbsp;{&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; private static final HashMap serverByType = new HashMap();&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; public static Server getServer(String serverType) {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;Server server &amp;nbsp;= (Server) serverByType.get(serverType);&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;if(server == null) {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; server = new Server(serverType);&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; serverByType.put(serverType, server);&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; System.out.println("Creating " + serverType + " Server Container");&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;return server;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; }&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;public class ServerTest {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; private static final String ServerTypes[] = {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt; &amp;nbsp; "Windows",&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt; &amp;nbsp; "AIX",&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt; &amp;nbsp; "UNIX",&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt; &amp;nbsp; "Solaris",&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt; &amp;nbsp; "Linux"&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; };&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; private static final int NUMBER_OF_SERVERS = 1000;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; public ServerTest() {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt; &amp;nbsp; for(int i=0; i &amp;lt; NUMBER_OF_SERVERS; ++i) {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt; &amp;nbsp; Server server = ServerFactory.getServer(getRandomServerType());&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt; &amp;nbsp; server.pingIT("192.168.1."+i,100);&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; }&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; }&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt; &amp;nbsp; private String getRandomServerType() {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;    &lt;/span&gt;return ServerTypes[(int)(Math.random()*ServerTypes.length)];&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;}&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt; &lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; public static void main(String[] args) {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt; &amp;nbsp; ServerTest test = new ServerTest();&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-5817035949564255150?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/5817035949564255150/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2011/12/java-ping-servers-flyweight-reduce.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/5817035949564255150'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/5817035949564255150'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2011/12/java-ping-servers-flyweight-reduce.html' title='Java Ping Servers - Flyweight Reduce Memory Footprint'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-7406082619377404772</id><published>2011-12-20T18:42:00.002Z</published><updated>2011-12-20T18:45:50.508Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Design Patterns'/><title type='text'>Composite Design-Pattern Amazon Payment Lines</title><content type='html'>package PaymentManager;&lt;br /&gt;&lt;br /&gt;public class Order {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; String reference;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; double value;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; Order(String r, double v){&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; reference = r;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; value = v;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; }&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; String getReference() {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;return reference;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; }&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; double getValue() {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;return value;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; }&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; public String toString() {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; return reference;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; }&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;public class Payment {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; Payment pay;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; Order[] orders;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; String order_type;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; Payment(Payment p, Order[] o, String type ) {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; this(o, type);&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.pay = p;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; }&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; Payment(Order[] o, String type) {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; orders = o;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; order_type =type;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; }&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; String getOrderType() {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; return order_type;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; }&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; Payment getPayment() {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; return pay;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; }&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; Order[] getOrders() {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; return orders;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; }&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; public String toString() {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; return "Order Type -&amp;gt; " +order_type;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; }&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;public class OrderTestRun {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; public static void main(String[] args) {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt; &amp;nbsp; Order[] detail = {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt; &amp;nbsp; new Order("AMZ-SUB-001", 15.00),&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt; &amp;nbsp; new Order("AMZ-SUB-002", 15.00)&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; };&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; Payment p1 = new Payment(detail, "Amazon Order Lines");&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; Order[] total = {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt; &amp;nbsp; new Order("AMZ-001", 30.00)&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; };&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; Payment p2 = new Payment(p1,total, "Amazon Order Total");&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; System.out.println(p2);&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; Order[] ord = p2.getOrders();&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (ord != null)&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for (int k = 0; k &amp;lt; ord.length; k++)&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.out.println("Order Reference: "+ord[k]+" Value: €"+ ord[k].getValue()); &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; Payment p = p2.getPayment();&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; System.out.println(" " + p);&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (p!= null) {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Order[] ords = p.getOrders();&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (ords != null)&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for (int k = 0; k &amp;lt; ords.length; k++)&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.out.println("Order Reference: "+ords[k]+" Value: €"+ ords[k].getValue());&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; } &amp;nbsp;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; }&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-7406082619377404772?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/7406082619377404772/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2011/12/composite-design-pattern-amazon-payment.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/7406082619377404772'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/7406082619377404772'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2011/12/composite-design-pattern-amazon-payment.html' title='Composite Design-Pattern Amazon Payment Lines'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-5100671419122900838</id><published>2011-12-20T17:43:00.004Z</published><updated>2011-12-20T17:45:32.679Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Using Amazon SQS from Java</title><content type='html'>You can find the&amp;nbsp;AWS SDK for Java API Reference - 1.2.15 here&lt;br /&gt;&lt;a href="http://docs.amazonwebservices.com/AWSJavaSDK/latest/javadoc/overview-summary.html"&gt;http://docs.amazonwebservices.com/AWSJavaSDK/latest/javadoc/overview-summary.html&lt;/a&gt;&lt;br /&gt;....&lt;br /&gt;....&lt;br /&gt;import com.amazonaws.auth.AWSCredentials;&lt;br /&gt;import com.amazonaws.auth.BasicAWSCredentials;&lt;br /&gt;import com.amazonaws.services.sqs.AmazonSQS;&lt;br /&gt;import com.amazonaws.services.sqs.AmazonSQSClient;&lt;br /&gt;&lt;div&gt;....&lt;br /&gt;....&lt;/div&gt;&lt;div&gt;static public String&amp;nbsp;awsAccessKeyId&amp;nbsp;= "";&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;static public String&amp;nbsp;awsSecretAccessKey&amp;nbsp;= "";&lt;br /&gt;&lt;div&gt;....&lt;br /&gt;....&lt;/div&gt;&lt;br /&gt;AmazonSQS sqs&amp;nbsp;=&lt;br /&gt;&amp;nbsp; &amp;nbsp; new AmazonSQSClient(new BasicAWSCredentials(awsAccessKeyId&amp;nbsp;,awsSecretAccessKey&amp;nbsp;));&lt;br /&gt;&lt;br /&gt;....&lt;br /&gt;....&lt;br /&gt;&lt;br /&gt;String url =&lt;br /&gt;&amp;nbsp; &amp;nbsp; sqs.createQueue(new CreateQueueRequest("dtm_test_queue")).getQueueUrl();&lt;br /&gt;....&lt;br /&gt;....&lt;br /&gt;&lt;br /&gt;sqs.sendMessage(new SendMessageRequest(url, "Queue Data"));&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-5100671419122900838?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/5100671419122900838/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2011/12/using-amazon-sqs-from-java.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/5100671419122900838'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/5100671419122900838'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2011/12/using-amazon-sqs-from-java.html' title='Using Amazon SQS from Java'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-1279369156583527616</id><published>2011-12-19T23:31:00.001Z</published><updated>2011-12-19T23:31:46.069Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Demo file copy using Guava</title><content type='html'>/* Demo file copy using Guava&lt;br /&gt;&amp;nbsp;* src:file to be copied&lt;br /&gt;&amp;nbsp;* dst:copied/new file created from copy.&lt;br /&gt;&amp;nbsp;*/&lt;br /&gt;&amp;nbsp; &amp;nbsp;public void dtmCopyFile(final String src, final String dst)&lt;br /&gt;&amp;nbsp; &amp;nbsp;{&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; checkNotNull(src, "Source file cannot be null.");&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; checkNotNull(dst, "Destination file cannot be null.");&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; final File srcFile = new File(src);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; final File dstFile = new File(dst);&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; try&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Files.copy(srcFile, dstFile);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; catch (IOException fileIoEx)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;err.println("ERROR");&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;err.println("Error copying file.");&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; err.println("Error Message: " + fileIoEx.toString() );&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-1279369156583527616?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/1279369156583527616/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2011/12/demo-file-copy-using-guava.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/1279369156583527616'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/1279369156583527616'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2011/12/demo-file-copy-using-guava.html' title='Demo file copy using Guava'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-42126709487574112</id><published>2011-12-12T17:19:00.001Z</published><updated>2011-12-12T17:20:40.605Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='J2EE'/><title type='text'>EJB Intercepts</title><content type='html'>EJB3 offers the ability to intercept EJB business methods by using AroundInvoke interceptors.&lt;br /&gt;&lt;br /&gt;From this you can access the method name, the parameters passed, and the EJB context.&lt;br /&gt;&lt;br /&gt;This is useful for&lt;br /&gt;&lt;br /&gt;1. Performing security checks&lt;br /&gt;2. Performing audits&lt;br /&gt;3. Changing the values of method parameters in your Java EE applications using EJB interceptors&lt;br /&gt;&lt;br /&gt;Here is a simple EJB interceptor:&lt;br /&gt;&lt;br /&gt;public class InterceptorHandler {&lt;br /&gt;&lt;br /&gt;@Resource&lt;br /&gt;&amp;nbsp;private EJBContext context;&lt;br /&gt;&lt;br /&gt;@AroundInvoke&lt;br /&gt;protected Object audit(InvocationContext ctx) throws Exception {&lt;br /&gt;&amp;nbsp; &amp;nbsp; Principal principal = context.getCallerPrincipal();&lt;br /&gt;&amp;nbsp; &amp;nbsp; if (userIsValid(principal)) {&lt;br /&gt;&amp;nbsp; // Complete code for logging&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; }else{&lt;br /&gt;&amp;nbsp; // Complete code for logging and exception handling&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; return ctx.proceed();&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;}&lt;br /&gt;To use this interceptor put an annotation on the designated EJB, for example&lt;br /&gt;&lt;br /&gt;@Interceptors(InterceptorHandler.class)&lt;br /&gt;@Stateless&lt;br /&gt;public class TestBean {&lt;br /&gt;&amp;nbsp; // Complete code here&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-42126709487574112?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/42126709487574112/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2011/12/ejb-intercepts.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/42126709487574112'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/42126709487574112'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2011/12/ejb-intercepts.html' title='EJB Intercepts'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-7296431111728415509</id><published>2011-12-12T08:34:00.003Z</published><updated>2012-01-19T00:54:29.008Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='MOM'/><title type='text'>ActiveMQ, easy to use open source message oriented middleware (MOM)</title><content type='html'>&lt;div class="MsoNormal"&gt;&lt;span lang="EN-IE"&gt;ActiveMQ is message oriented middleware (MOM), useful for receiving and processing asynchronous messages (queues or topics).&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-IE"&gt;It is easily integrated with Java based applications (and others) via &amp;nbsp;the JMS &lt;st1:stockticker w:st="on"&gt;API&lt;/st1:stockticker&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-IE"&gt;ActiveQ offers enterprise scale features which may be required when implementing complex distributred systems such as&lt;/span&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;High availability with failover.&lt;/li&gt;&lt;li&gt;Scalability and clustering through a distributed Network of Brokers.&lt;/li&gt;&lt;li&gt;Pluggable persistence stores (JDBC, BDB, JDBM, file system).&lt;/li&gt;&lt;li&gt;Distributed destinations and XA support.&lt;/li&gt;&lt;li&gt;Caching.&lt;/li&gt;&lt;li&gt;Connection pooling.&lt;/li&gt;&lt;li&gt;Support for cross language clients such as .&lt;st1:stockticker w:st="on"&gt;NET&lt;/st1:stockticker&gt;, C++.&lt;/li&gt;&lt;li&gt;Support for scripting environments such as Perl, Python, and Ruby.&lt;/li&gt;&lt;li&gt;Multiple Transport layers (&lt;st1:stockticker w:st="on"&gt;TCP&lt;/st1:stockticker&gt;, UDP, multicast, NIO, &lt;st1:stockticker w:st="on"&gt;SSL&lt;/st1:stockticker&gt;, Zeroconf, JXTA, JGroups).&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-IE"&gt;Download at &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;a href="http://activemq.apache.org/" target="_blank"&gt;http://activemq.apache.org/&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-7296431111728415509?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/7296431111728415509/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2011/12/activemq-is-message-oriented-middleware.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/7296431111728415509'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/7296431111728415509'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2011/12/activemq-is-message-oriented-middleware.html' title='ActiveMQ, easy to use open source message oriented middleware (MOM)'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-3800861824409759675</id><published>2011-12-09T11:22:00.002Z</published><updated>2011-12-09T11:22:36.785Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google API'/><title type='text'>Getting to grips with Google Analytics API</title><content type='html'>Getting to grips with Google Analytics API&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;This shows the top 15 regions / by source / by number of visits decending&lt;br /&gt;&lt;br /&gt;&amp;lt;?php&lt;br /&gt;&lt;br /&gt;require 'gapi.class.php';&lt;br /&gt;&lt;br /&gt;$username='your gmail email address';&lt;br /&gt;$password='your password';&lt;br /&gt;$profile_id='your profile ID, you can get this from the url when you view the standard report. Just look for id on the url';&lt;br /&gt;&lt;br /&gt;$ga = new gapi($username,$password);&lt;br /&gt;&lt;br /&gt;$ga-&amp;gt;requestReportData($profile_id,array('source','region'),array('pageviews','visits'), '-visits','',&lt;br /&gt;&amp;nbsp;'2011-11-01', // Start Date&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;'2011-11-30', // End Date&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1, &amp;nbsp;// Start Index&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;15 // Max results&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;);&lt;br /&gt;&lt;br /&gt;echo '&amp;lt;strong&amp;gt;Top 20 Region/Source by Visits&amp;lt;/strong&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;';&lt;br /&gt;echo '&amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;';&lt;br /&gt;&lt;br /&gt;echo '&amp;lt;td&amp;gt;Region&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Source&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Page Views&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Visits&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;';&lt;br /&gt;foreach($ga-&amp;gt;getResults() as $result)&lt;br /&gt;{&lt;br /&gt;echo '&amp;lt;tr&amp;gt;';&lt;br /&gt;&amp;nbsp; echo '&amp;lt;td&amp;gt;' . $result-&amp;gt;getRegion() . '&amp;lt;/td&amp;gt;';&lt;br /&gt;&amp;nbsp; echo '&amp;lt;td&amp;gt;' . $result-&amp;gt;getSource() . '&amp;lt;/td&amp;gt;';&lt;br /&gt;&amp;nbsp; echo '&amp;lt;td&amp;gt;' . $result-&amp;gt;getPageViews() . '&amp;lt;/td&amp;gt;';&lt;br /&gt;&amp;nbsp; echo '&amp;lt;td&amp;gt;' . $result-&amp;gt;getVisits() . '&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;';&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;echo '&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;';&lt;br /&gt;echo '&amp;lt;p&amp;gt;Total pageviews: ' . $ga-&amp;gt;getPageviews() . ' total visits: ' . $ga-&amp;gt;getVisits() . '&amp;lt;/p&amp;gt;';&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-3800861824409759675?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/3800861824409759675/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2011/12/getting-to-grips-with-google-analytics.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/3800861824409759675'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/3800861824409759675'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2011/12/getting-to-grips-with-google-analytics.html' title='Getting to grips with Google Analytics API'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-4898452614640266000</id><published>2011-12-06T12:04:00.000Z</published><updated>2011-12-06T12:04:56.464Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Amazon Cloud'/><title type='text'>AWS SDK for .NET with ElasticCache Support</title><content type='html'>&lt;a href="http://aws.amazon.com/releasenotes/4997610932224045" target="_blank"&gt;AWS SDK for .NET 1.3.11&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-4898452614640266000?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/4898452614640266000/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2011/12/aws-sdk-for-net-with-elasticcache.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/4898452614640266000'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/4898452614640266000'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2011/12/aws-sdk-for-net-with-elasticcache.html' title='AWS SDK for .NET with ElasticCache Support'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-6836337259346766216</id><published>2011-12-06T11:54:00.002Z</published><updated>2011-12-06T11:54:59.707Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Amazon Cloud'/><title type='text'>AWS launched Amazon ElastiCache in Ireland</title><content type='html'>AWS launched Amazon ElastiCache&amp;nbsp;in the US East (Northern Virginia) Region back in August and today enabled ElastiCache in EU West (Dublin), US West (Northern California), and Asia Pacific (Singapore and Tokyo).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-6836337259346766216?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/6836337259346766216/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2011/12/aws-launched-amazon-elasticache-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/6836337259346766216'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/6836337259346766216'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2011/12/aws-launched-amazon-elasticache-in.html' title='AWS launched Amazon ElastiCache in Ireland'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-6914516746892567715</id><published>2011-12-02T14:18:00.000Z</published><updated>2011-12-02T14:18:52.698Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='X-Cart'/><title type='text'>New X-CART Store</title><content type='html'>A great site and resource if you require x-cart specific add-ons. &amp;nbsp;They developt e-commerce modules and templates for the x-cart platform. &amp;nbsp;I've worked with several of the modules and all are very easy to implement. &amp;nbsp;In addition if you don't want the hassle of installing the components yourself, William Hayes and his team will be more then happy to help&lt;br /&gt;&lt;br /&gt;Check it out now&amp;nbsp;&lt;a href="http://www.thexcartstore.com/" target="_blank"&gt;The XCART Store&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-6914516746892567715?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/6914516746892567715/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2011/12/new-x-cart-store.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/6914516746892567715'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/6914516746892567715'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2011/12/new-x-cart-store.html' title='New X-CART Store'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-1202396622263042959</id><published>2011-12-01T08:05:00.003Z</published><updated>2011-12-01T08:07:28.391Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Administration'/><title type='text'>Top 8 Performance Problems on the Top 50 Retail Sites before we enter Holiday Seaso</title><content type='html'>Here are the top 5 performance bottlenecks that online retailers face.&lt;br /&gt;&lt;br /&gt;Problem #1: Too many Redirects result in delayed First Impression&lt;br /&gt;Problem #2: Web 2.0 / JavaScript impacting onLoad and blocking the browser&lt;br /&gt;Problem #3: Complex CSS Selectors failing on IE8&lt;br /&gt;Problem #4: 3rd Party Plugins such as Superfish&lt;br /&gt;Problem #5: Large Content leads to long load times&lt;br /&gt;&lt;br /&gt;Check out the full article &lt;a href="http://blog.dynatrace.com/2011/11/23/top-8-performance-problems-on-top-50-retail-sites-before-black-friday/" target="_blank"&gt;here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-1202396622263042959?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/1202396622263042959/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2011/12/top-8-performance-problems-on-top-50.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/1202396622263042959'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/1202396622263042959'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2011/12/top-8-performance-problems-on-top-50.html' title='Top 8 Performance Problems on the Top 50 Retail Sites before we enter Holiday Seaso'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-1528830574148768421</id><published>2011-11-30T12:56:00.002Z</published><updated>2012-01-30T09:53:31.261Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><title type='text'>Display ASP Menu Control in Chrome / Safari</title><content type='html'>I had a problem displaying the standard asp.net menu control in Google Chrome and Safari&lt;br /&gt;&lt;br /&gt;I was using master pages&lt;br /&gt;&lt;br /&gt;but if you modify the source file behind your master page and include the following&lt;br /&gt;&lt;br /&gt;C#&lt;br /&gt;protected void Page_Load(object sender, EventArgs e)&lt;br /&gt;{&lt;br /&gt;if (Request.UserAgent.Contains("AppleWebKit")) Request.Browser.Adapters.Clear();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;VB.NET&lt;br /&gt;Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init&lt;br /&gt;If Request.UserAgent.Contains("AppleWebKit") Then&lt;br /&gt;Request.Browser.Adapters.Clear()&lt;br /&gt;End If&lt;br /&gt;End Sub&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-1528830574148768421?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/1528830574148768421/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2011/11/display-asp-menu-control-in-chrome.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/1528830574148768421'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/1528830574148768421'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2011/11/display-asp-menu-control-in-chrome.html' title='Display ASP Menu Control in Chrome / Safari'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-555723369539146935</id><published>2011-11-30T08:36:00.002Z</published><updated>2012-01-30T09:54:33.717Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Cloud Tools'/><title type='text'>Evaluating CDNs</title><content type='html'>This service CloudHarmony will test CDN networks near you. &amp;nbsp;It can test for other services also such as Cloud Storage etc. &amp;nbsp;Very neat.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://cloudharmony.com/speedtest/run"&gt;http://cloudharmony.com/speedtest/run&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-555723369539146935?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/555723369539146935/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2011/11/evaluating-cdns.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/555723369539146935'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/555723369539146935'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2011/11/evaluating-cdns.html' title='Evaluating CDNs'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-627659926267403673</id><published>2011-11-26T01:48:00.003Z</published><updated>2012-01-30T09:56:55.879Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><title type='text'>UDF Class VB.NET Reset Connection String for Entity Framework</title><content type='html'>This is a useful class I've created mixing and matching code from the web.&lt;br /&gt;&lt;br /&gt;But basically it allows you to reset the connection string for an entity framework and save the values to the current application configuration file.&lt;br /&gt;&lt;br /&gt;To use, something as follows&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Dim uConnection As New uCustomConnectionString&lt;br /&gt;&lt;br /&gt;' Connection String &amp;nbsp;Name&lt;br /&gt;' Server&lt;br /&gt;' Database / Catalog&lt;br /&gt;' Username&lt;br /&gt;' Password&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; uConnection.SetDatabaseConnection&amp;nbsp;("db1001229_CountersEntities", "localhost\sqlexpress", "db1001229_Counters", "sa", "password")&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;----&lt;br /&gt;Class&lt;br /&gt;&lt;br /&gt;Imports System.Configuration&lt;br /&gt;Imports System.Data.EntityClient&lt;br /&gt;Imports System.Data.SqlClient&lt;br /&gt;&lt;br /&gt;Public Class uCustomConnectionString&lt;br /&gt;&amp;nbsp; &amp;nbsp; Public Function&amp;nbsp;SetDatabaseConnection(ByVal oConnectionString As String, ByVal ServerName As String, ByVal DatabaseName As String, ByVal NewUsername As String, ByVal NewPassword As String) As DialogResult&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Dim curConnection = ConfigurationManager.ConnectionStrings(oConnectionString).ToString()&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Dim entityBuilder As New EntityConnectionStringBuilder(curConnection)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Dim curProviderConnString = entityBuilder.ProviderConnectionString&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ' get the current server name in the connection string.&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Dim sqlConnBuilder As New SqlConnectionStringBuilder()&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sqlConnBuilder.ConnectionString = curProviderConnString&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sqlConnBuilder.DataSource = ServerName&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sqlConnBuilder.InitialCatalog = DatabaseName&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sqlConnBuilder.UserID = NewUsername&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sqlConnBuilder.Password = NewPassword&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Dim newProviderString = sqlConnBuilder.ToString&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; entityBuilder.ProviderConnectionString = newProviderString&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Try&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Using conn As EntityConnection = New EntityConnection(entityBuilder.ToString)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; conn.Open()&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; conn.Close()&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; End Using&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; UpdateEntityConnection(oConnectionString, entityBuilder.ToString)&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MessageBox.Show("Database connection changed.")&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Return DialogResult.OK&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Catch ex As Exception&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MessageBox.Show("Database connection not changed please try again.")&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Return DialogResult.Cancel&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; End Try&lt;br /&gt;&amp;nbsp; &amp;nbsp; End Function&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; Private Sub UpdateEntityConnection(ByVal oConnectionString As String, ByVal NewConnectionString As String)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Dim config As Configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; config.ConnectionStrings.ConnectionStrings(oConnectionString).ConnectionString = NewConnectionString&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; config.Save()&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ConfigurationManager.RefreshSection("connectionStrings")&lt;br /&gt;&amp;nbsp; &amp;nbsp; End Sub&lt;br /&gt;&lt;br /&gt;End Class&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-627659926267403673?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/627659926267403673/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2011/11/udf-class-vbnet-reset-connection-string.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/627659926267403673'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/627659926267403673'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2011/11/udf-class-vbnet-reset-connection-string.html' title='UDF Class VB.NET Reset Connection String for Entity Framework'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-4513143695596314889</id><published>2011-11-25T12:11:00.000Z</published><updated>2011-11-25T12:11:19.562Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='X-Cart'/><title type='text'>.htaccess for XCART 4.4</title><content type='html'>Below is a typical .htaccess file to be used with x-cart 4.4&lt;br /&gt;Change yourdomain to what ever.&lt;br /&gt;&lt;br /&gt;Redirects from yourdomain.com to www.yourdomain.com&lt;br /&gt;&lt;br /&gt;Also forces home.php to www.yourdomain.com&lt;br /&gt;&lt;br /&gt;Also implements clean URL. Make sure Clean URL turned on in admin control panel within x-cart&lt;br /&gt;&lt;br /&gt;# Clean URLs [[[&lt;br /&gt;Options +FollowSymLinks -MultiViews -Indexes&lt;br /&gt;&amp;lt;IfModule mod_rewrite.c&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RewriteEngine On&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RewriteBase /&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DirectoryIndex home.php index.php&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /home\.php\ HTTP/&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RewriteRule ^(.*)home\.php$ / [R=301,L]&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RewriteCond %{HTTP_HOST} ^yourdomain\.com [NC]&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RewriteRule ^(.*)$ http://www.yourdomain.com/$1 [L,R=301]&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RewriteCond %{ENV:REDIRECT_STATUS} !^401$&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RewriteCond %{REQUEST_URI} !^/(payment|admin|provider|partner)/&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RewriteCond %{REQUEST_FILENAME} !\.(gif|jpe?g|png|js|css|swf|php|ico)$&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RewriteCond %{REQUEST_FILENAME} !-f&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RewriteCond %{REQUEST_FILENAME} !-d&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RewriteCond %{REQUEST_FILENAME} !-l&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RewriteRule ^(.*)$ dispatcher.php [L]&lt;br /&gt;&amp;lt;/IfModule&amp;gt;&lt;br /&gt;# /Clean URLs ]]]&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-4513143695596314889?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/4513143695596314889/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2011/11/htaccess-for-xcart-44.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/4513143695596314889'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/4513143695596314889'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2011/11/htaccess-for-xcart-44.html' title='.htaccess for XCART 4.4'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-6662078799150103569</id><published>2011-11-25T07:00:00.001Z</published><updated>2012-01-30T09:58:09.303Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Administration'/><title type='text'>Is mod_deflate working in Apache</title><content type='html'>&amp;nbsp;Just working on a number of projects and I wanted a quick and easy way to check if mod_deflate(compression) originally mod_gzip is enabled for a paritcular web server running apache.&lt;br /&gt;&lt;br /&gt;This web site has a number of useful tools to assist with this.&lt;br /&gt;&lt;br /&gt;http://www.whatsmyip.org/http_compression/&lt;br /&gt;&lt;br /&gt;* http://www.elara.ie is gzipped&lt;br /&gt;* Original Size: 285.14 KB&lt;br /&gt;* Gzipped Size: 49.74 KB&lt;br /&gt;* Data Savings: 82.56%&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-6662078799150103569?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/6662078799150103569/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2011/11/is-moddeflate-working-in-apache.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/6662078799150103569'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/6662078799150103569'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2011/11/is-moddeflate-working-in-apache.html' title='Is mod_deflate working in Apache'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-8161951751054349976</id><published>2011-11-24T21:21:00.002Z</published><updated>2011-11-24T21:22:06.589Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><title type='text'>Microsoft All-In-One Code Framework</title><content type='html'>The&amp;nbsp;Microsoft All-In-One Code Framework&amp;nbsp;is a free, centralized code sample library provided by the Microsoft Community team. &amp;nbsp;Their goal is to provide typical code samples for all Microsoft development technologies.&lt;br /&gt;&lt;br /&gt;You can view and download code samples from this link. You can also request code samples from Microsoft from this site.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1code.codeplex.com/wikipage?title=All-In-One%20Code%20Framework%20Sample%20Catalog" target="_blank"&gt;http://1code.codeplex.com/wikipage?title=All-In-One%20Code%20Framework%20Sample%20Catalog&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-8161951751054349976?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/8161951751054349976/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2011/11/microsoft-all-in-one-code-framework.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/8161951751054349976'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/8161951751054349976'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2011/11/microsoft-all-in-one-code-framework.html' title='Microsoft All-In-One Code Framework'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-4424094430332562366</id><published>2011-11-24T21:15:00.006Z</published><updated>2011-11-24T21:17:50.310Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><title type='text'>Freely-available libraries for the Microsoft .NET</title><content type='html'>Qink has assembled a comprehensive list of freely-available libraries for the Microsoft .NET platform.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://qink.net/page/The-Ultimate-List-of-Freely-Available-_NET-Libraries.aspx" target="_blank"&gt;http://qink.net/page/The-Ultimate-List-of-Freely-Available-_NET-Libraries.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-4424094430332562366?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/4424094430332562366/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2011/11/freely-available-libraries-for.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/4424094430332562366'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/4424094430332562366'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2011/11/freely-available-libraries-for.html' title='Freely-available libraries for the Microsoft .NET'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-5163142497043699136</id><published>2011-11-24T20:54:00.002Z</published><updated>2011-11-24T20:54:42.976Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Components'/><title type='text'>Charting Made Simple with FusionCharts</title><content type='html'>A very neat library that developers can use free of charge in your web development projects to display nice charts e.g. bar charts, line charts, pie charts etc is&lt;br /&gt;Fusion Charts Free Edition&lt;br /&gt;&lt;a href="http://www.fusioncharts.com/free/"&gt;http://www.fusioncharts.com/free/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-Cbk_F1IY_4U/TcriMcwMmUI/AAAAAAAAAA0/RQPLO34hLYg/s1600/chart.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-Cbk_F1IY_4U/TcriMcwMmUI/AAAAAAAAAA0/RQPLO34hLYg/s1600/chart.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;I will post some code later for using these&lt;br /&gt;&lt;br /&gt;But used dynamically with database content they provide an excellent way to help your end users visualise trends in data over time etc&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-5163142497043699136?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/5163142497043699136/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2011/05/charting-made-simple-with-fusioncharts.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/5163142497043699136'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/5163142497043699136'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2011/05/charting-made-simple-with-fusioncharts.html' title='Charting Made Simple with FusionCharts'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-Cbk_F1IY_4U/TcriMcwMmUI/AAAAAAAAAA0/RQPLO34hLYg/s72-c/chart.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-6133306280298183166</id><published>2011-11-24T20:54:00.001Z</published><updated>2011-11-24T20:54:18.364Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Amazon Cloud'/><title type='text'>Amazon Outage - What can you do</title><content type='html'>&lt;span class="Apple-style-span" style="color: #333333; font-family: Verdana, Geneva, Tahoma, sans-serif; font-size: 13px; line-height: 22px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-style: none; border-color: initial; border-left-style: none; border-right-style: none; border-top-style: none; border-width: initial; font-size: 13px; margin-bottom: 20px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;I think one of the biggest challenges facing any start-up is how to develop a sustainable DR strategy and plan which takes consideration of the current financial standing of the start-up.&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-style: none; border-color: initial; border-left-style: none; border-right-style: none; border-top-style: none; border-width: initial; font-size: 13px; margin-bottom: 20px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;I also think many start-ups with good intentions discuss, explore and document DR strategies most appropriate to there business, but how many actually test or execute the DR strategy prior to a major outage.&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-style: none; border-color: initial; border-left-style: none; border-right-style: none; border-top-style: none; border-width: initial; font-size: 13px; margin-bottom: 20px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;And it’s not good enough to just test the infrastructure, application and data&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-style: none; border-color: initial; border-left-style: none; border-right-style: none; border-top-style: none; border-width: initial; font-size: 13px; margin-bottom: 20px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;You got to literally pull the plug.&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-style: none; border-color: initial; border-left-style: none; border-right-style: none; border-top-style: none; border-width: initial; font-size: 13px; margin-bottom: 20px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;While many cloud vendors will claim that they can offer full redundancy and reliability its my opinion that all start-ups where it is financially viable should select two cloud providers i.e. primary and stand-by (DR).&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-style: none; border-color: initial; border-left-style: none; border-right-style: none; border-top-style: none; border-width: initial; font-size: 13px; margin-bottom: 20px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;Interesting debate at CloudAve&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-style: none; border-color: initial; border-left-style: none; border-right-style: none; border-top-style: none; border-width: initial; font-size: 13px; margin-bottom: 20px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;&lt;a href="http://www.cloudave.com/11886/some-lessons-from-aws-outage/#comment-13688"&gt;http://www.cloudave.com/11886/some-lessons-from-aws-outage/#comment-13688&lt;/a&gt;&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-style: none; border-color: initial; border-left-style: none; border-right-style: none; border-top-style: none; border-width: initial; font-size: 13px; margin-bottom: 20px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-6133306280298183166?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/6133306280298183166/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2011/05/amazon-outage-what-can-you-do.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/6133306280298183166'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/6133306280298183166'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2011/05/amazon-outage-what-can-you-do.html' title='Amazon Outage - What can you do'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-3599904017119459771</id><published>2011-11-24T20:54:00.000Z</published><updated>2011-11-24T20:54:07.076Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Databases'/><title type='text'>NimbusDB Next Generation Database Platform</title><content type='html'>This looks really cool. NimbusDB.  Its a combination of NoSQL and SQL, takes the best from both, combines them but plans to give developers a much more scalable database platform on which to build applications yet maintain the simplicity of using standard SQL Queries.&lt;br /&gt;&lt;br /&gt;Watch Barry Morris, who is ex founder of IONA by the way.  &lt;br /&gt;&lt;br /&gt;&lt;object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" height="386" width="480"&gt;   &lt;param name="flashvars" value="vid=14334173&amp;amp;autoplay=false&amp;amp;style=ub5D1719:lcCD311B:ocffffff:ucffffff"/&gt;&lt;param name="allowfullscreen" value="true"/&gt;&lt;param name="allowscriptaccess" value="always"/&gt;&lt;param name="src" value="http://www.ustream.tv/flash/viewer.swf"/&gt;&lt;embed flashvars="vid=14334173&amp;amp;autoplay=false&amp;amp;style=ub5D1719:lcCD311B:ocffffff:ucffffff" width="480" height="386" allowfullscreen="true" allowscriptaccess="always" src="http://www.ustream.tv/flash/viewer.swf" type="application/x-shockwave-flash"&gt;&lt;/embed&gt; &lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.ustream.tv/" style="background: #ffffff; color: black; display: block; font-size: 10px; font-weight: normal; padding: 2px 0px 4px; text-align: center; text-decoration: underline; width: 400px;" target="_blank"&gt;Video streaming by Ustream&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: xx-small;"&gt;&lt;a href="http://www.docstoc.com/docs/77980159/?key=NGI4MzVlYmQt&amp;amp;pass=ZDA5Ny00ZjQ0"&gt;NimbusDB Presents at Under the Radar&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;object data="http://viewer.docstoc.com/" height="550" id="_ds_77980159" name="_ds_77980159" type="application/x-shockwave-flash" width="630"&gt;&lt;param name="FlashVars" value="doc_id=77980159&amp;mem_id=300542&amp;showrelated=1&amp;showotherdocs=1&amp;doc_type=pdf&amp;allowdownload=1" /&gt;&lt;param name="movie" value="http://viewer.docstoc.com/"/&gt;&lt;param name="allowScriptAccess" value="always" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;/object&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;var docstoc_docid="77980159";var docstoc_title="NimbusDB Presents at Under the Radar";var docstoc_urltitle="NimbusDB Presents at Under the Radar";&lt;/script&gt;&lt;script src="http://i.docstoccdn.com/js/check-flash.js" type="text/javascript"&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-3599904017119459771?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/3599904017119459771/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2011/05/test.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/3599904017119459771'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/3599904017119459771'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2011/05/test.html' title='NimbusDB Next Generation Database Platform'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-523251730811330613</id><published>2011-11-04T09:19:00.001Z</published><updated>2012-01-30T09:58:52.224Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='System Administration'/><title type='text'>Resize your VMWare Disks on CentOS</title><content type='html'>&lt;ol start="1" style="margin-top: 0cm;" type="1"&gt;&lt;li class="MsoNormal"&gt;&lt;span lang="EN-IE"&gt;Modify you VM settings and increase the hard disk size for      example add an additional 10GB.&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal"&gt;&lt;span lang="EN-IE"&gt;Boot system&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal"&gt;&lt;span lang="EN-IE"&gt;Run fdisk and recreate partition #2&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal"&gt;&lt;span lang="EN-IE"&gt;fdisk /dev/sda2&lt;/span&gt;&lt;/li&gt;&lt;ol start="1" style="margin-top: 0cm;" type="a"&gt;&lt;li class="MsoNormal"&gt;&lt;span lang="EN-IE"&gt;Issue the following commands &lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal"&gt;&lt;span lang="EN-IE"&gt;D&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal"&gt;&lt;span lang="EN-IE"&gt;2&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal"&gt;&lt;span lang="EN-IE"&gt;N&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal"&gt;&lt;span lang="EN-IE"&gt;P&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal"&gt;&lt;span lang="EN-IE"&gt;2&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal"&gt;&lt;span lang="EN-IE"&gt;&amp;lt;enter&amp;gt; &lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal"&gt;&lt;span lang="EN-IE"&gt;&amp;lt;enter&amp;gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal"&gt;&lt;span lang="EN-IE"&gt;t&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal"&gt;&lt;span lang="EN-IE"&gt;2&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal"&gt;&lt;span lang="EN-IE"&gt;8e&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal"&gt;&lt;span lang="EN-IE"&gt;w&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;li class="MsoNormal"&gt;&lt;span lang="EN-IE"&gt;Reboot System&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal"&gt;&lt;span lang="EN-IE"&gt;lvm pvresize /dev/sda2&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal"&gt;&lt;span lang="EN-IE"&gt;lvm pvdisplay # Take a note of the free PE (physical extents)&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal"&gt;&lt;span lang="EN-IE"&gt;lvm vgchange -a y &lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal"&gt;&lt;span lang="EN-IE"&gt;lvm lvdisplay &amp;nbsp;# Take a      note of logical volume&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal"&gt;&lt;span lang="EN-IE"&gt;lvm lvextend -l +320 /dev/VolGroup00/LogVol00&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal"&gt;&lt;span lang="EN-IE"&gt;resize2fs /dev/VolGroup00/LogVol00&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-IE"&gt;You will need to tweak as&amp;nbsp; you go along.&amp;nbsp; In some examples above on the web, some people don’t do any reboot after step 4, but I needed to do a reboot.&amp;nbsp; Also after step 9ome people run an e2fsck, when ever I did this step 10 failed&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-523251730811330613?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/523251730811330613/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2011/10/resize-your-vmware-disks-on-centos.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/523251730811330613'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/523251730811330613'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2011/10/resize-your-vmware-disks-on-centos.html' title='Resize your VMWare Disks on CentOS'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-3468317621190406965</id><published>2011-11-04T09:18:00.002Z</published><updated>2011-11-04T09:18:45.681Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Services'/><title type='text'>Sample Conflict Resolution File for Plesk Restore</title><content type='html'>This is a sample conflict resolution file for Plesk which can be used during a restore&lt;br /&gt;&lt;br /&gt;Change mydomain.ie to your domain and the IP address to your new shared IP address&lt;br /&gt;&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;br /&gt;&amp;lt;conflict-resolution-rules&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;lt;policy/&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;rule conflict-guid="3fa1491e30551a7e3d1800bcc04077e1" conflict-id="0"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;lt;node children-processing-type="" name="domain"&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;lt;attributes&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;attribute name="id" value="4"/&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;attribute name="guid" value="D68A3BF8-9C79-4072-A65F-8B25A02C7BC9"/&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;attribute name="owner-guid" value="B416FF5A-136E-49F2-87B5-AEE13717F68B"/&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;attribute name="name" value="mydomain.ie"/&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/attributes&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;lt;/node&amp;gt;&lt;br /&gt;&amp;lt;/dump-objects&amp;gt;&lt;br /&gt;&amp;lt;resolution&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;rename new-name="ip-type:shared:ip-address:212.212.212.1"&amp;gt;&amp;lt;/rename&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;/resolution&amp;gt;&lt;br /&gt;&amp;lt;/rule&amp;gt;&lt;br /&gt;&amp;lt;/conflict-resolution-rules&amp;gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-3468317621190406965?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/3468317621190406965/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2011/10/sample-conflict-resolution-file-for.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/3468317621190406965'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/3468317621190406965'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2011/10/sample-conflict-resolution-file-for.html' title='Sample Conflict Resolution File for Plesk Restore'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-2740495779667947208</id><published>2011-11-04T09:18:00.001Z</published><updated>2011-11-04T09:18:28.554Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Services'/><title type='text'>Microsoft.Jet.OLEDB.4.0 provider is not registered on the local machine</title><content type='html'>I had a basic problem recently porting an ASP.NET application from 32 bit Windows 2003 to a virtual environment running Windows 64 bit.&lt;br /&gt;&lt;br /&gt;The ASP.NET application was pretty basic and it worked with a MS Access backend.&lt;br /&gt;&lt;br /&gt;I was using OLEDB Provider to connect from ASP.NET to the backend database&lt;br /&gt;&lt;br /&gt;But as it turns out there is no version of JET for Windows 64 bit.&lt;br /&gt;&lt;br /&gt;So you have to disable 64 bit ASP.NET under IIS and enable 32 bit ASP.NET under IIS.&lt;br /&gt;&lt;br /&gt;Here are the steps I followed.&lt;br /&gt;&lt;br /&gt;To run the 32-bit version of ASP.NET 2.0, follow these steps. &amp;nbsp;This was based on ASP.NET 2.0.50727&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Start / Run &amp;nbsp;/ cmd&lt;/li&gt;&lt;li&gt;cscript  %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET &amp;nbsp; W3SVC/AppPools/Enable32bitAppOnWin64 1&lt;/li&gt;&lt;li&gt;%SYSTEMROOT%\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe  -i&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;Note&lt;/div&gt;&lt;div&gt;One thing I missed, again simple but is to make sure that the 64 bit version of ASP.NET is prohibited and the 32 bit is allowed under the IIS web service&amp;nbsp;extension&amp;nbsp;list.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-2740495779667947208?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/2740495779667947208/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2011/10/microsoftjetoledb40-provider-is-not.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/2740495779667947208'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/2740495779667947208'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2011/10/microsoftjetoledb40-provider-is-not.html' title='Microsoft.Jet.OLEDB.4.0 provider is not registered on the local machine'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-909333645107198127</id><published>2011-11-04T09:18:00.000Z</published><updated>2011-11-04T09:18:03.923Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='J2EE'/><title type='text'>A Change from Zend, try Grails</title><content type='html'>&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;I’ve been working with Grails for the past few months and I really like the platform.&amp;nbsp; Having worked with frameworks such as Zend, Grails comes as a breath of fresh air.&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;Grails is an open-source web application framework that leverages the Groovy language and complements Java Web development.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;Its based on the MVC framework and it simplifies the work involved in getting your next web application up and running&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;Visit &lt;a href="http://www.grails.org/"&gt;http://www.grails.org/&lt;/a&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-909333645107198127?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/909333645107198127/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2011/11/change-from-zend-try-grails.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/909333645107198127'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/909333645107198127'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2011/11/change-from-zend-try-grails.html' title='A Change from Zend, try Grails'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-4500007568273619364</id><published>2011-11-02T18:48:00.000Z</published><updated>2011-11-02T18:48:57.507Z</updated><title type='text'>Getting Started With Grails</title><content type='html'>&lt;object width="640" height="360"&gt;&lt;param name="movie" value="http://www.youtube.com/v/PXHxo43hn34&amp;hl=en_US&amp;feature=player_embedded&amp;version=3"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/PXHxo43hn34&amp;hl=en_US&amp;feature=player_embedded&amp;version=3" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="640" height="360"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-4500007568273619364?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/4500007568273619364/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2011/11/getting-started-with-grails.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/4500007568273619364'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/4500007568273619364'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2011/11/getting-started-with-grails.html' title='Getting Started With Grails'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-5266581463031694935</id><published>2011-10-11T11:08:00.001+01:00</published><updated>2011-11-04T09:09:30.660Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Administration'/><title type='text'>Reset Plesk Admin Password from Command Prompt</title><content type='html'>To get the current 'admin' password for Plesk, execute the following command at a command prompt in windows&lt;br /&gt;&lt;br /&gt;"%plesk_bin%\plesksrvclient" -get&lt;br /&gt;&lt;br /&gt;%plesk_bin% is something like c:\parallel\plesk\admin\bin&lt;br /&gt;&lt;br /&gt;To get the password at command line and save to a file use the -nogui option&lt;br /&gt;"%plesk_bin%\plesksrvclient" -get -nogui &gt; c:\plesk_admin_passwd.txt&lt;br /&gt;&lt;br /&gt;To set a new admin password for the Plesk Admin run the following command at a command prompt:&lt;br /&gt;"%plesk_bin%\plesksrvclient" -set mypass true&lt;br /&gt;&lt;br /&gt;Where mypass is the new password&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-5266581463031694935?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/5266581463031694935/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2011/10/reset-plesk-admin-password-from-command.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/5266581463031694935'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/5266581463031694935'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2011/10/reset-plesk-admin-password-from-command.html' title='Reset Plesk Admin Password from Command Prompt'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-5673181541534121480</id><published>2011-09-30T05:16:00.004+01:00</published><updated>2011-11-04T09:09:20.654Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Amazon Cloud'/><title type='text'>Stashboard</title><content type='html'>A very basic dashboard for monitoring cloud based services such as EC2 instances etc&lt;br /&gt;&lt;br /&gt;The open source status page for cloud services and APIs.&lt;br /&gt;http://www.stashboard.org/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-5673181541534121480?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/5673181541534121480/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2011/09/stashboard.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/5673181541534121480'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/5673181541534121480'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2011/09/stashboard.html' title='Stashboard'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-2692606291609324430</id><published>2011-09-30T05:08:00.002+01:00</published><updated>2011-09-30T05:31:27.558+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Network Monitoring'/><title type='text'>Simple But Neat FreeNATS</title><content type='html'>FreeNATS is an open source PHP and MySQL based network status testing, alerting and reporting package.&lt;br /&gt;&lt;br /&gt;FreeNATS allows you to test your network and generate reporting to give you a bird's eye view of what is happening.&lt;br /&gt;&lt;br /&gt;FreeNATS allows you to test nodes with&lt;br /&gt;&lt;br /&gt;Ping Test (ICMP)&lt;br /&gt;HTTP/HTTPs Test (Web)&lt;br /&gt;IMAP/IMAPs Test&lt;br /&gt;POP3/POP3s Test&lt;br /&gt;MySQL Connection Test&lt;br /&gt;MySQL Queries Test&lt;br /&gt;TCP Port Test&lt;br /&gt;&lt;br /&gt;Ideal for light weight use. Not as good as Nagios or Zenoss but for a basic LAMP configuration where basic reporting / alerting is required this is a nice fit.&lt;br /&gt;&lt;br /&gt;Check it out&lt;br /&gt;http://www.purplepixie.org/freenats/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-2692606291609324430?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/2692606291609324430/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2011/09/simple-but-neat-freenats.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/2692606291609324430'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/2692606291609324430'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2011/09/simple-but-neat-freenats.html' title='Simple But Neat FreeNATS'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-922949882861029054</id><published>2011-09-23T07:30:00.001+01:00</published><updated>2011-09-23T07:31:25.632+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Network Monitoring'/><title type='text'>Monitorix - Easy Server Monitoring</title><content type='html'>Monitorix allows you to monitor system CPU load, file usage, disk I/O, network port activity, mysql statistics, apache statistics, system demand and much more.&lt;br /&gt;&lt;br /&gt;# Install pre-reqs &lt;br /&gt;yum install httpd&lt;br /&gt;yum install rrdtool rrdtool-perl&lt;br /&gt;yum install perl-libwww-perl perl-MailTools perl-MIME-Lite perl-CGI&lt;br /&gt;&lt;br /&gt;# Download RPMs from monitorix&lt;br /&gt;# http://www.monitorix.org/downloads.html&lt;br /&gt;# Download the latest version for your arch e.g. CentOS&lt;br /&gt;wget http://www.monitorix.org/monitorix-2.3.0-1.noarch.rpm&lt;br /&gt;&lt;br /&gt;# Install RPM&lt;br /&gt;rpm -ivh monitorix-2.3.0-1.noarch.rpm&lt;br /&gt;&lt;br /&gt;# Start the collection agent&lt;br /&gt;service monitorix start&lt;br /&gt;&lt;br /&gt;Happy monitoring!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-922949882861029054?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/922949882861029054/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2011/09/monitorix-easy-server-monitoring.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/922949882861029054'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/922949882861029054'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2011/09/monitorix-easy-server-monitoring.html' title='Monitorix - Easy Server Monitoring'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-2125012548306017107</id><published>2011-09-16T14:07:00.003+01:00</published><updated>2012-01-30T09:54:57.394Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><title type='text'>Coffescript</title><content type='html'>CoffeeScript is a new programming language that compiles to javascript&lt;br /&gt;&lt;br /&gt;you can download the latest version here from git&lt;br /&gt;&lt;a href="http://jashkenas.github.com/coffee-script/"&gt;http://jashkenas.github.com/coffee-script/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe allowfullscreen="" frameborder="0" height="393" src="http://blip.tv/play/g_MngeWSDwI.html" width="550"&gt;&lt;/iframe&gt;&lt;embed src="http://a.blip.tv/api.swf#g_MngeWSDwI" style="display: none;" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;br /&gt;&lt;br /&gt;you can find a quick introduction to the key features / syntax here&lt;br /&gt;&lt;a href="http://coffeescript-seattlejs.heroku.com/#36"&gt;http://coffeescript-seattlejs.heroku.com/#36&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.codeproject.com/Articles/240308/A-brief-introduction-to-CoffeeScript"&gt;http://www.codeproject.com/Articles/240308/A-brief-introduction-to-CoffeeScript&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-2125012548306017107?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/2125012548306017107/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2011/09/coffescript.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/2125012548306017107'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/2125012548306017107'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2011/09/coffescript.html' title='Coffescript'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-2289146654440453089</id><published>2011-09-16T13:45:00.002+01:00</published><updated>2012-01-30T09:59:37.590Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='System Administration'/><title type='text'>Make File Synch Easier</title><content type='html'>For anyone looking to replace rsynch unison is a very useful bi-directional file synch program&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.cis.upenn.edu/~bcpierce/unison/"&gt;http://www.cis.upenn.edu/~bcpierce/unison/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-2289146654440453089?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/2289146654440453089/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2011/09/make-file-synch-easier.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/2289146654440453089'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/2289146654440453089'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2011/09/make-file-synch-easier.html' title='Make File Synch Easier'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-6004281847448339331</id><published>2011-09-14T11:14:00.001+01:00</published><updated>2011-09-18T11:48:35.160+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MySQL'/><title type='text'>Test Remote MySQL from JAVA</title><content type='html'>import java.sql.*;&lt;br /&gt;&lt;br /&gt;public class MysqlConnect{&lt;br /&gt;&amp;nbsp; public static void main(String[] args) {&lt;br /&gt;&amp;nbsp; System.out.println("MySQL Connect Example.");&lt;br /&gt;&amp;nbsp; Connection conn = null;&lt;br /&gt;&amp;nbsp; String url = "jdbc:mysql://mysql.myserver.com:3306/";&lt;br /&gt;&amp;nbsp; String dbName = "my_database";&lt;br /&gt;&amp;nbsp; String driver = "com.mysql.jdbc.Driver";&lt;br /&gt;&amp;nbsp; String userName = "my_user";&lt;br /&gt;&amp;nbsp; String password = "my_password";&lt;br /&gt;&amp;nbsp; try {&lt;br /&gt;&amp;nbsp; Class.forName(driver).newInstance();&lt;br /&gt;&amp;nbsp; conn = DriverManager.getConnection(url+dbName,userName,password);&lt;br /&gt;&amp;nbsp; System.out.println("Connected to the database");&lt;br /&gt;&amp;nbsp; conn.close();&lt;br /&gt;&amp;nbsp; System.out.println("Disconnected from database");&lt;br /&gt;&amp;nbsp; } catch (Exception e) {&lt;br /&gt;&amp;nbsp; e.printStackTrace();&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;}&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-6004281847448339331?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/6004281847448339331/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2011/09/test-remote-mysql-from-java.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/6004281847448339331'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/6004281847448339331'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2011/09/test-remote-mysql-from-java.html' title='Test Remote MySQL from JAVA'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-1811291406803722074</id><published>2011-08-31T20:10:00.003+01:00</published><updated>2011-11-24T20:58:56.686Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Network Monitoring'/><title type='text'>Basic Zenoss Install</title><content type='html'>Download Zenoss RPM-GPG key&lt;br /&gt;wget http://dev.zenoss.com/yum/RPM-GPG-KEY-zenoss&lt;br /&gt;&lt;br /&gt;Import key&lt;br /&gt;rpm --import RPM-GPG-KEY-zenoss&lt;br /&gt;&lt;br /&gt;Download Zenoss Core&lt;br /&gt;wget http://sourceforge.net/projects/zenoss/files/zenoss-3.1/zenoss-3.1.0/zenoss-3.1.0.el5.x86_64.rpm/download&lt;br /&gt;&lt;br /&gt;Install Zenoss Core&lt;br /&gt;yum install zenoss-3.1.0.el5.x86_64.rpm&lt;br /&gt;&lt;br /&gt;Perform first-boot initialization&lt;br /&gt;/etc/init.d/zenoss start&lt;br /&gt;&lt;br /&gt;Once completed, connect to http://&amp;lt;your_server_name&amp;gt;:8080 with a web browser and run through the initial setup wizard i.e. set admin username and password.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-1811291406803722074?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/1811291406803722074/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2011/08/basic-zenoss-install.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/1811291406803722074'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/1811291406803722074'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2011/08/basic-zenoss-install.html' title='Basic Zenoss Install'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-3396980281678519164</id><published>2011-08-22T14:29:00.001+01:00</published><updated>2011-11-24T20:59:06.943Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Security'/><title type='text'>Check server for rootkits with rkhunter</title><content type='html'>Step 1. Download the source files&lt;br /&gt;mkdir $HOME/rkhunter&lt;br /&gt;cd $HOME/rkhunter&lt;br /&gt;wget -q http://sourceforge.net/projects/rkhunter/files/rkhunter/1.3.8/rkhunter-1.3.8.tar.gz&lt;br /&gt;&lt;br /&gt;Step 2. Untar the archive&lt;br /&gt;gzip -d rkhunter-1.3.8.tar.gz&lt;br /&gt;tar -xvf rkhunter-1.3.8.tar&lt;br /&gt;&lt;br /&gt;Step 3. Installation&lt;br /&gt;cd $HOME/rkhunter/rkhunter-1.3.8&lt;br /&gt;./installer.sh --install&lt;br /&gt;&lt;br /&gt;Step 4. Try it out&lt;br /&gt;/usr/local/bin/rkhunter -c&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-3396980281678519164?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/3396980281678519164/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2011/08/check-server-for-rootkits-with-rkhunter.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/3396980281678519164'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/3396980281678519164'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2011/08/check-server-for-rootkits-with-rkhunter.html' title='Check server for rootkits with rkhunter'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-8744419744943122172</id><published>2011-08-20T11:55:00.004+01:00</published><updated>2012-01-30T10:00:24.922Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='System Administration'/><title type='text'>Remove Files with Special Characters</title><content type='html'>If you ever create a file with special characters by accident e.g.&lt;br /&gt;&lt;br /&gt;--strip-options&lt;br /&gt;&lt;br /&gt;You can delete by using&lt;br /&gt;&lt;br /&gt;rm -- --strip-options&lt;br /&gt;&lt;br /&gt;The initial -- means that no more arguments will appear on the command line thus --strip-options is treated at the file name&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-8744419744943122172?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/8744419744943122172/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2011/08/remove-files-with-special-characters.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/8744419744943122172'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/8744419744943122172'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2011/08/remove-files-with-special-characters.html' title='Remove Files with Special Characters'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-6731202644096902875</id><published>2011-08-09T16:03:00.001+01:00</published><updated>2011-09-18T11:49:08.678+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MySQL'/><title type='text'>Repair All MYI Files with a single command</title><content type='html'>cd /var/lib/mysql&lt;br /&gt;&lt;br /&gt;find . -name *.MYI -exec myisamchk -r '{}' \;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-6731202644096902875?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/6731202644096902875/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2011/08/repair-all-myi-files-with-single.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/6731202644096902875'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/6731202644096902875'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2011/08/repair-all-myi-files-with-single.html' title='Repair All MYI Files with a single command'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-268311062541413214</id><published>2011-07-22T17:40:00.002+01:00</published><updated>2011-09-23T07:32:37.013+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Amazon Cloud'/><title type='text'>Change Security Groups on EC2</title><content type='html'>It is difficult to change the secuirty group which an EC2 instance is assigned once its running&lt;br /&gt;&lt;br /&gt;However one way to accomplish this is&lt;br /&gt;&lt;br /&gt;1. Right click on instance and select "Create Image (EBS AMI). For example if the instance is called staging-srv.&lt;br /&gt;&lt;br /&gt;2. Give the image a name and description and then create&lt;br /&gt;&lt;br /&gt;3. Create your new security group and define required security measures e.g. inbound ports&lt;br /&gt;&lt;br /&gt;4. Create a new EC2 instance based on the above created image.&lt;br /&gt;&lt;br /&gt;5. If a elastic IP is assigned to staging-srv then disassoicate it&lt;br /&gt;&lt;br /&gt;5. Launch the new instance&lt;br /&gt;&lt;br /&gt;6. Associate the elastic IP with the new instance&lt;br /&gt;&lt;br /&gt;6. Rename the old instance to e.g. staging-srv to staging-srv-old&lt;br /&gt;&lt;br /&gt;7. Name the new instance staging-srv&lt;br /&gt;&lt;br /&gt;8. Test your new instance with the new security group&lt;br /&gt;&lt;br /&gt;9. Once happy it works delete the old ECS instance.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-268311062541413214?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/268311062541413214/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2011/07/change-security-groups-on-ec2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/268311062541413214'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/268311062541413214'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2011/07/change-security-groups-on-ec2.html' title='Change Security Groups on EC2'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-1870198816217595947</id><published>2011-07-11T11:35:00.003+01:00</published><updated>2011-09-23T07:32:50.759+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Amazon Cloud'/><title type='text'>Mount an EBS Volume on CentOS</title><content type='html'>1. Create a new EBS Volume. &amp;nbsp;Note the device name returned by AMZ e.g. /dev/sdf&lt;br /&gt;2. Login to your Amazon Instance&lt;br /&gt;3. At the prompt type fdisk /dev/sdf&lt;br /&gt;4. Create a new primary partition and accept all the default values.&lt;br /&gt;5. Type (w) to write partition data to disk&lt;br /&gt;6. At the command prompt type mkfs.ext3 /dev/sdf &amp;nbsp;to format as an ext3 file system.&lt;br /&gt;7. mkdir /web&lt;br /&gt;8.Type mount /dev/sdf /web&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-1870198816217595947?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/1870198816217595947/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2011/07/mount-ebs-volume-on-centos.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/1870198816217595947'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/1870198816217595947'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2011/07/mount-ebs-volume-on-centos.html' title='Mount an EBS Volume on CentOS'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-4674683445306331393</id><published>2011-07-08T07:53:00.001+01:00</published><updated>2011-09-23T07:33:09.526+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MySQL'/><title type='text'>Change Storage Engine from INNODB to MyISAM for all tables</title><content type='html'>The following is a basic php script to change the storage engine used by all MySQL tables for a specified database to MyISAM from INNODB.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&amp;lt;?php&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;$conn = mysql_connect("localhost","username","password");&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;mysql_select_db("database-name",$conn);&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;$sql = "SHOW tables";&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;$rs = mysql_query($sql);&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;while($row = mysql_fetch_array($rs))&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;{&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&amp;nbsp; $tbl = $row[0];&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&amp;nbsp; $sql = "ALTER TABLE $tbl &amp;nbsp;ENGINE=myisam";&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&amp;nbsp; mysql_query($sql);&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;}&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;?&amp;gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;To change all tables from MyISAM to INNODB&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&amp;lt;?php&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;$conn = mysql_connect("localhost","username","password");&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;mysql_select_db("database-name",$conn);&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;$sql = "SHOW tables";&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;$rs = mysql_query($sql);&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;while($row = mysql_fetch_array($rs))&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;{&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&amp;nbsp; $tbl = $row[0];&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&amp;nbsp; $sql = "ALTER TABLE $tbl &amp;nbsp;ENGINE=INNODB";&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&amp;nbsp; mysql_query($sql);&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;}&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;?&amp;gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-4674683445306331393?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/4674683445306331393/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2011/07/change-storage-engine-from-innodb-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/4674683445306331393'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/4674683445306331393'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2011/07/change-storage-engine-from-innodb-to.html' title='Change Storage Engine from INNODB to MyISAM for all tables'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-855564507546022503</id><published>2011-07-07T00:32:00.002+01:00</published><updated>2011-09-23T07:33:23.671+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><title type='text'>Install PHP 5.3.6 on CentOS 64bit</title><content type='html'>&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt;"&gt;Create Install folders and get rpms&lt;br /&gt;Login as root&lt;br /&gt;cd $HOME&lt;br /&gt;mkdir php-setup-packages&lt;br /&gt;cd $HOME/php-setup-packages&lt;br /&gt;wget &lt;a href="http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm"&gt;http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm&lt;/a&gt;&lt;br /&gt;wget &lt;a href="http://dl.iuscommunity.org/pub/ius/stable/Redhat/5/x86_64/ius-release-1.0-6.ius.el5.noarch.rpm"&gt;http://dl.iuscommunity.org/pub/ius/stable/Redhat/5/x86_64/ius-release-1.0-6.ius.el5.noarch.rpm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Install Required RPMs&lt;br /&gt;cd $HOME/php-setup-packages&lt;br /&gt;rpm -Uvh *.rpm&lt;br /&gt;&lt;br /&gt;Remove Existing PHP Packages&lt;br /&gt;yum remove php php-*&lt;br /&gt;&lt;br /&gt;Install PHP 5.3.5 Packages&lt;br /&gt;yum install php53u-pear&lt;br /&gt;yum install php53u php53u-cli&lt;br /&gt;yum install php53u-common&lt;br /&gt;yum install php53u-devel&lt;br /&gt;yum install php53u-gd&lt;br /&gt;yum install php53u-mbstring&lt;br /&gt;yum install php53u-mcrypt&lt;br /&gt;yum install php53u-mysql&lt;br /&gt;yum install php53u-pdo&lt;br /&gt;yum install php53u-soap&lt;br /&gt;yum install php53u-xml&lt;br /&gt;yum install php53u-xmlrpc&lt;br /&gt;yum install php53u-bcmath&lt;br /&gt;yum install php53u-pecl-apc&lt;br /&gt;yum install php53u-pecl-memcache&lt;br /&gt;yum install php53u-snmp&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-855564507546022503?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/855564507546022503/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2011/07/install-php-536-on-centos-64bit.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/855564507546022503'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/855564507546022503'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2011/07/install-php-536-on-centos-64bit.html' title='Install PHP 5.3.6 on CentOS 64bit'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-3076918590247635573</id><published>2011-07-07T00:29:00.002+01:00</published><updated>2012-01-30T09:55:27.558Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Administration'/><title type='text'>Chroot Apache on CentOS 5 32bit</title><content type='html'>SECUREFOLDER=/securesystem&lt;br /&gt;mkdir $SECUREFOLDER&lt;br /&gt;mkdir -p $SECUREFOLDER/var/run&lt;br /&gt;chown -R root.root $SECUREFOLDER/var/run&lt;br /&gt;mkdir -p $SECUREFOLDER/home/httpd&lt;br /&gt;mkdir -p $SECUREFOLDER/var/www/html&lt;br /&gt;mkdir -p $SECUREFOLDER/tmp&lt;br /&gt;chmod 1777 $SECUREFOLDER/tmp&lt;br /&gt;mkdir -p $SECUREFOLDER/var/lib/php/session&lt;br /&gt;chown root.apache $SECUREFOLDER/var/lib/php/session&lt;br /&gt;cd /opt/&lt;br /&gt;yum list | grep chroot&lt;br /&gt;wget &lt;a href="http://core.segfault.pl/~hobbit/mod_chroot/dist/mod_chroot-0.5.tar.gz"&gt;http://core.segfault.pl/~hobbit/mod_chroot/dist/mod_chroot-0.5.tar.gz&lt;/a&gt;&lt;br /&gt;tar -zxvf mod_chroot-0.5.tar.gz&lt;br /&gt;cd mod_chroot-0.5&lt;br /&gt;apxs -cia mod_chroot.c&lt;br /&gt;vi /etc/httpd/conf/httpd.conf&lt;br /&gt;setsebool httpd_disable_trans 1&lt;br /&gt;vi /etc/init.d/httpd&lt;br /&gt;chattr +i /etc/init.d/httpd&lt;br /&gt;/etc/init.d/httpd start&lt;br /&gt;/etc/init.d/httpd start&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-3076918590247635573?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/3076918590247635573/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2011/07/chroot-apache-on-centos-5-32bit.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/3076918590247635573'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/3076918590247635573'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2011/07/chroot-apache-on-centos-5-32bit.html' title='Chroot Apache on CentOS 5 32bit'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-5606969092252061027</id><published>2011-07-07T00:27:00.001+01:00</published><updated>2011-09-23T07:34:05.590+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MySQL'/><title type='text'>Script to chroot MySQL on 32bit CentOS 5</title><content type='html'>#!/bin/bash&lt;br /&gt;# Set chroot location&lt;br /&gt;J=/securesystem/mysql&lt;br /&gt;/etc/init.d/mysqld stop&lt;br /&gt;&lt;br /&gt;# Creating directory structure&lt;br /&gt;mkdir -p $J/dev $J/etc $J/tmp $J/var/tmp $J/usr/libexec $J/usr/share/mysql/english \&lt;br /&gt;&amp;nbsp; $J/usr/share/mysql/norwegian $J/var/run/mysqld $J/var/log $J/var/lib $J/bin $J/lib $J/var/run/nscd&lt;br /&gt;chown -R root:sys $J&lt;br /&gt;chmod -R 755 $J&lt;br /&gt;chmod 1777 $J/tmp&lt;br /&gt;# Copy necessary files&lt;br /&gt;cp /usr/libexec/mysqld $J/usr/libexec/&lt;br /&gt;cp /usr/share/mysql/english/errmsg.sys $J/usr/share/mysql/english/&lt;br /&gt;cp /usr/share/mysql/norwegian/errmsg.sys $J/usr/share/mysql/norwegian/&lt;br /&gt;cp -r /usr/share/mysql/charsets $J/usr/share/mysql/&lt;br /&gt;cp /etc/hosts $J/etc/&lt;br /&gt;cp /etc/host.conf $J/etc/&lt;br /&gt;cp /etc/resolv.conf $J/etc/&lt;br /&gt;cp /bin/bash $J/bin&lt;br /&gt;grep mysql /etc/group &amp;gt; $J/etc/group&lt;br /&gt;grep mysql /etc/passwd &amp;gt; $J/etc/passwd&lt;br /&gt;cp /etc/my.cnf $J/etc/&lt;br /&gt;cp -R /var/lib/mysql $J/var/lib/&lt;br /&gt;chown -R mysql:mysql $J/var&lt;br /&gt;cp /usr/lib/libkrb5.so.3 /lib/libdl.so.2 /lib/libc.so.6 /lib/ld-linux.so.2 \&lt;br /&gt;/lib/librt.so.1 /usr/lib/libz.so.1 /lib/libssl.so.6 /lib/libcrypto.so.6 /lib/libpthread.so.0 \&lt;br /&gt;/lib/libcrypt.so.1 /lib/libnsl.so.1 /usr/lib/libstdc++.so.6 /lib/libm.so.6 /lib/libgcc_s.so.1 \&lt;br /&gt;/usr/lib/libgssapi_krb5.so.2 /lib/libcom_err.so.2 /usr/lib/libk5crypto.so.3 /lib/libresolv.so.2 \&lt;br /&gt;/usr/lib/libkrb5support.so.0 /lib/libkeyutils.so.1 /lib/libselinux.so.1 /lib/libsepol.so.1 $J/lib&lt;br /&gt;cp /etc/ld.so.cache $J/etc&lt;br /&gt;ln -s /var/run/nscd/socket $J/var/run/nscd/socket&lt;br /&gt;# As with Apache, we need to create null device:&lt;br /&gt;mknod $J/dev/null c 2 2&lt;br /&gt;chown root:sys $J/dev/null&lt;br /&gt;chmod 666 $J/dev/null&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-5606969092252061027?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/5606969092252061027/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2011/07/script-to-chroot-mysql-on-32bit-centos.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/5606969092252061027'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/5606969092252061027'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2011/07/script-to-chroot-mysql-on-32bit-centos.html' title='Script to chroot MySQL on 32bit CentOS 5'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-199213501720378602</id><published>2011-06-30T16:06:00.002+01:00</published><updated>2012-01-30T09:55:55.615Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Cloud Tools'/><title type='text'>SolarWinds latest tool lets you shut down &amp; restart VMware machine</title><content type='html'>SolarWinds latest tool lets you shut down &amp;amp; restart VMware machines  without logging into vCenter™ or vSphere™. It also gives you constant visibility  into your VMware environment &amp;amp; up/down status of your VMware apps.  &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Free VM Console Highlights:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Bounce VMs without logging into vCenter/vSphere&lt;/li&gt;&lt;li&gt;End-to-end visibility into your VMware environment- from vCenter through ESX  hosts to VM guest&lt;/li&gt;&lt;li&gt;Track the real-time up/down status of your VMs from your  desktop&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;http://www.solarwinds.com/register/registrationshort.aspx?program=1320&amp;amp;c=70150000000P9IG&amp;amp;CMP=BIZ-TAD-PETRI-VIRT-VMCNSL-DL-2011&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-199213501720378602?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/199213501720378602/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2011/06/solarwinds-latest-tool-lets-you-shut.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/199213501720378602'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/199213501720378602'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2011/06/solarwinds-latest-tool-lets-you-shut.html' title='SolarWinds latest tool lets you shut down &amp; restart VMware machine'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-3442773926300421679</id><published>2011-06-22T08:53:00.004+01:00</published><updated>2011-09-23T07:34:50.344+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MySQL'/><title type='text'>Table ‘mysql.servers’ doesn’t exist</title><content type='html'>&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;ERROR 1146 (42S02): Table ‘mysql.servers’ doesn’t exist&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;This appeared up on Server version: 5.1.57 when ever I'd run&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;the FLUSH PRIVILEGES command from within mysql&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;To resolve this&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre class="sql" style="clear: none; line-height: 1.333; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; overflow-x: visible; overflow-y: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; white-space: pre; width: auto;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;USE&lt;/span&gt; mysql;&lt;br /&gt;&lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;CREATE&lt;/span&gt; &lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;TABLE&lt;/span&gt; &lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;`servers`&lt;/span&gt; &lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;(&lt;/span&gt;&lt;br /&gt;&lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;`Server_name`&lt;/span&gt; &lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;CHAR&lt;/span&gt;&lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;(&lt;/span&gt;&lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;64&lt;/span&gt;&lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;)&lt;/span&gt; &lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;NOT&lt;/span&gt; &lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;NULL&lt;/span&gt;&lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;`Host`&lt;/span&gt; &lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;CHAR&lt;/span&gt;&lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;(&lt;/span&gt;&lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;64&lt;/span&gt;&lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;)&lt;/span&gt; &lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;NOT&lt;/span&gt; &lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;NULL&lt;/span&gt;&lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;`Db`&lt;/span&gt; &lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;CHAR&lt;/span&gt;&lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;(&lt;/span&gt;&lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;64&lt;/span&gt;&lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;)&lt;/span&gt; &lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;NOT&lt;/span&gt; &lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;NULL&lt;/span&gt;&lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;`Username`&lt;/span&gt; &lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;CHAR&lt;/span&gt;&lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;(&lt;/span&gt;&lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;64&lt;/span&gt;&lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;)&lt;/span&gt; &lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;NOT&lt;/span&gt; &lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;NULL&lt;/span&gt;&lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;`Password`&lt;/span&gt; &lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;CHAR&lt;/span&gt;&lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;(&lt;/span&gt;&lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;64&lt;/span&gt;&lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;)&lt;/span&gt; &lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;NOT&lt;/span&gt; &lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;NULL&lt;/span&gt;&lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;`Port`&lt;/span&gt; &lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;INT&lt;/span&gt;&lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;(&lt;/span&gt;&lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;4&lt;/span&gt;&lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;)&lt;/span&gt; &lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;DEFAULT&lt;/span&gt; &lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;NULL&lt;/span&gt;&lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;`Socket`&lt;/span&gt; &lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;CHAR&lt;/span&gt;&lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;(&lt;/span&gt;&lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;64&lt;/span&gt;&lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;)&lt;/span&gt; &lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;DEFAULT&lt;/span&gt; &lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;NULL&lt;/span&gt;&lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;`Wrapper`&lt;/span&gt; &lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;CHAR&lt;/span&gt;&lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;(&lt;/span&gt;&lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;64&lt;/span&gt;&lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;)&lt;/span&gt; &lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;NOT&lt;/span&gt; &lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;NULL&lt;/span&gt;&lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;`Owner`&lt;/span&gt; &lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;CHAR&lt;/span&gt;&lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;(&lt;/span&gt;&lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;64&lt;/span&gt;&lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;)&lt;/span&gt; &lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;NOT&lt;/span&gt; &lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;NULL&lt;/span&gt;&lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;PRIMARY&lt;/span&gt; &lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;KEY&lt;/span&gt; &lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;(&lt;/span&gt;&lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;`Server_name`&lt;/span&gt;&lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;)&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="line-height: 15px; white-space: pre;"&gt;&lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 15px; white-space: pre;"&gt; ENGINE&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 15px; white-space: pre;"&gt;&lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;=&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 15px; white-space: pre;"&gt;MyISAM &lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 15px; white-space: pre;"&gt;&lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;DEFAULT&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 15px; white-space: pre;"&gt; CHARSET&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 15px; white-space: pre;"&gt;&lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;=&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 15px; white-space: pre;"&gt;utf8 COMMENT&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 15px; white-space: pre;"&gt;&lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;=&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 15px; white-space: pre;"&gt;&lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;'MySQL Foreign Servers table'&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;However a better way to solve this problem after carrying out an update is to run the mysql fix script&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif; line-height: 18px;"&gt;mysql_fix_privilege_tables to ensure the ‘mysql’ database contains all the needed tables etc.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-3442773926300421679?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/3442773926300421679/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2011/06/table-mysqlservers-doesnt-exist.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/3442773926300421679'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/3442773926300421679'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2011/06/table-mysqlservers-doesnt-exist.html' title='Table ‘mysql.servers’ doesn’t exist'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-7512521276093674278</id><published>2011-06-22T08:28:00.001+01:00</published><updated>2011-09-23T07:35:04.933+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MySQL'/><title type='text'>MySQL Error Invalid Table or Database Name</title><content type='html'>We upgraded our MySQL server recently which ran several Joomla web sites&lt;br /&gt;&lt;br /&gt;After the upgrade we discovered the following error in the mysql log files&lt;br /&gt;&lt;br /&gt;090425 23:10:52 [ERROR] Invalid (old?) table or database name 'database-name'&lt;br /&gt;&lt;br /&gt;It turns out MySQL does not like the use of - in database names.&lt;br /&gt;&lt;br /&gt;One solution is to rename the MySQL database changing the - to an _&lt;br /&gt;&lt;br /&gt;Then update the mysql dictionary&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;UPDATE mysql.db SET Db = 'database_name' WHERE Db = 'database\-name';&lt;br /&gt;FLUSH PRIVILEGES;&lt;br /&gt;&lt;/pre&gt;&lt;pre&gt;&lt;/pre&gt;&lt;pre&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-7512521276093674278?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/7512521276093674278/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2011/06/mysql-error-invalid-table-or-database.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/7512521276093674278'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/7512521276093674278'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2011/06/mysql-error-invalid-table-or-database.html' title='MySQL Error Invalid Table or Database Name'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-5719213431372258309</id><published>2011-06-11T02:03:00.003+01:00</published><updated>2011-11-24T20:51:50.100Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mobile Computing'/><title type='text'>Mango Features for Business Users</title><content type='html'>What can business users expect from Mango&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1. Mobile access to documents&lt;/b&gt;&lt;br /&gt;Mango will add the ability to share and save documents though Office 365.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2. Pinnable e-mail folders&lt;/b&gt;&lt;br /&gt;You'll be able to pin specific e-mail folders or RSS feeds to the start screen.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;3. E-Mail server search&lt;/b&gt;&lt;br /&gt;Mango will add the ability to search for old e-mail stored on the server, not just on phone.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;4. Support for Lync&lt;/b&gt;&lt;br /&gt;Microsoft's unified communications platform, will be available as a free download around the time Mango is released.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;5. Support for stronger passwords&lt;/b&gt;&lt;br /&gt;At the moment you can only use simple PINS but with Mango you will be able to set morecomplex alpha-numeric passwords, which will improve security.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;6. Information Rights Management&lt;/b&gt;&lt;br /&gt;Support for additional security, tracking and blocking policies around emails and documents.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;7. Support for hidden Wi-Fi netowrks.&lt;/b&gt;&lt;br /&gt;The ability to connect to corporate WLANs which have hidden SSIDs.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-5719213431372258309?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/5719213431372258309/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2011/06/mango-features-for-business-users.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/5719213431372258309'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/5719213431372258309'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2011/06/mango-features-for-business-users.html' title='Mango Features for Business Users'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-7793753467489178576</id><published>2011-06-11T01:50:00.004+01:00</published><updated>2011-11-24T20:51:37.438Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mobile Computing'/><title type='text'>“Mango” Available.  Windows Phone Developer Tools</title><content type='html'>I develop software that runs on mobile devices including PDAs, iPhone and most recently which uses the Microsoft Windows Phone.&lt;br /&gt;&lt;br /&gt;What is Mango?  Mango is the code name for The Windows Phone Developer Tools 7.1 Beta.&lt;br /&gt;&lt;br /&gt;For those interested you can download the 7.1 Beta Tools from &lt;a href="http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;amp;id=11321" target="_blank"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The Windows Phone Developer Tools includes the following&lt;br /&gt;&lt;br /&gt;•Microsoft Windows Phone Developer Tools 7.1 (Beta)&lt;br /&gt;•Windows Phone Emulator (Beta)&lt;br /&gt;•Silverlight 4 SDK and DRT&lt;br /&gt;•Microsoft XNA Game Studio 4.0 Referesh Windows Phone Extensions&lt;br /&gt;•Microsoft Expression Blend SDK Preview for Windows Phone 7.1&lt;br /&gt;•WCF Data Services Client for Window Phone 7.1&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-7793753467489178576?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/7793753467489178576/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2011/06/new-windows-phone-development-tools.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/7793753467489178576'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/7793753467489178576'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2011/06/new-windows-phone-development-tools.html' title='“Mango” Available.  Windows Phone Developer Tools'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-8595334744770467996</id><published>2011-06-09T14:43:00.001+01:00</published><updated>2011-09-23T07:35:18.979+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='X-Cart'/><title type='text'>New X-CART Has Memcache Options</title><content type='html'>One thing I really like about the new x-cart versions is that they allow you to use memcache to cache data &lt;br /&gt;&lt;br /&gt;In the root x-cart folder in config.php you can specify to use memcache &lt;br /&gt;&lt;br /&gt;define('USE_MEMCACHE_DATA_CACHE', true);&lt;br /&gt;define('MEMCACHE_SERVER_ADDRESS', 'localhost');&lt;br /&gt;define('MEMCACHE_SERVER_PORT', 11211);&lt;br /&gt;&lt;br /&gt;Now the only problem is that it only uses one memcache server so you either use the server you are running x-cart on or else dedicate a server specific for caching&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-8595334744770467996?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/8595334744770467996/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2011/06/new-x-cart-has-memcache-options.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/8595334744770467996'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/8595334744770467996'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2011/06/new-x-cart-has-memcache-options.html' title='New X-CART Has Memcache Options'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-4289205444678913858</id><published>2011-06-08T19:54:00.002+01:00</published><updated>2012-01-30T09:59:28.163Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='System Administration'/><title type='text'>Configure OBM Client Backup on CentOS</title><content type='html'>Creating a new profile on &lt;br /&gt;&lt;br /&gt;Step 1&lt;br /&gt;Delete old configuration file&lt;br /&gt;rm /root/.obm/config/config.sys&lt;br /&gt;&lt;br /&gt;Step 2&lt;br /&gt;Run Configurator&lt;br /&gt;/usr/local/obm/bin/Configurator.sh&lt;br /&gt;&lt;br /&gt;Step 3&lt;br /&gt;Enter a new username/password&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Step 4&lt;br /&gt;Enter a server URL&lt;br /&gt;&lt;br /&gt;Step 5&lt;br /&gt;Select Protocol HTTP or HTTPS&lt;br /&gt;&lt;br /&gt;Step 6&lt;br /&gt;Do you want to use a Proxy server?&lt;br /&gt;&lt;br /&gt;Step 7&lt;br /&gt;&lt;br /&gt;It will find your Backup Sets and list them&lt;br /&gt;&lt;br /&gt;Step 8&lt;br /&gt;Select the type of encrypting algorithm ? (1) Twofish (2) AES (3) Triple DES (4) No encryption : &lt;br /&gt;&lt;br /&gt;Step 9&lt;br /&gt;&lt;br /&gt;Enter your encryption key. Very important if you loose this you cannot restore your data in the future.&lt;br /&gt;&lt;br /&gt;Step 10.&lt;br /&gt;Enter it a second time.&lt;br /&gt;&lt;br /&gt;Step 11.&lt;br /&gt;Select Encrypting Mode ? (1) ECB (2) CBC : 1&lt;br /&gt;Step 12.&lt;br /&gt;Do you want to run scheduled backup on this computer, I normally select yes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-4289205444678913858?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/4289205444678913858/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2011/06/configure-obm-client-backup-on-centos.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/4289205444678913858'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/4289205444678913858'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2011/06/configure-obm-client-backup-on-centos.html' title='Configure OBM Client Backup on CentOS'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-5908519102363008730</id><published>2011-06-07T15:49:00.001+01:00</published><updated>2011-09-23T07:35:55.422+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MySQL'/><title type='text'>Replace Your MySQL Server with Percona Server</title><content type='html'>Percona Server is an drop-in replacement for MySQL. It  has better performance and it provides far better slow-log diagnostics &lt;br /&gt;&lt;br /&gt;In addition with Percona Server:&lt;br /&gt;&lt;br /&gt;1. Query times are faster and more consistent.&lt;br /&gt;2. Because of this you can introducing techniques such as data sharding&lt;br /&gt;3. Save costs with less hardware upgrades &lt;br /&gt;4. Better uptime with less system administration and tuning&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-5908519102363008730?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/5908519102363008730/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2011/06/replace-your-mysql-server-with-percona.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/5908519102363008730'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/5908519102363008730'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2011/06/replace-your-mysql-server-with-percona.html' title='Replace Your MySQL Server with Percona Server'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-1405656896546521316</id><published>2011-06-07T15:41:00.001+01:00</published><updated>2011-11-24T20:52:16.103Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='X-Cart'/><title type='text'>X-CART Static Pages for X-Mall</title><content type='html'>Static Pages for x-mall in x-cart by BCS is a very useful add-on for allowing providers create static pages for example specific terms and conditions, refund policy etc&lt;br /&gt;&lt;br /&gt;http://www.bcsengineering.com/store/x-mall-static_pages-for-each-store.html&lt;br /&gt;&lt;br /&gt;This mod allows each provider to have their own static pages on their store front!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-1405656896546521316?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/1405656896546521316/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2011/06/x-cart-static-pages-for-x-mall.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/1405656896546521316'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/1405656896546521316'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2011/06/x-cart-static-pages-for-x-mall.html' title='X-CART Static Pages for X-Mall'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-1577983831139366050</id><published>2011-06-07T15:40:00.001+01:00</published><updated>2011-11-24T20:52:27.614Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='X-Cart'/><title type='text'>X-CART : Give Each Provider Standalone Shop Front</title><content type='html'>BCS have a very neat module for x-cart that allows you give each provider there own sub domain &lt;br /&gt;&lt;br /&gt;For example&lt;br /&gt;&lt;br /&gt;jones.myshop.com&lt;br /&gt;&lt;br /&gt;toys.myshop.com&lt;br /&gt;etc&lt;br /&gt;&lt;br /&gt;http://www.bcsengineering.com/store/x-mall/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-1577983831139366050?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/1577983831139366050/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2011/06/x-cart-give-each-provider-standalone.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/1577983831139366050'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/1577983831139366050'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2011/06/x-cart-give-each-provider-standalone.html' title='X-CART : Give Each Provider Standalone Shop Front'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-1857329433887863294</id><published>2011-05-30T10:30:00.002+01:00</published><updated>2011-11-24T20:52:40.854Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Amazon Cloud'/><title type='text'>UK IP Addressing and Amazon</title><content type='html'>Something that came to my attention recently is that Amazon Cloud Solutions i.e. EC2 Instances etc cannot supply a customer with a UK registered IP address which they can assign to either an Elastic IP or and Elastic Load Balancer IP.&lt;br /&gt;&lt;br /&gt;This creates problems for companies seeking high google rankings&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-1857329433887863294?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/1857329433887863294/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2011/05/uk-ip-addressing-and-amazon.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/1857329433887863294'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/1857329433887863294'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2011/05/uk-ip-addressing-and-amazon.html' title='UK IP Addressing and Amazon'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-2309623475813162254</id><published>2011-05-30T10:28:00.001+01:00</published><updated>2011-11-24T20:52:52.921Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='MySQL'/><title type='text'>Shard-Query - Improve MySQL Query Performance</title><content type='html'>Shard-Query is an open source tool kit which helps improve the performance of queries against a MySQL database by distributing the work over multiple machines and/or multiple cores.&lt;br /&gt;&lt;a href="http://www.mysqlperformanceblog.com/2011/05/06/scale-out-mysql/" target="_blank"&gt;Visit MySQL Performance Blog - Shard-Query&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-2309623475813162254?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/2309623475813162254/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2011/05/shard-query-improve-mysql-query.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/2309623475813162254'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/2309623475813162254'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2011/05/shard-query-improve-mysql-query.html' title='Shard-Query - Improve MySQL Query Performance'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-7448399681708871738</id><published>2011-05-21T12:12:00.003+01:00</published><updated>2011-11-24T20:53:06.756Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Network Monitoring'/><title type='text'>Monitoring Bandwidth Usage on CentOS</title><content type='html'>Recently I came across a very neat tool for monitoring bandwidth usage on CentOS&lt;br /&gt;&lt;br /&gt;It takes about 5 minutes to install / configure with yum repos.&lt;br /&gt;&lt;br /&gt;Have a read through &lt;a href="http://abdussamad.com/archives/154-Monitoring-bandwidth-usage-with-vnStat-under-CentOS-5-Linux.html" target="_blank"&gt;"Monitoring bandwidth usage with vnStat under CentOS 5 Linux"&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-7448399681708871738?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/7448399681708871738/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2011/05/monitoring-bandwidth-usage-on-centos.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/7448399681708871738'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/7448399681708871738'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2011/05/monitoring-bandwidth-usage-on-centos.html' title='Monitoring Bandwidth Usage on CentOS'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-2480811072695254975</id><published>2011-05-17T10:59:00.004+01:00</published><updated>2011-11-24T20:53:41.357Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Four Js Genero'/><title type='text'>Custom XCF Example</title><content type='html'>This is an example custom XCF file for Four Js GAS.&lt;br /&gt;&lt;br /&gt;In this example I've set custom environment variables, set the path for the working application directory, specified a specific module and passed in a parameter.&lt;br /&gt;&lt;br /&gt;One handy use of an XCF file like this is that I can setup several for example say I have 5 weighbridges and I run a 4Js application to capture the weight etc of each truck as it passes over the weighbridge&lt;br /&gt;&lt;br /&gt;I can setup an XCF for each weighbridge passing in the parameter 1, 2, 3, to the same program weighbridge.42r&lt;br /&gt;&lt;br /&gt;&lt;application parent="defaultgdc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nonamespaceschemalocation="http://www.4js.com/ns/gas/2.20/cfextwa.xsd"&gt;&lt;/application&gt;&lt;br /&gt;&amp;lt;APPLICATION Parent="defaultgdc"&lt;br /&gt;&amp;nbsp; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&lt;br /&gt;&amp;nbsp; xsi:noNamespaceSchemaLocation="http://www.4js.com/ns/gas/2.20/cfextwa.xsd"&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;EXECUTION AllowUrlParameters="TRUE"&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;ENVIRONMENT_VARIABLE Id="DBDATE"&amp;gt;DMY4/&amp;lt;/ENVIRONMENT_VARIABLE&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;ENVIRONMENT_VARIABLE Id="GREDIR"&amp;gt;f:\PROGRAM FILES (X86)\FOURJS\GRE\&amp;lt;/ENVIRONMENT_VARIABLE&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;PATH&amp;gt;f:\program files\fourjs\fgl\application\&amp;lt;/PATH&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;MODULE&amp;gt;weighbridge.42r&amp;lt;/MODULE&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&amp;lt;PARAMETERS&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&amp;lt;PARAMETER&amp;gt;1&amp;lt;/PARAMETER&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/PARAMETERS&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;/EXECUTION&amp;gt;&lt;br /&gt;&amp;lt;/APPLICATION&amp;gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-2480811072695254975?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/2480811072695254975/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2011/05/custom-xcf-example.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/2480811072695254975'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/2480811072695254975'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2011/05/custom-xcf-example.html' title='Custom XCF Example'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-7396940687756292105</id><published>2011-05-17T10:51:00.001+01:00</published><updated>2011-11-24T20:53:52.929Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Four Js Genero'/><title type='text'>Reference Remote DB in 4js Genero</title><content type='html'>In your fglprofile in $FGLDIR/etc to access remote MySQL databases&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;dbi.default.driver = "dbmmys51x.dll"&lt;br /&gt;dbi.database.rdb.source = "remote_db@remote_host:3306"&lt;br /&gt;dbi.database.rdb.driver = "dbmmys51x"&lt;br /&gt;dbi.database.rdb.username = "remoteuser"&lt;br /&gt;dbi.database.rdb.password = "remotepassword"&lt;br /&gt;&lt;br /&gt;&lt;div&gt;Remote host can be valid hostname or else and IP address e.g. 192.60.30.11&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-7396940687756292105?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/7396940687756292105/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2011/05/reference-remote-db-in-4js-genero.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/7396940687756292105'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/7396940687756292105'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2011/05/reference-remote-db-in-4js-genero.html' title='Reference Remote DB in 4js Genero'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-7296382333717180734</id><published>2011-05-06T19:41:00.002+01:00</published><updated>2011-11-24T20:54:58.642Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mapping'/><title type='text'>OpenLayers for Web Based Maps</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: sans-serif; font-size: 14px;"&gt;OpenLayers is a JavaScript library for displaying map data in web browsers.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: sans-serif; font-size: 14px;"&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: sans-serif; font-size: 14px;"&gt;Its 100% javascript based and is a possible solution for developing GIS based solutions on the web.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: sans-serif; font-size: 14px;"&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: sans-serif; font-size: 14px;"&gt;&lt;a href="http://openlayers.org/"&gt;http:/ /openlayers.org/&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-7296382333717180734?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/7296382333717180734/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2011/05/openlayers-for-web-based-maps.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/7296382333717180734'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/7296382333717180734'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2011/05/openlayers-for-web-based-maps.html' title='OpenLayers for Web Based Maps'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-9067357168133311847</id><published>2011-05-03T19:45:00.004+01:00</published><updated>2012-01-30T09:57:56.267Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Amazon Cloud'/><title type='text'>Get Amazon Orders for the Last Two Hours</title><content type='html'>$tmptime = time() - (3600*2);&lt;br /&gt;$ordertime=date("Y-m-d H:i:s",$tmptime);&lt;br /&gt;$request-&amp;gt;setCreatedAfter(new DateTime($ordertime, new DateTimeZone('UTC')));&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-9067357168133311847?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/9067357168133311847/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2011/05/get-amazon-orders-for-last-two-hours.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/9067357168133311847'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/9067357168133311847'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2011/05/get-amazon-orders-for-last-two-hours.html' title='Get Amazon Orders for the Last Two Hours'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-251120901676865387</id><published>2011-04-30T07:08:00.005+01:00</published><updated>2012-01-30T09:56:44.597Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><title type='text'>Binding a List of Objects to a GridView in VB.NET</title><content type='html'>Setting a gridview to a list of objects in this instance we define a class TestResult to hold a list of TestResult, This class will hold a list of results for tests carried out on a &amp;nbsp;specific date.&lt;br /&gt;&lt;br /&gt;We want to bind this to a gridview called &amp;nbsp;GridView_TestResults1 dynamically.&lt;br /&gt;&lt;br /&gt;To do this in your web form add the GridView_TestResults1 and set AutoGenerateColumns to True.&lt;br /&gt;&lt;br /&gt;Create a class TestResult add add this code&lt;br /&gt;&lt;br /&gt;Public Class TestResult&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;Private test_id As String&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;Private test_date As DateTime&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;Private test_result As String&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;Public Property TestID() As String&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Get&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Return test_id&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;End Get&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Set(ByVal value As String)&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;test_id = value&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;End Set&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;End Property&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;Public Property TestDate() As DateTime&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Get&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Return test_date&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;End Get&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Set(ByVal value As DateTime)&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;test_date = value&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;End Set&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;End Property&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;Public Property TestResult() As String&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Get&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Return test_result&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;End Get&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Set(ByVal value As String)&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;test_result = value&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;End Set&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;End Property&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;Public Sub New(ByVal t_id As String, ByVal t_date As DateTime, ByVal t_result As String)&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Me.test_id = t_id&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Me.test_date = t_date&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Me.test_result = t_result&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;End Sub&lt;br /&gt;End Class&lt;br /&gt;&lt;br /&gt;Place this code either on your page load or in some other event handler e.g. on_click&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Dim tests As System.Collections.Generic.List(Of TestResult) = New System.Collections.Generic.List(Of TestResult)()&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Dim test_date As new DateTime(2011, 09, 01, 10, 15, 00);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;tests.Add(New TestResult("001", test_date, "Passed"))&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;tests.Add(New TestResult("002", test_date, "Failed"))&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;tests.Add(New TestResult("003", test_date, "Passed"))&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;GridView_TestResults1.DataSource = tests&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;GridView_TestResults1.DataBind()&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-251120901676865387?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/251120901676865387/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2011/04/binding-list-of-objects-to-gridview-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/251120901676865387'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/251120901676865387'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2011/04/binding-list-of-objects-to-gridview-in.html' title='Binding a List of Objects to a GridView in VB.NET'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-193260102728269915</id><published>2011-04-28T02:27:00.003+01:00</published><updated>2011-11-24T20:56:05.505Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><title type='text'>Adding JSON Support to PHP on your CentOS LAMP Installation</title><content type='html'>Before you begin start by making sure you have everything up to date by running&lt;br /&gt;$--&amp;gt;&amp;nbsp;yum update&lt;br /&gt;or&lt;br /&gt;$--&amp;gt;&amp;nbsp;yum update "*php*"&lt;br /&gt;&lt;br /&gt;The first command will update all components to the latest version. &amp;nbsp;Be careful make sure this won't&amp;nbsp;interfere&amp;nbsp;with anything else you may be running.&lt;br /&gt;&lt;br /&gt;The second will update only php related components. &amp;nbsp;But caution should be taken with this command also if you are running any kind of bespoke application. &amp;nbsp;Make sure if you update your php components to the latest version/release that your web application will still operate correctly.&lt;br /&gt;&lt;br /&gt;Next run&lt;br /&gt;$--&amp;gt;&amp;nbsp;pecl install json&lt;br /&gt;&lt;br /&gt;After this command has completed you need to make sure that JSON support is enabled with your Apache/PHP stack starts&lt;br /&gt;&lt;br /&gt;To do this, you can either add the following line to the end of &amp;nbsp;your /etc/php.ini file or what I prefer to do is create a json.ini in the folder /etc/php.d &amp;nbsp;so run the command&lt;br /&gt;$--&amp;gt;&amp;nbsp;echo “extension=json.so” &amp;gt; /etc/php.d/json.ini&lt;br /&gt;&lt;br /&gt;To add this to your php.ini file instead the following command should do&lt;br /&gt;$--&amp;gt;&amp;nbsp;echo “extension=json.so” &amp;gt;&amp;gt; /etc/php.ini&lt;br /&gt;&lt;br /&gt;Then restart your apache servcies&lt;br /&gt;$--&amp;gt;&amp;nbsp;service httpd restart&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-193260102728269915?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/193260102728269915/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2011/04/adding-json-support-to-php-on-your.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/193260102728269915'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/193260102728269915'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2011/04/adding-json-support-to-php-on-your.html' title='Adding JSON Support to PHP on your CentOS LAMP Installation'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-4264694407646504595</id><published>2011-04-28T02:02:00.004+01:00</published><updated>2011-11-24T20:56:35.568Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Network Monitoring'/><title type='text'>Monitor LAMP on Centos</title><content type='html'>While not applicable for projects I based on Amazon Cloud Infrastructure when it comes to dedicated hosting on a third party hosting providers network, two tools I find extremely useful and easy to use for my LAMP based server monitoring projects are Munin (&lt;a href="http://munin-monitoring.org/"&gt;http://munin-monitoring.org/&lt;/a&gt;)  and Monit (&lt;a href="http://mmonit.com/monit/"&gt;http://mmonit.com/monit/&lt;/a&gt;)&lt;br /&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This is a very good how-to on using both these tools&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.howtoforge.com/server-monitoring-with-munin-and-monit-on-centos-5.2"&gt;http://www.howtoforge.com/server-monitoring-with-munin-and-monit-on-centos-5.2&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Its basic but aside from the standard monitoring plugins available for munin that monitor load averages, cpu usage, memory usage etc you can also get it to monitor items such as mysql queries, mysql slow queries, web requests etc.  So its well worth checking out.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Monit is also very useful for monitoring and restarting services on your LAMP box.  For example say you wanted to restart your httpd process if the load average on your server exceeded 5 for the past five minutes.  Monit is an ideal tool for this.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Trevor&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-4264694407646504595?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/4264694407646504595/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2011/04/monitor-lamp-on-centos.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/4264694407646504595'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/4264694407646504595'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2011/04/monitor-lamp-on-centos.html' title='Monitor LAMP on Centos'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-2449252817270887684</id><published>2011-04-28T01:41:00.005+01:00</published><updated>2012-01-30T09:59:19.104Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='System Administration'/><title type='text'>Installing APC on CentOS</title><content type='html'>The following procedure work for installing APC on CentOS&lt;br /&gt;&lt;ul&gt;&lt;li&gt;yum install php-pear&lt;/li&gt;&lt;li&gt;yum install php-devel&lt;/li&gt;&lt;li&gt;yum install httpd-devel&lt;/li&gt;&lt;li&gt;pecl install apc&lt;/li&gt;&lt;/ul&gt;Sometimes you may get a missing pcre.h when compiling if you get this error&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;"apc  pcre.h: No such file or directory"&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;if so  run the following&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;yum install pcre-devel&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;and then run&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;pecl install apc&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-2449252817270887684?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/2449252817270887684/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2011/04/installing-apc-on-centos.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/2449252817270887684'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/2449252817270887684'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2011/04/installing-apc-on-centos.html' title='Installing APC on CentOS'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4416934381643413085.post-246771035193818110</id><published>2011-04-25T20:41:00.005+01:00</published><updated>2011-11-24T20:57:27.193Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Amazon Cloud'/><title type='text'>The Value of AMIs for Cloud Testing?</title><content type='html'>Think of an AMI as an image of your server in the office with similar characteristics such as disk space, memory, processor power etc.&lt;br /&gt;&lt;br /&gt;While several off-the-shelf AMIs exist either offered by Amazon themselves or the wider community.&lt;br /&gt;&lt;br /&gt;The real beauty of AMIs, is the ease at which you can create your own custom AMIs that are specific to your business.&lt;br /&gt;&lt;br /&gt;In addition to the standard computer charactertistics such as operating system, disk layout etc, you can also install and configure a set of pre-defined software and data specific to your business needs.&lt;br /&gt;&lt;br /&gt;This gives you a great deal of availability when it comes to keeping your business running with minimum disruption.&lt;br /&gt;&lt;br /&gt;Aside from Amazon’s big blunder towards the end of last week they are still one of the best cloud infrastructure provider in the world and in my view they well deserve that title.&lt;br /&gt;&lt;br /&gt;When you set-up your Amazon Web Services account and register for specific services you can very quickly launch a computer in the Amazon cloud and this is called an instance. During this setup you are asked to choose an AMI from which this instance will be derived.&lt;br /&gt;&lt;br /&gt;But aside from choosing from a pre-defined set of AMIs you can create your own.&lt;br /&gt;&lt;br /&gt;I'm developing software for my business so why should I create my own custom AMI&lt;br /&gt;&lt;br /&gt;1. Simplify testing your software across several platforms&lt;br /&gt;2. Speed up the testing process.&lt;br /&gt;3. Easily and quickly scale your testing environments by adding similar or mixed AMIs to your test environment.&lt;br /&gt;4. Store test scripts and data on a centralized EBS volume therefore allowing each AMI instance to access the same test workloads and scripts.&lt;br /&gt;Because the AMIs you create are identical and because you can very quickly re-launch an AMI this allows you run tests very quickly with a clean run each time.&lt;br /&gt;If one of the AMI instances causes problems during the testing its very easy to launch a new AMI to take over that test load.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4416934381643413085-246771035193818110?l=www.trevoroconnell.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.trevoroconnell.com/feeds/246771035193818110/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.trevoroconnell.com/2011/04/value-of-amis-for-cloud-testing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/246771035193818110'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4416934381643413085/posts/default/246771035193818110'/><link rel='alternate' type='text/html' href='http://www.trevoroconnell.com/2011/04/value-of-amis-for-cloud-testing.html' title='The Value of AMIs for Cloud Testing?'/><author><name>Trevor O Connell</name><uri>http://www.blogger.com/profile/15584662790713261817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-n3VNyArJIu0/TaA1T7EGEpI/AAAAAAAAAAQ/RwwPyUZcKX8/s220/pic.jpg'/></author><thr:total>0</thr:total></entry></feed>
