<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="http://au.sys-con.com"  xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
 <title>From the Blogosphere</title>
 <link>http://au.sys-con.com/</link>
 <description>Latest articles from From the Blogosphere</description>
 <language>en</language>
 <copyright>Copyright 2009 Ulitzer.com</copyright>
 <generator>Ulitzer.com</generator>
 <lastBuildDate>Sun, 29 Nov 2009 18:21:20 EST</lastBuildDate>
 <docs>http://backend.userland.com/rss</docs>
 <ttl>10</ttl>
<item>
 <title>Accessing Spring Beans from the BIRT Designer</title>
 <link>http://au.sys-con.com/node/1200412</link>
 <description>Recently I have described methods that can be used to access Spring Beans from the BIRT Engine.  These examples are intended to be illustrative and not comprehensive.  In both of these examples I used the BIRT engine to retrieve Spring objects within the scripting environment. In this post I am supplying an example that illustrates how to implement your own menu in the expression builder, so Spring objects can be called within the BIRT Designer. This will allow you to test your report prior to deployment.&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/1200412&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Wed, 25 Nov 2009 13:45:00 EST</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/1200412</guid>
</item>
<item>
 <title>Oracle Enterprise Manager Grid Control Plug-in for BIG-IP LTM Beta</title>
 <link>http://au.sys-con.com/node/1193614</link>
 <description>If you’re an OEM user and an F5 customer, we’ve got an updated version of the OEM Grid Control Plug-in for BIG-IP in beta testing right now. It’s been in limited beta for a while, but we wanted to make certain that both TMOS 9.x and 10.x were supported before we talked about it publicly. The plug-in, jointly developed by F5 and Oracle, allows you to monitor your BIG-IP like any other infrastructure in the Oracle Enterprise Manager, and if you’re part of the beta program, you can download the source to see how the developers did it too! No, I wasn’t on the dev team for this one, there just aren’t enough hours in the day for me to play with all the toys. Though large pieces of it are based upon my Java Wrappers for iControl, so I can claim a little bit of the fun ;-).&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/1193614&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Thu, 19 Nov 2009 10:45:00 EST</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/1193614</guid>
</item>
<item>
 <title>ADF BC Groovy – Showing Old Values Along with New</title>
 <link>http://au.sys-con.com/node/1185105</link>
 <description>A common requirement in databound applications is to allow the user to view changes before they commit them to the database, showing the user both the original-old value along with the new.  This gives users a chance to review their changes visually by comparing the old and new.&lt;br /&gt;&lt;br /&gt;For an updated record that has yet been committed to the database, ADF BC stores both the old and new value.  Among other reasons ADF BC does this, is it allows the user to cancel any changes, and rather than having to fetch the original value back from the database, ADF BC just retrieves the old value it has cached without a roundtrip to the database.&lt;br /&gt;&lt;br /&gt;This cache gives us the ability to solve our original requirements as the ADF BC framework exposes methods to fetch both new and old non committed values from the Entity Object (EO).  To fetch the new current value we call the associated accessor such as getPosition() or getName() that was automatically created by the framework in our EntityImpl.  To get the old value we use the getPostedAttribute() method passing in the index of the field we wish to fetch.&lt;br /&gt;&lt;br /&gt;In JDeveloper 11g through its introduction of Groovy expressions, it&#039;s very simple to expose the old value through the Entity Objects:&lt;br /&gt;&lt;br /&gt;1) In your required EO create a transient attribute.  For example if we want to show the old values for the Position attribute of our EO, we could create a new transient attribute named OldPosition.&lt;br /&gt;&lt;br /&gt;2) Ensure the &quot;Persistent&quot; and &quot;Derived from SQL Expression&quot; properties are turned off for the new transient attribute.&lt;br /&gt;&lt;br /&gt;3) Set the &quot;Value Type&quot; to Expression and enter the following Groovy expression into the Value field:&lt;br /&gt;&lt;br /&gt;adf.object.getPostedAttribute(adf.object.getAttributeIndexOf(model.EmployeesImpl.POSITION))&lt;br /&gt;&lt;br /&gt;Note the call to the getPostedAttribute() method, passing in the index of the Position field that it requires.&lt;br /&gt;&lt;br /&gt;If the Groovy syntax isn&#039;t familiar to you in JDeveloper 11g consult Grant Ronald&#039;s &lt;a href=&quot;http://www.oracle.com/technology/products/jdev/11/how-tos/groovy/introduction_to_groovy.pdf&quot;&gt;Introduction to Groovy&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;A bad steer here maybe to try and use ADF Groovy&#039;s oldValue and newValue methods.  Unfortunately these are only available for Groovy expressions in EO Declarative Validators, not in transient attribute.&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://1.bp.blogspot.com/_5hhNK2aXwp8/Su--b2b8OXI/AAAAAAAAA2o/MYyCNlsBuRU/s1600-h/groovy.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 186px;&quot; src=&quot;http://1.bp.blogspot.com/_5hhNK2aXwp8/Su--b2b8OXI/AAAAAAAAA2o/MYyCNlsBuRU/s400/groovy.png&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5399743863918967154&quot; /&gt;&lt;/a&gt;&lt;br /&gt;4) Expose the attribute through the associated View Objects (VO) if necessary.&lt;br /&gt;&lt;br /&gt;At runtime you&#039;ll note that initially the OldPosition field shows what&#039;s in the Position field.  When you change the Position field&#039;s value, the OldPosition remains at the pre-cached value.  Finally on committing the changes to the database, the OldPosition value is overwritten with the new Position value.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&#039;1&#039; height=&#039;1&#039; src=&#039;https://blogger.googleusercontent.com/tracker/38586079-10124615613825984?l=one-size-doesnt-fit-all.blogspot.com&#039;/&gt;&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/OneSizeDoesntFitAll/~4/HfFV9pc8uwY&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/1185105&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Fri, 13 Nov 2009 14:45:00 EST</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/1185105</guid>
</item>
<item>
 <title>Commercial and OpenSource OCR Softwares</title>
 <link>http://au.sys-con.com/node/1173727</link>
 <description>SimpleOCR is the popular freeware OCR software with hundreds of thousands of users worldwide.  SimpleOCR is also a royalty-free OCR SDK for developers to use in their custom applications. If you have a scanner and want to avoid retyping your documents, SimpleOCR is the fast, free way to do it.  The SimpleOCR freeware is 100% free and not limited in any way.  Anyone can use SimpleOCR for free–home users, educational institutions, even corporate users. Our own freeware OCR application provides acceptable accuracy for those who just need to convert a few pages and can’t justify the cost of commercial OCR software.  Developers can use the command-line and SDK versions to integrate SimpleOCR with their custom applications.&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/1173727&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Thu, 05 Nov 2009 12:30:00 EST</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/1173727</guid>
</item>
<item>
 <title>Keep Your Executive Assistant Happy if Moving to the Cloud</title>
 <link>http://au.sys-con.com/node/1171763</link>
 <description>Google held a small event in London late last month, at which senior executives from a wide range of organisations gathered to discuss the impact of the Cloud. Presenters included luminaries such as Marc Benioff, Werner Vogels, Geoffrey Moore and Nick Carr, as well as CIOs at the coalface in adopting various Cloud (mainly SaaS) [...]&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/1171763&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Wed, 04 Nov 2009 13:00:00 EST</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/1171763</guid>
</item>
<item>
 <title>SPC 2009 Wrap-Up</title>
 <link>http://au.sys-con.com/node/1165868</link>
 <description>The last day of the SPC had some tech-laden sessions hosted by Andrew Connell. The first was about migrating from 2007 to 2010, and how you can add the nice 2010 development features (like the ribbon and the developer dashboard) back into your 2007 master pages when you migrate them. The theme seems to be that you invested in branding and customizing 2007, and Microsoft is making it straightforward to move that content to 2010. The idea is to not have to stop doing work in your 2007 instance waiting for 2010 to release. All in all, it looks like going from 2007 to 2010 should be much easier than 2003 to 2007.&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/1165868&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Fri, 30 Oct 2009 12:15:00 EDT</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/1165868</guid>
</item>
<item>
 <title>Umoo Opens Private Beta to Launch Social Gaming Tournaments</title>
 <link>http://au.sys-con.com/node/1164904</link>
 <description>Today is finally the day that Umoo tournaments is coming out of private beta and into the public arena. I can now set up my own tournaments with a larger crowd, maybe I can push the magic “Invite my Facebook friends button’. Currently, I mostly play Fun games, without any entry fee that is, but I am itching to do the real game. For a few bucks I can make some real money with this game. We are interviewing Umoo players and some of them make a lot of money on Umoo. Surprisingly, they make more money than I ever made juggling my 401K account on the real stock market. However, after playing for a couple of weeks now, I have concluded, I am not going to quit my day job just yet.&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/1164904&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Thu, 29 Oct 2009 17:30:00 EDT</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/1164904</guid>
</item>
<item>
 <title>Echo3 HelloWorld</title>
 <link>http://au.sys-con.com/node/1154175</link>
 <description>Here’s a Echo3 application in 3 steps&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/1154175&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Thu, 29 Oct 2009 15:15:00 EDT</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/1154175</guid>
</item>
<item>
 <title>Service Activator &amp; Transaction</title>
 <link>http://au.sys-con.com/node/1154178</link>
 <description>We process about 300 messages / second in our application. The Service Activator pattern has been very helpful to fork off and distribute processing of messages. We fork off messages to a JMS queue for processing. In some cases, the forked off messages need to run inside the same transaction of the caller and JMS helps us achieve this.&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/1154178&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Thu, 29 Oct 2009 15:00:00 EDT</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/1154178</guid>
</item>
<item>
 <title>CTOedge: Better Collaboration Tools Than Google</title>
 <link>http://au.sys-con.com/node/1159371</link>
 <description>Google has certainly been busy building a lot of different software tools that can be used for collaboration, including Google Docs, Google Voice, Google Sites (formerly Jotspot) and Google Calendar. But there are a number of specialized tools that are more useful than these Google services for particular circumstances. These can be big productivity boosts for enterprises.&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/1159371&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Thu, 29 Oct 2009 13:15:00 EDT</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/1159371</guid>
</item>
<item>
 <title>Getting Past Gate Keepers</title>
 <link>http://au.sys-con.com/node/1148132</link>
 <description>By Tom Hopkins
In business situations, when you are trying to reach the person who has the authority to make decisions regarding your product you are very likely to have to go through one or more people before reaching that person. For the sake of efficiency, there will likely be a receptionist and/or assistant who takes the initial calls for the decision-maker.
It&amp;#8217;s important that you realize most assistants are taught to protect decision-makers. Or, shall we say, screen calls so the decision-makers only speak with the [...]&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/1148132&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Thu, 29 Oct 2009 11:15:00 EDT</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/1148132</guid>
</item>
<item>
 <title>Gain Your Prospect’s Attention</title>
 <link>http://au.sys-con.com/node/1148147</link>
 <description>By Wendy Weiss
On a cold call you have approximately 10-30 seconds to grab your prospects’ attention—and you won’t get a second chance. Read on to discover how to gain your prospects’ attention…
I was eating lunch. The phone rang and thinking it might be a client calling (and also, let’s face it—I’m a little compulsive) I bolted to my desk and grabbed the receiver.
Instead of my client, on the other end of the line was a perky person telling me that their company provides high-speed Internet [...]&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/1148147&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Thu, 29 Oct 2009 11:15:00 EDT</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/1148147</guid>
</item>
<item>
 <title>Working with WLS 10.3.1 SQLAuthenticator Password Algorithms</title>
 <link>http://au.sys-con.com/node/1159532</link>
 <description>In the &lt;a href=&quot;http://one-size-doesnt-fit-all.blogspot.com/2009/10/part-i-working-with-wls-1031.html&quot;&gt;previous post&lt;/a&gt; we looked at how to configure the SQLAuthenticator password encryption options.  Among other encryption algorithms we discovered that on creating a user from the WLS console, WLS would create the associated user in a database table with password &quot;password&quot; encrypted to:&lt;br /&gt;&lt;br /&gt;{SHA-1}W6ph5Mm5Pz8GgiULbPgzG37mj9g=&lt;br /&gt;&lt;br /&gt;...when the SHA-1 option was set.&lt;br /&gt;&lt;br /&gt;As was mentioned in the previous post, as the database table with its users and passwords may be shared by non-WLS based applications, it&#039;s important that those systems can encrypt passwords and compare them to the WLS result.  In other words, in the example above, given that WLS generated a SHA-1 encrypted password, if another system uses the same SHA-1 algorithm will it generate the same encrypted password allowing it to compare the database SHA-1 encrypted password against the SHA-1 encrypted password it has?&lt;br /&gt;&lt;br /&gt;In order to check we can get the same encrypted results, we&#039;ll investigate generating a SHA-1 password using the Oracle database&#039;s encryption facilities (so in this case the database acts as the other subsystem), comparing the database&#039;s encrypted SHA-1 password to that of WLS.&lt;br /&gt;&lt;br /&gt;The following solution owes thanks to Sean at Oracle Support who very patiently led me in the right direction with my findings.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;dbms_crypto&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Oracle database fans will be familiar with the &lt;a href=&quot;http://download.oracle.com/docs/cd/B28359_01/appdev.111/b28419/d_crypto.htm#BJFCGDIC&quot;&gt;dbms_crypto&lt;/a&gt; package that provides encryption support.&lt;br /&gt;&lt;br /&gt;dbms_crypto allows us to generate an encrypted password that we can compare to the WLS result.  From table 34-1 of the dbms_crypto link, we note that dbms_crypto supports the following one-way hash algorithms: SHA-1, MD4 and MD5.  As WLS via the JCE extensions (see the previous post) supports SHA-1, MD2 and MD5, it&#039;s fortunate we picked SHA-1 for this example.&lt;br /&gt;&lt;br /&gt;The following anonymous PL/SQL block shows an example using the dbms_crypto package hash function with SHA-1 to produce an encrypted result:&lt;pre name=&quot;code&quot; class=&quot;java&quot;&gt;&lt;br /&gt;DECLARE&lt;br /&gt;  input_string  VARCHAR2(8);&lt;br /&gt;  raw_input     RAW(128);&lt;br /&gt;  encrypted_raw RAW(2048);&lt;br /&gt;BEGIN&lt;br /&gt;  input_string := &#039;password&#039;;&lt;br /&gt;  raw_input    := utl_raw.cast_to_raw(convert(input_string, &#039;AL32UTF8&#039;,&#039;US7ASCII&#039;));&lt;br /&gt;&lt;br /&gt;  encrypted_raw := dbms_crypto.hash(src =&gt; raw_input, typ =&gt; dbms_crypto.hash_sh1);&lt;br /&gt;  dbms_output.put_line(&#039;Output: &#039; || encrypted_raw);&lt;br /&gt;END;&lt;br /&gt;/&lt;br /&gt;&lt;br /&gt;Output: 5BAA61E4C9B93F3F0682250B6CF8331B7EE68FD8&lt;/pre&gt;Note the output, a hex value, and doesn&#039;t match our WLS output for the same plaintext password &quot;password&quot; encrypted with SHA-1.&lt;br /&gt;&lt;br /&gt;The missing bit of information (that I haven&#039;t found documented) is that WLS after encrypting the plaintext password, as confirmed by Oracle Support, WLS then converts the output to base 64.  In the case of the dbms_crypto hash function, it converts the encrypted result to Hex.  In order to get the same result you need to convert the Hex output to base 64.&lt;br /&gt;&lt;br /&gt;There&#039;s a number of different ways to do this.  One is to use a Java routine in the database, converting the dbms_crypto Hex result to a byte array, then byte array to base 64.  A suitable algorithm would be:&lt;pre name=&quot;code&quot; class=&quot;java&quot;&gt;&lt;br /&gt;byte[] bytearray = hexStringToByteArray(&quot;5BAA61E4C9B93F3F0682250B6CF8331B7EE68FD8&quot;);&lt;br /&gt;String base64encoded = new BASE64Encoder().encodeBuffer(bytearray);&lt;/pre&gt;...where the hexStringToByteArray function is borrowed from Dave L on &lt;a href=&quot;http://stackoverflow.com/questions/140131/convert-a-string-representation-of-a-hex-dump-to-a-byte-array-using-java&quot;&gt;StackOverflow&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The end result is: W6ph5Mm5Pz8GgiULbPgzG37mj9g= ... finally matching what WLS wrote to the database (missing the algorithm prefix of course).&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;Conclusion&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Why the WebLogic Server&#039;s SQLAuthenticator can make use of different encryption algorithm when writing to the database, it&#039;s important to ensure that the results are expected and understood and can be used by other subsystems.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&#039;1&#039; height=&#039;1&#039; src=&#039;https://blogger.googleusercontent.com/tracker/38586079-9056575003088041413?l=one-size-doesnt-fit-all.blogspot.com&#039;/&gt;&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/OneSizeDoesntFitAll/~4/L3EavdFuwnM&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/1159532&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Tue, 27 Oct 2009 11:15:00 EDT</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/1159532</guid>
</item>
<item>
 <title>Performance Perspectives... Standardizing with Speed</title>
 <link>http://au.sys-con.com/node/1144744</link>
 <description>I thought it would be a good idea to call some attention to a new flood of good reads. Two in particular deal with some bleeding-edge performance concepts. Performance is a subject that comes to the forefront more and more often, especially when we&#039;re all trying to wring as much sweat as we can out of each and every IT dollar put into play. Much of my day is spent trying to find new patterns to make this a reality. Information like this is invaluable when we&#039;re trying to find the correct architectural answer to the enterprise IT puzzles we&#039;re faced with.&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/1144744&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Wed, 14 Oct 2009 17:00:00 EDT</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/1144744</guid>
</item>
<item>
 <title>JSF 2, Custom Java Components, and AJAX Behaviors</title>
 <link>http://au.sys-con.com/node/1139762</link>
 <description>Unlike most of my blog posts, where I try to describe the easiest possible way to do things, in this posting, I&#039;ll instead go over a Java-based custom JSF component that responds to the Ajax tag.  The reason being that there simply aren&#039;t any examples out there of how to do this, and at least two people have expressed interest in finding exactly out how this is done.  I&#039;d advise anyone considering doing this to make &lt;i&gt;really&lt;/i&gt; sure that you can&#039;t do the same thing in a Composite Component (you usually can), but sometimes, a Java-based custom JSF component is going to be required.&lt;/p&gt;
&lt;p&gt;We&#039;re going to cover the following topics here, and it&#039;s going to be a little more code than usual, but I suspect that this will end up saving some folks a bunch of time, so lets plow forward.  I&#039;ll cover:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Ajax listeners&lt;/li&gt;
    &lt;li&gt;Facelet components&lt;/li&gt;
    &lt;li&gt;Integrating the two&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;First, the Ajax Listener&lt;/h2&gt;
&lt;p&gt;An ajax listener, connected to your ajax event with the listener attribute, is a method that will be called every time the ajax request is made.  For example, let&#039;s look at the following page section:&lt;/p&gt;
&lt;pre&gt;
   1 Echo test: &amp;lt;h:outputText id=&amp;quot;out&amp;quot; value=&amp;quot;#{custom.hello}&amp;quot;/&amp;gt;
   2 &amp;lt;br/&amp;gt;
   3 Echo count: &amp;lt;h:outputText id=&amp;quot;count&amp;quot; value=&amp;quot;#{custom.count}&amp;quot;/&amp;gt;
   4 &amp;lt;br/&amp;gt;
   5 &amp;lt;h:inputText id=&amp;quot;in&amp;quot; value=&amp;quot;#{custom.hello}&amp;quot; autocomplete=&amp;quot;off&amp;quot;&amp;gt;
   6     &amp;lt;f:ajax event=&amp;quot;keyup&amp;quot; render=&amp;quot;out count eventcount&amp;quot; listener=&amp;quot;#{custom.update}&amp;quot;/&amp;gt;
   7 &amp;lt;/h:inputText&amp;gt;
   8 &amp;lt;br/&amp;gt;
   9 Event count: &amp;lt;h:outputText id=&amp;quot;eventcount&amp;quot; value=&amp;quot;#{custom.eventCount}&amp;quot;/&amp;gt;
&lt;/pre&gt;
&lt;p&gt;We&#039;ve got three bean properties - hello (which is the string entered by the inputText), count (which is a count of the characters in hello, and eventCount (which is a count of the number of ajax requests).  We also have a method on the bean, update (line 6), which will be called every time the ajax call is submitted.&lt;/p&gt;
&lt;p&gt;The behavior of this page is pretty simple - every time you press a character in the inputText, the complete value of the input is echoed to the outputText &amp;quot;out&amp;quot; (line 1) - the length of &amp;quot;out&amp;quot; is written to &amp;quot;count&amp;quot; (line 3), and the &amp;quot;eventCount&amp;quot; outputText (line 9) has it&#039;s value incremented by one.&lt;/p&gt;
&lt;p&gt;So - what code is in the bean?  Here&#039;s the relevant bits:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre&gt;
   1 public void setHello(String hello) {
   2     this.hello = hello;
   3 }
   4 public int getCount() {
   5     return count;
   6 }
   7 public int getEventCount() {
   8     return eventCount;
   9 }
  10 public void update(AjaxBehaviorEvent event) {
  11     count = hello.length();
  12     eventCount++;
  13 }
&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Not so bad - the only thing new here is that AjaxBehaviorEvent class - and we&#039;re not even using it.  The update method will simply set up the values to be correct, and we let the Ajax render to the rest.  So - listeners are easy.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Facelets Components&lt;/h2&gt;
&lt;p&gt;Now, we&#039;ll want to create a custom tag in Java.  To do that, we&#039;ll need to make a few configuration file entries, and write a little java code.  But first, let&#039;s see it used in the page:&lt;/p&gt;
&lt;p&gt;In the XHTML header, we&#039;ll say:&lt;/p&gt;
&lt;pre&gt;
   1 &amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;
   2       xmlns:ui=&amp;quot;http://java.sun.com/jsf/facelets&amp;quot;
   3       xmlns:h=&amp;quot;http://java.sun.com/jsf/html&amp;quot;
   4       xmlns:f=&amp;quot;http://java.sun.com/jsf/core&amp;quot;
   5       xmlns:cu=&amp;quot;http://javaserverfaces.dev.java.net/demo/custom-taglib&amp;quot;&amp;gt;
&lt;/pre&gt;
&lt;p&gt;Setting up the &amp;quot;cu&amp;quot; prefix (line 5) to point to &amp;quot;custom-taglib&amp;quot; (the whole URL is significant).  Then later on in the page, we&#039;ll use it like so:&lt;/p&gt;
&lt;pre&gt;
&amp;lt;cu:custom id=&amp;quot;customId&amp;quot;&amp;gt;
&lt;/pre&gt;
&lt;p&gt;We then need to add an entry in web.xml:&lt;/p&gt;
&lt;pre&gt;
   1 &amp;lt;context-param&amp;gt;
   2    &amp;lt;param-name&amp;gt;javax.faces.FACELETS_LIBRARIES&amp;lt;/param-name&amp;gt;
   3    &amp;lt;param-value&amp;gt;/WEB-INF/custom-taglib.xml&amp;lt;/param-value&amp;gt;
   4 &amp;lt;/context-param&amp;gt;
&lt;/pre&gt;
&lt;p&gt;This points to our next config file, which is the filename on line 3.  Here&#039;s its contents, in full:&lt;/p&gt;
&lt;pre&gt;
   1 &amp;lt;facelet-taglib xmlns=&amp;quot;http://java.sun.com/xml/ns/javaee&amp;quot;
   2               xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;
   3               xsi:schemaLocation=&amp;quot;http://java.sun.com/xml/ns/javaee &lt;a href=&quot;http://java.sun.com/xml/ns/javaee/web-facelettaglibrary_2_0.xsd&amp;quot;&quot; title=&quot;http://java.sun.com/xml/ns/javaee/web-facelettaglibrary_2_0.xsd&amp;quot;&quot;&gt;http://java.sun.com/xml/ns/javaee/web-facelettaglibrary_2_0.xsd&amp;quot;&lt;/a&gt;
   4               version=&amp;quot;2.0&amp;quot;&amp;gt;
   5   &amp;lt;namespace&amp;gt;http://javaserverfaces.dev.java.net/demo/custom-taglib&amp;lt;/namespace&amp;gt;
   6   &amp;lt;tag&amp;gt;
   7     &amp;lt;tag-name&amp;gt;custom&amp;lt;/tag-name&amp;gt;
   8       &amp;lt;component&amp;gt;
   9         &amp;lt;component-type&amp;gt;mycustom&amp;lt;/component-type&amp;gt;
  10       &amp;lt;/component&amp;gt;
  11   &amp;lt;/tag&amp;gt;
  12 &amp;lt;/facelet-taglib&amp;gt;
&lt;/pre&gt;
&lt;p&gt;Note that the namespace element on line 5 matches the URL we used for the namespace in the html element of the using page.  We said this taglibrary will have one tag &amp;quot;custom&amp;quot; (line 7), which maps to the FacesComponent &amp;quot;mycustom&amp;quot;.  Where does it find the definition of &amp;quot;mycustom&amp;quot;?  In the Java file defining the component, using the new @FacesComponent attribute.  Here&#039;s the full Java code, leaving out the imports:&lt;/p&gt;
&lt;pre&gt;
   1 @FacesComponent(value = &amp;quot;mycustom&amp;quot;)
   2 public class MyCustom extends UIComponentBase {
   3 
   4     @Override
   5     public String getFamily() {
   6         return &amp;quot;custom&amp;quot;;
   7     }
   8 
   9     @Override
  10     public void encodeEnd(FacesContext context) throws IOException {
  11 
  12         ResponseWriter responseWriter = context.getResponseWriter();
  13         responseWriter.startElement(&amp;quot;div&amp;quot;, null);
  14         responseWriter.writeAttribute(&amp;quot;id&amp;quot;,getClientId(context),&amp;quot;id&amp;quot;);
  15         responseWriter.writeAttribute(&amp;quot;name&amp;quot;, getClientId(context),&amp;quot;clientId&amp;quot;);
  16         responseWriter.write(&amp;quot;Howdy!&amp;quot;);
  17         responseWriter.endElement(&amp;quot;div&amp;quot;);
  18     }
  19 }
&lt;/pre&gt;
&lt;p&gt;In fact, the Java code itself is simple enough that I don&#039;t really think it requires any explanation.   Putting the cu:custom tag in your page will now render Howdy!, surrounded by a div with the same id and name as you gave the component.  All that&#039;s left is to add the Ajax.  That... is a bit more complicated, but now that we&#039;ve handled everything else, it&#039;s really just incremental.&lt;/p&gt;
&lt;h2&gt;Using f:ajax with your custom tag&lt;/h2&gt;
&lt;p&gt;To use the f:ajax tag, we&#039;d like to, for instance, do something like this:&lt;/p&gt;
&lt;pre&gt;
   1 &amp;lt;cu:custom id=&amp;quot;customId&amp;quot;&amp;gt;
   2     &amp;lt;f:ajax render=&amp;quot;eventcount&amp;quot; listener=&amp;quot;#{custom.updateEventCount}&amp;quot;/&amp;gt;
   3 &amp;lt;/cu:custom&amp;gt;
&lt;/pre&gt;
&lt;p&gt;Meaning, we&#039;d like to just decorate the tag, and let it do something &amp;quot;smart&amp;quot;.  In this case, we&#039;ll default to &amp;quot;onclick&amp;quot; (since we&#039;re dealing with a div, after all, we could also default to &amp;quot;onmouseover&amp;quot;, for instance).  It&#039;d also be nice if we could still call the ajax listener.  That&#039;ll require a bit more code.  Here&#039;s the full Java component, with the additional ajax code.  I&#039;ll go over it at the end:&lt;/p&gt;
&lt;pre&gt;
   1 @FacesComponent(value = &amp;quot;mycustom&amp;quot;)
   2 public class MyCustom extends UIComponentBase implements ClientBehaviorHolder {
   3 
   4     @Override
   5     public String getFamily() {
   6         return &amp;quot;custom&amp;quot;;
   7     }
   8 
   9     @Override
  10     public void encodeEnd(FacesContext context) throws IOException {
  11 
  12         ClientBehaviorContext behaviorContext =
  13                 ClientBehaviorContext.createClientBehaviorContext(context, 
  14                 this, &amp;quot;click&amp;quot;, getClientId(context), null);
  15 
  16         ResponseWriter responseWriter = context.getResponseWriter();
  17         responseWriter.startElement(&amp;quot;div&amp;quot;, null);
  18         responseWriter.writeAttribute(&amp;quot;id&amp;quot;,getClientId(context),&amp;quot;id&amp;quot;);
  19         responseWriter.writeAttribute(&amp;quot;name&amp;quot;, getClientId(context),&amp;quot;clientId&amp;quot;);
  20         Map&amp;lt;String,List&amp;lt;ClientBehavior&amp;gt;&amp;gt; behaviors = getClientBehaviors();
  21         if (behaviors.containsKey(&amp;quot;click&amp;quot;) ) {
  22             String click = behaviors.get(&amp;quot;click&amp;quot;).get(0).getScript(behaviorContext);
  23             responseWriter.writeAttribute(&amp;quot;onclick&amp;quot;, click, null);
  24         }
  25         responseWriter.write(&amp;quot;Click me!&amp;quot;);
  26         responseWriter.endElement(&amp;quot;div&amp;quot;);
  27     }
  28 
  29     
  30     @Override
  31     public void decode(FacesContext context) {
  32         Map&amp;lt;String, List&amp;lt;ClientBehavior&amp;gt;&amp;gt; behaviors = getClientBehaviors();
  33         if (behaviors.isEmpty()) {
  34             return;
  35         }
  36 
  37         ExternalContext external = context.getExternalContext();
  38         Map&amp;lt;String, String&amp;gt; params = external.getRequestParameterMap();
  39         String behaviorEvent = params.get(&amp;quot;javax.faces.behavior.event&amp;quot;);
  40 
  41         if (behaviorEvent != null) {
  42             List&amp;lt;ClientBehavior&amp;gt; behaviorsForEvent = behaviors.get(behaviorEvent);
  43 
  44             if (behaviors.size() &amp;gt; 0) {
  45                 String behaviorSource = params.get(&amp;quot;javax.faces.source&amp;quot;);
  46                String clientId = getClientId(context);
  47                if (behaviorSource != null &amp;&amp; behaviorSource.equals(clientId)) {
  48                    for (ClientBehavior behavior: behaviorsForEvent) {
  49                        behavior.decode(context, this);
  50                    }
  51                }
  52             }
  53         }
  54     }
  55 
  56     @Override
  57     public Collection&amp;lt;String&amp;gt; getEventNames() {
  58         return Arrays.asList(&amp;quot;click&amp;quot;);
  59     }
  60 
  61     @Override
  62     public String getDefaultEventName() {
  63         return &amp;quot;click&amp;quot;;
  64     }
  65 }
&lt;/pre&gt;
&lt;p&gt;At 65 lines, this is probably the longest code example I&#039;ve ever posted, but most of this is either really easy, or stuff you&#039;ve seen in the previous section.  First, we define what Ajax events we&#039;ll accept (&amp;quot;click&amp;quot;) and what one is the default (&amp;quot;click&amp;quot; again), on lines 56-64.  These are part of the ClientBehaviorHolder interface (line 2).  We also had to add a little code to the encodeEnd method, so that we correctly output the DOM event script as part of the div (lines 12-14, 20-24).  And lastly, we needed to add a decode method, since our component is no longer output only - the ajax event handling code is always part of the decode process (lines 31-50).  This is the part where we actually make sure that that listener is being called.&lt;/p&gt;
&lt;p&gt;Did I mention that you can do pretty much the same thing in a composite component?&amp;nbsp; That&#039;ll be the subject of a future blog.&lt;/p&gt;
&lt;p&gt;Well, I warned you this was a little more complex - hopefully it&#039;s all fairly clear.  If it isn&#039;t - ask in the comments.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/1139762&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Mon, 12 Oct 2009 10:45:00 EDT</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/1139762</guid>
</item>
<item>
 <title>New Version of Exadel Studio JavaFX Plug-in Is Coming…</title>
 <link>http://au.sys-con.com/node/1138827</link>
 <description>It&amp;#8217;s been a while since I posted any news JavaFX plug-in for Eclipse, but we&amp;#8217;ve been working hard on the following new features: Code assist for syntax keywords, Code assist for system classes, Code assist for attributes of system classes, Code assist for user classes, Code assist for attributes of user classes.
Syntax highlight

A new version will be released in the [...]&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/1138827&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Thu, 08 Oct 2009 22:22:00 EDT</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/1138827</guid>
</item>
<item>
 <title>Ulitzer Aid Campaign for the Typhoon Ondoy Victims</title>
 <link>http://au.sys-con.com/node/1128298</link>
 <description>Yesterday morning I checked the Ulitzer home page on my iPhone on my way to the office and I realized two of the top three stories were about the &quot;Typhoon Ondoy&quot; in Philippines. 36 hours later we still have three stories filed from Manila on Ulitzer&#039;s home page. Top Ulitzer stories on Ulitzer from around the 25 distinct subject categories it covers are processed every 60 minutes and displayed by an algorithm which we believe is more sophisticated than , say, Google News algorithms.&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/1128298&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Sun, 04 Oct 2009 09:30:00 EDT</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/1128298</guid>
</item>
<item>
 <title>Immutable Service Containers on Amazon EC2</title>
 <link>http://au.sys-con.com/node/1103647</link>
 <description>Back in June, we released the very first security hardened virtual machine images for the Amazon Web Services Elastic Compute Cloud (EC2) environment. These original images were based upon the OpenSolaris 2008.11 release and were configured in accordance with the guidelines published by Sun the Center for Internet Security. Since its initial release, we have provided an update to offer this image in the European Region. In August, we took another step forward with the release of a security-enhanced image based upon the OpenSolaris 2009.06 release. &lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/1103647&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Mon, 21 Sep 2009 07:00:00 EDT</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/1103647</guid>
</item>
<item>
 <title>Corporate Management: Complexity Is Risk</title>
 <link>http://au.sys-con.com/node/1110121</link>
 <description>&lt;p&gt;&lt;img hspace=&quot;10&quot; alt=&quot;&quot; align=&quot;right&quot; width=&quot;153&quot; height=&quot;154&quot; src=&quot;/images/blog_avegagroup_se/MartinKaarup/Beal_Spring_Convergence.jpg&quot; /&gt;Have you noticed how people that are neck deep in complexity almost always ask for a standardized solution? And they supposedly do this to regain oversight.&lt;/p&gt;
&lt;p&gt;And in reverse; have you noticed how people that have everything neatly packed in small modular boxes almost always ask for some highly customized guerilla tactic – which inherently adds complexity?&lt;/p&gt;
&lt;p&gt;Well, no matter how you answer both of these questions, you might know that they are really part of another phenomenon, namely they are about &lt;em&gt;risk&lt;/em&gt;.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/1110121&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Fri, 18 Sep 2009 08:00:00 EDT</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/1110121</guid>
</item>
<item>
 <title>WebLogic Server - Identity vs Trust Keystores</title>
 <link>http://au.sys-con.com/node/1102839</link>
 <description>In computing most technologies have lots of terms and acronyms to learn, it&#039;s par for the course, you get used to it.  However in computer security the frustration is multiplied as there are often many different terms that mean the same thing.  It makes implementing security hard, because understanding it is hard, and I&#039;m not surprised why security is considered badly implemented because the average Joe will struggle (and for the record I&#039;m the average Chris so I struggle too ;-).&lt;br /&gt;&lt;br /&gt;I&#039;ve been trying recently to get straight in my head what is stored in the WLS identity and trust keystores, and what the difference between identity and trust is anyhow.  Thanks to kind assistance from &lt;a href=&quot;http://kingsfleet.blogspot.com/&quot;&gt;Gerard Davison&lt;/a&gt;, I think I can now post my understandings, and as usual, hopefully the post is helpful to other readers.  As noted however security to me is a difficult area, and so be sure to check the facts here, your mileage with this post may vary.&lt;br /&gt;&lt;br /&gt;The following WLS documentation attempts to explain the concepts of identity and trust:&lt;br /&gt;&lt;a href=&quot; http://download.oracle.com/docs/cd/E12839_01/web.1111/e13707/identity_trust.htm#i1170342&quot;&gt;&lt;br /&gt;http://download.oracle.com/docs/cd/E12839_01/web.1111/e13707/identity_trust.htm#i1170342&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;...in ripping out one of the core paragraphs, with a slight rewrite of my own we can see the concept of identity, and how it relates to the public and private keys:&lt;br /&gt;&lt;br /&gt;&quot;The public key is embedded in a digital certificate with additional information describing the owner of the public key, such as name, street address, and e-mail address *as well as the hostname*. *Along with this the digital certificate containing the public key, and the separate related private key, provide identity for the server*.&quot;&lt;br /&gt;&lt;br /&gt;...ultimately to identify the server, to assert the server is who the server says it is.&lt;br /&gt;&lt;br /&gt;The digital certificate containing the public key is also referred to as the &quot;server certificate&quot;, as for example in 1-way-SSL traffic between the server and client, the server certificate containing the public key is what is initially passed to the client.&lt;br /&gt;&lt;br /&gt;There is a missing piece in the puzzle.  Regardless that the digital certificate states the owner of the public key, their name and so on, how does a client know that the &quot;identity&quot; asserted by the digital certificate is true?  That&#039;s where Certificate Authorities (CAs) come in. &lt;br /&gt;&lt;br /&gt;Ignoring self signed digital certificates, a typical digital certificate used on the internet containing the public key and owner details is signed by a trusted CA who has verified the identity of the owner.  Presumably when purchasing digital certificates from CAs, this is what some of the cost covers, the CAs research into ensuring that the identity details embedded in the digital cert are actually true.&lt;br /&gt;&lt;br /&gt;At runtime on receiving the digital certificate, the client checks the CA and if the CA is one that the client trusts (or a CA in a chain of trusted CAs), then the identity of the server is established/verified.&lt;br /&gt;&lt;br /&gt;Thus the &quot;identity&quot; of the server is established by what&#039;s stored in the &quot;identity&quot; keystore, and its contents are what are farmed out to clients establishing secure connections with the server, who then verify the supplied digital certificate&#039;s CA against the clients own list of trusted CAs.  The &quot;identity keystore&quot; is also referred to as the &quot;server keystore&quot;, because it establishes the server&#039;s identity (ie. I am who I say I am). &lt;br /&gt;&lt;br /&gt;WLS side note: As mentioned the digital certificate also includes the host name of the server, or in other words the digital certificate is pegged to that server and that server alone.  This implies on that server with its relating digital certificate, *all* of the applications will share that single digital certificate for secure communications.  Occasionally a requirement will arise where each application must have its own digital certificate.  In WLS because keystores are configured under an individual WLS &quot;managed server&quot;, if you have two separate applications, it is not possible to use separate digital certificates for each in one managed server.  The solution is to create another managed server with its own keystores.  &lt;br /&gt;&lt;br /&gt;WLS web service side note: Following on from the previous side note, for web services that use in-message encryption and digital signatures, there is often the requirement for multiple different digital certificates.  Under WLS to provision the WS-Security model, WLS has a separate Web Service Security Configuration (WSSC) to provision this setup.&lt;br /&gt;&lt;br /&gt;Finally regarding the trust keystore, what is its job in all of this?  The trust keystore is typically used for storing CA digital certificates, essentially the CAs who will be used to check any digital certificates that are given to the server at runtime (just the same as the client did above).  In the standard 1-way-SSL between a client and the WLS server, the trust keystore doesn&#039;t come into the equation as the client has its own trust keystore (containing the CAs) and the server has nothing to verify.  Yet in the case of mutual SSL (aka. 2 way SSL) between the client and server, the client and server actually swap each other digital certificates to establish identity of both parties, and in this case the server must be able to test the identity of the client through the CA of the client&#039;s digital certificate.&lt;br /&gt;&lt;br /&gt;Mutual SSL side note: the setup of mutual SSL is more complicated than this.  Readers are advised to refer to the following Oracle &lt;a href=&quot;http://www.oracle.com/technology/pub/articles/damo-howto.html&quot;&gt;article&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Final author&#039;s note: if any readers find anything particularly wrong with the ideas presented in this post I&#039;d be keen to hear them please.  As I&#039;ve really only experience with 1-way-SSL, it&#039;s hard to know if what I&#039;ve said applies to the concepts of mutual SSL and other security configurations.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&#039;1&#039; height=&#039;1&#039; src=&#039;https://blogger.googleusercontent.com/tracker/38586079-7659683152307350793?l=one-size-doesnt-fit-all.blogspot.com&#039;/&gt;&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/OneSizeDoesntFitAll/~4/E0uIN0OIr48&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/1102839&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Sat, 12 Sep 2009 17:30:00 EDT</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/1102839</guid>
</item>
<item>
 <title>The Difference Between Web Hosting and Cloud Computing</title>
 <link>http://au.sys-con.com/node/1095058</link>
 <description>Yesterday a friend of mine was asking me what I&#039;ve been doing lately in my spare time. When I mentioned that I&#039;d been doing a lot of messing around with Windows Azure, he was naturally curious. After explaining what Azure is, he asked me what the difference was between Windows Azure, a cloud computing environment, and traditional web hosting scenarios.

On a really high level, he&#039;s got a valid point : With Azure you can develop your application offline locally and then when you&#039;re done you can publish it to a remote host. To the casual observer, this looks exactly like what you might do with a web hosting company that provides space on an IIS box and let&#039;s you use ASP.NET and maybe even a little SQL server database.&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/1095058&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Sat, 12 Sep 2009 17:15:00 EDT</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/1095058</guid>
</item>
<item>
 <title>Computers Are Just Tools; Computer Science Is About People</title>
 <link>http://au.sys-con.com/node/1068527</link>
 <description>In some sense computer science is like geometry. When the art of measuring crop fields was under development by the ancient Mediterranean’s it was most naturally coined geometry – literally meaning measurement of the Earth. Geometry was slowly developed by many scholars to solve a wide range of practical applications. This includes, but is certainly not limited to, forecasting expected crop yields, division of land into parcels, and even to build some of the Seven Wonders of the World as present in classical antiquity.&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/1068527&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Fri, 28 Aug 2009 04:00:00 EDT</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/1068527</guid>
</item>
<item>
 <title>How Sun Reinvented Its Own Data Centre Infrastructure</title>
 <link>http://au.sys-con.com/node/1057791</link>
 <description>This is a pretty cool video of how Sun is walking the walk and not just talking the talk when it comes to its data centre efficiency strategy. Listen to Dean Nelson, director of Global Lab &amp; Data Centre Design Services at Sun Microsystems, tell how the company basically reinvented its data centre infrastructure through virtualisation and consolidation of multiple facilities and the deployment of the company’s products and solutions.&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/1057791&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Mon, 03 Aug 2009 16:15:00 EDT</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/1057791</guid>
</item>
<item>
 <title>Exadel Studio JavaFX plug-in for Eclipse New Version 1.0.1</title>
 <link>http://au.sys-con.com/node/1033848</link>
 <description>Today we released Exadel Studio JavaFX plug-in for Eclipse version 1.0.1. Here is what&amp;#8217;s new in this version:

New icons  (screen shots - this was a previous minor update)
Updated menu actions (now available directly on the perspective)
Compiled with JDK 1.5 for Mac OS support
Applet deployment has been updated to create exactly the same deployment structure [...]&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/1033848&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Tue, 14 Jul 2009 09:30:00 EDT</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/1033848</guid>
</item>
<item>
 <title>Oracle Has Made a Big Commitment to Java </title>
 <link>http://au.sys-con.com/node/1023795</link>
 <description>Today, Chuck Phillips, president of Oracle, said that Oracle was committed to provide “A Single Stack of Technology to Simplify Enterprise IT”. In order for a “Single Stack” to successfully simplify IT, Enterprise Software practitioners must commit their entire Enterprise Architecture to a single vendor.&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/1023795&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Sun, 05 Jul 2009 12:45:00 EDT</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/1023795</guid>
</item>
<item>
 <title>A Quick Career Advice For Edward Zander</title>
 <link>http://au.sys-con.com/node/1012225</link>
 <description>When I saw the press release about Ed Zander&#039;s recent career move , I could not help myself from thinking about Ed&#039;s last 20 year professional life. His reputation since the Sun Microsystems days was that Ed was not a very technology-enabled executive. I am not sure even today if he personally uses an email account or any intercation with technology beyond his cell phone.

Ed should look at President Obama&#039;s video clips with his blackberry in hand and ask himself as one time president of Sun Microsystems, then as the CEO of Motorola, if he was any closer to Obama&#039;s passion with technology. The answer is NO. You must always be passionate about anything you do in life.

How successful can you be as a technology executive, if you hate the idea of email, not to mention, not even using it?

You can&#039;t.&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/1012225&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Tue, 23 Jun 2009 16:30:00 EDT</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/1012225</guid>
</item>
<item>
 <title>Invest in the Right Technology</title>
 <link>http://au.sys-con.com/node/1157292</link>
 <description>I have Picasso on my mind. On the way to a business meeting in downtown Barcelona, I stumbled upon an amazingly beautiful Picasso frieze across the street from the Barcelona Cathedral.

It reminded me of Picasso’s famous commentary on technology:
Computers are useless. They can only give you answers.
In Picasso’s day, computers only gave answers. That was [...]&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=charlieisaacs.wordpress.com&amp;blog=7447211&amp;post=9&amp;subd=charlieisaacs&amp;ref=&amp;feed=1&quot; /&gt;&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/1157292&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Thu, 18 Jun 2009 19:20:00 EDT</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/1157292</guid>
</item>
<item>
 <title>IBM Stole the Thunder</title>
 <link>http://au.sys-con.com/node/929175</link>
 <description>IBM stole the thunder and the impending acquisition of Sun became an imminent and expected event.  While hardware overlap existed in the IBM deal, IBM would have provided a much needed home for Sun&#039;s software assets.  Software giant Oracle lacks a hardware portfolio, so the key Oracle / Sun overlaps are far fewer except for the $1 billion acquisition of MySQL by Sun in 2008.  Given Oracle&#039;s tendency to be proprietary in its markets, ownership of MySQL by Oracle would be perceived as a great risk in the open source community.&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/929175&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Tue, 21 Apr 2009 14:45:00 EDT</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/929175</guid>
</item>
<item>
 <title>Oracle-Sun: Schwartz Is Toast - Miko Matsumara</title>
 <link>http://au.sys-con.com/node/925937</link>
 <description>According to Web visionary and SOA expert Miko Matsumara, there was only one certain result of there being two board factions at Sun Microsystems, one in favor of the IBM deal (the Jonathan Schwartz faction) and the other opposing (the Scott McNealy faction): &quot;Mark my words, Schwartz is toast, IBM deal or no deal,&quot; declared Mastumara recently in his &#039;SOA Thoughts&#039; blog. Now that Oracle has bought Sun instead, will the same apply?&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/925937&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Mon, 20 Apr 2009 09:15:00 EDT</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/925937</guid>
</item>
<item>
 <title>SOA, Cloud Computing &amp; Live Mesh: A Day in the Life of Ivan Eyepack 2009</title>
 <link>http://au.sys-con.com/node/891832</link>
 <description>Back in 2001 Steve Ross-Talbot wrote an article entitled A day in the Life of Ivan Eyepack.  This was the story of how in 2001 someone equipped with a Compaq Ipaq would live in a connected world.  The star of that story was very much the device.  Now we have much more powerful devices and more choice - but surprisingly the starring role has moved to the ‘cloud&#039; - services on the internet. Recently Microsoft announced Live Mesh, filling in a vital missing piece of the puzzle and ushering in a whole range of cloud based services.&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/891832&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Thu, 16 Apr 2009 22:00:00 EDT</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/891832</guid>
</item>
<item>
 <title>Insane Strings</title>
 <link>http://au.sys-con.com/node/1154174</link>
 <description>A cool article at &lt;a href=&quot;http://www.roseindia.net/javatutorials/insane_strings.shtml&quot; title=&quot;http://www.roseindia.net/javatutorials/insane_strings.shtml&quot;&gt;http://www.roseindia.net/javatutorials/insane_strings.shtml&lt;/a&gt;
You never know what can happen with Java code .&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/1154174&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Fri, 06 Mar 2009 14:18:00 EST</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/1154174</guid>
</item>
<item>
 <title>The Struggle for the Soul of the Web</title>
 <link>http://au.sys-con.com/node/761029</link>
 <description>Just because the web has been open so far doesn&#039;t mean that it will stay that way. Flash and Silverlight, arguably the two market-leading technology toolkits for rich media applications are not open. Make no mistake - Microsoft and Adobe aim to have their proprietary plug-ins, aka pseudo-browsers, become the rendering engines for the next generation of the Web.&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/761029&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Thu, 11 Dec 2008 10:00:00 EST</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/761029</guid>
</item>
<item>
 <title>JavaFX: The Baby&#039;s Welcome, But the Birth&#039;s a Little Premature</title>
 <link>http://au.sys-con.com/node/770188</link>
 <description>On December 4, JavaFX 1.0 has arrived to this world with lots of &quot;It&#039;s a Boy&quot; balloons. The family of RIA development tools gets bigger. Java developers should definitely start experimenting with this new kid on the block.&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/770188&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Mon, 08 Dec 2008 15:30:00 EST</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/770188</guid>
</item>
<item>
 <title>Polyglot Programmers Minus SQL</title>
 <link>http://au.sys-con.com/node/593522</link>
 <description>In the mid nineties, IT job market was good. PowerBuilder or Visual Basic plus SQL would get you employed in no time. Good old client/server days. Two programming languages was all you need.  When multi-tier architecture became hot and J2EE came into picture, all of a sudden you&#039;d have to learn a lot more languages and technologies, for example, Java, SQL, HTML, JavaScript, XML, JSP, EJB, JMS etc. Surprisingly,the young generation doesn&#039;t mind being polyglot programmers as long as the set does not include SQL.  The popularity of this language is comparable with the popularity of Latin and Esperanto in the real world. Why?&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/593522&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Wed, 18 Jun 2008 19:30:00 EDT</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/593522</guid>
</item>
<item>
 <title>Enterprise Software Without the BS</title>
 <link>http://au.sys-con.com/node/541287</link>
 <description>This new electronic book by Yakov Fain is available for free download. This book covers career-related issued that enterprise software developers deal with on a daily basis. In which ways are some people a little &#039;better&#039; than others?    Why people  fail job interviews? Will IT outsourcing hurt your career? How often should you change employers? Comparing income of employees and contractors, and more.&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/541287&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Sun, 13 Apr 2008 10:00:00 EDT</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/541287</guid>
</item>
<item>
 <title>Why Do &#039;Cool Kids&#039; Choose Ruby or PHP to Build Websites Instead of Java?</title>
 <link>http://au.sys-con.com/node/457324</link>
 <description>Here is a question that I have been pondering on and off for quite a while: Why do &#039;cool kids&#039; choose Ruby or PHP to build websites instead of Java? I have to admit that I do not have an answer. Why do I even care? Because I am a Java developer. Like many Java developers, I get along with Java well. Not only the language itself, but the development environments (Eclipse for example), step-by-step debugging helper, wide availability of libraries and code snippets, and the readily accessible information on almost any technical question I may have on Java via Google. Last but not least, I go to JavaOne and see 10,000 people that talk and walk just like me.&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/457324&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Tue, 01 Apr 2008 17:30:00 EDT</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/457324</guid>
</item>
<item>
 <title>Mobile &amp; Embedded Community Fosters Greater Innovation</title>
 <link>http://au.sys-con.com/node/478363</link>
 <description>The open source Mobile &amp; Embedded Community is a gathering place where developers can collaborate, innovate, and drive the evolution of the Java Platform Micro Edition (Java ME). Launched in November 2006, more than 500 active members are participating in more than 80 projects, most of them created by the community&#039;s members.&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/478363&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Wed, 26 Dec 2007 12:00:00 EST</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/478363</guid>
</item>
<item>
 <title>I Wish Sun Would Do More to Get Java on iPhone and Java 6 on Leopard</title>
 <link>http://au.sys-con.com/node/458945</link>
 <description>That leaves Java developers in a bad position. Java developers love the clean Unix-based Mac OS X environment for development. But we have been suffering with an unstable developer-only dont-run-this-in-production release of Java 6 for the past year. Mac OS X is now the getto for Java 6. I love Apple and Java. I wish Sun would do more to get Java on iPhone and Java 6 on Mac OS X.&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/458945&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Sat, 10 Nov 2007 10:45:00 EST</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/458945</guid>
</item>
<item>
 <title>Reading Eric Sink&#039;s book on the business of software</title>
 <link>http://au.sys-con.com/node/399618</link>
 <description>Vacations are meant for reading. This time I&#039;ve picked the book &#039;Eric Sink on the Business of Software&#039;. This blog is not a review of this good book, but rather my own thoughts and comments inspired by reading about running a small company that develops software.  These comments are based on my own experience in this field.&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/399618&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Tue, 10 Jul 2007 03:00:00 EDT</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/399618</guid>
</item>
<item>
 <title>SOA, RIA and the Human Factor</title>
 <link>http://au.sys-con.com/node/396343</link>
 <description>While delivering a talk on SOA I&#039;ve asked the audience the following question, &#039;What do you think is the driving force for implementing any technology or architecture in a decent size Enterprise?&#039; The answers were typical: better code re-usability, accessibility? But I was looking for a different answer that has nothing to with technical merits of any technology...&lt;p&gt;&lt;a href=&quot;http://au.sys-con.com/node/396343&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Fri, 29 Jun 2007 08:30:00 EDT</pubDate>
 <guid isPermaLink="true">http://au.sys-con.com/node/396343</guid>
</item>
</channel>
</rss>
